如何在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的操作步骤
编写处理脚本
脚本需要从标准输入读取数据,处理后输出到标准输出。示例upper_case.py:#!/usr/bin/env python3 import sys for line in sys.stdin: print(line.strip().upper())配置自定义函数
在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>重启ClickHouse服务
让配置生效:sudo systemctl restart clickhouse-server验证函数可用性
在ClickHouse客户端执行查询测试:SELECT upper_case('hello world');预期返回结果:
HELLO WORLD
关键注意事项
- 脚本的shebang行需正确指向系统中的Python解释器,避免执行失败。
- 确保ClickHouse运行用户(通常为
clickhouse)对脚本拥有执行权限,且能访问脚本依赖的所有资源。
内容的提问来源于stack exchange,提问作者Hadi
相关产品推荐
相关产品推荐

