当前位置: 首页 > news >正文

ClickHouse UDF 官方示例Example报错解决方案

目录

  • 一、环境版本
  • 二、官方示例
  • 三、解决方案
    • 1.Python脚本运行缺少权限
    • 2. 缺少Python3运行环境
  • 四、参考借鉴

一、环境版本

环境版本
docker clickhouse22.3.10.22
docker pull clickhouse/clickhouse-server:22.3.10.22

二、官方示例

官网文档

test_function使用 XML 配置创建。文件test_function.xml/etc/clickhouse-server/test_function.xml使用默认路径设置)。

<functions><function><type>executable</type><name>test_function_python</name><return_type>String</return_type><argument><type>UInt64</type><name>value</name></argument><format>TabSeparated</format><command>test_function.py</command></function>
</functions>

user_scripts文件夹内的脚本文件test_function.py/var/lib/clickhouse/user_scripts/test_function.py使用默认路径设置)。

#!/usr/bin/python3import sysif __name__ == '__main__':for line in sys.stdin:print("Value " + line, end='')sys.stdout.flush()

询问:

SELECT test_function_python(toUInt64(2));

报错:

Code: 75. DB::ErrnoException: Cannot write into pipe , errno: 32, strerror: Broken pipe: While executing TabSeparatedRowOutputFormat: While processing test_function_python(toUInt64(2)). (CANNOT_WRITE_TO_FILE_DESCRIPTOR) (version 22.3.10.22 (official build)) , server ClickHouseNode [uri=http://localhost:8123/default, options={custom_http_params=session_id=DataGrip_3dcf30c1-e0d2-4f93-8c21-7fc99420db96}]@-1444910710

执行:

SYSTEM RELOAD FUNCTIONS;
SELECT * FROM system.functions WHERE name = 'test_function_python';

发现函数已添加,却依旧运行报错

三、解决方案

1.Python脚本运行缺少权限

chmod a+x /var/lib/clickhouse/user_scripts/test_function.py

2. 缺少Python3运行环境

官方镜像中缺少Python3运行环境,需单独安装

apt update
apt install python3

四、参考借鉴

Github Issues

http://www.lryc.cn/news/208299.html

相关文章:

  • eval()函数的用法,计算字符串中的值,模板字符串进行计算
  • leetcode第80题:删除有序数组中的重复项 II
  • 【Docker】Docker-Compose内置DNS负载均衡失效问题
  • [Python]Selenium-自动化测试
  • 高效管理文件夹名称:如何批量修改指定多样化的文件夹名称
  • c 读取音频协议WAV文件头(再生成wav文件)
  • Prompt设计与大语言模型微调
  • 修复VS2015没有代码提示的问题【已解决】
  • DeepSpeed: 大模型训练框架 | 京东云技术团队
  • 暄桐推荐|学书法的必读书目
  • 2023年赋能更多的人
  • 量子计算与量子密码(入门级)
  • 将安全作为首要目标 — Venus 的现状和前景展望
  • 『第七章』翩翩起舞的雨燕:顺序与并发执行
  • c语言进制的转换10进制转换16进制
  • js中的Formdata数据结构
  • Spring MVC 执行流程
  • JAVA毕业设计104—基于Java+Springboot+Vue的医院预约挂号小程序(源码+数据库)
  • 一文了解独立站黑科技:clock斗篷技术
  • Java IDEA controller导出CSV,excel
  • FFmpeg编译安装(windows环境)以及在vs2022中调用
  • gRPC之gateway集成swagger
  • Pytorch从零开始实战07
  • 大数据知识扫盲
  • 使用Ubuntu虚拟机离线部署RKE2高可用集群
  • 记一次任意文件下载到Getshell
  • java异常处理
  • 递归为什么这么难?一篇文章带你了解递归
  • X86(32位)汇编指令与机器码转换原理
  • ES 全字段模糊检索时分词方式对检索结果的影响