You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ClickHouse中定义可执行用户自定义函数及配置文件部署

ClickHouse可执行自定义函数配置指南

文件存放路径

  • Python可执行脚本:放置在ClickHouse配置目录下的user_scripts子目录(默认路径为/etc/clickhouse-server/user_scripts/,不存在则手动创建)。记得给脚本添加可执行权限:chmod +x your_script.py。
  • XML配置文件:放在ClickHouse主配置目录(默认/etc/clickhouse-server/),建议单独创建一个配置文件(如executable_functions.xml),避免修改主config.xml导致的配置混乱。

关联脚本到ClickHouse的操作步骤

  1. 编写处理脚本
    脚本需要从标准输入读取数据,处理后输出到标准输出。示例upper_case.py:

    #!/usr/bin/env python3
    import sys
    
    for line in sys.stdin:
        print(line.strip().upper())
    
  2. 配置自定义函数
    在XML配置文件中定义函数的名称、关联脚本、输入输出格式及参数/返回类型:

    <clickhouse>
        <user_defined_executable_functions>
            <function>
                <name>upper_case</name>
                <command>upper_case.py</command>
                <input_format>TabSeparated</input_format>
                <output_format>TabSeparated</output_format>
                <return_type>String</return_type>
                <argument_types>
                    <type>String</type>
                </argument_types>
            </function>
        </user_defined_executable_functions>
    </clickhouse>
    
  3. 重启ClickHouse服务
    让配置生效:

    sudo systemctl restart clickhouse-server
    
  4. 验证函数可用性
    在ClickHouse客户端执行查询测试:

    SELECT upper_case('hello world');
    

    预期返回结果:HELLO WORLD

关键注意事项

  • 脚本的shebang行需正确指向系统中的Python解释器,避免执行失败。
  • 确保ClickHouse运行用户(通常为clickhouse)对脚本拥有执行权限,且能访问脚本依赖的所有资源。

内容的提问来源于stack exchange,提问作者Hadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:36:27