You need to enable JavaScript to run this app.
导航
管理 UDF
最近更新时间:2025.06.12 17:30:35首次发布时间:2025.06.03 14:24:25
我的收藏
有用
有用
无用
无用

ByteHouse 支持创建用户自定义函数(User-Defined Function,UDF),满足业务场景下用户自定义计算逻辑的需求。本文介绍了如何创建、编辑和删除 UDF。

使用限制
  • 该功能为 Beta 功能,请提交工单或联系 ByteHouse 团队获取白名单权限。
  • 仅具有 SystemAdmin 角色的用户支持创建和管理 UDF 权限。

功能概况

UDF(User-Defined Function,用户自定义函数)是指由用户创建的自定义函数,通常在数据库系统或编程语言环境中使用,以满足特定的计算需求。您可通过 UDF 扩展内置功能,通过使用特定的编程语言(如 SQL、Python、Java 等)编写自定义逻辑,从而实现更加复杂或个性化的数据处理。
当前 ByteHosue 支持可执行用户定义函数(Executable UDF),支持调用 UDF 时调用一段本机的脚本,当前版本支持 Python 脚本。

创建 UDF
  1. 登录 ByteHouse 企业版控制台,单击顶部数据管理,在左上角下拉选择已创建成功的集群,单击➕新建 按钮,选择创建 UDF
    Image

  2. 填写 UDF 基本信息。
    Image

    参数

    配置说明

    集群

    选择已创建的集群,后续 UDF 会创建在此集群中。

    UDF 类型

    当前仅支持 Executable 类型。

    名称

    自定义 UDF 名称。命名规则如下:

    • 不能以数字开头;
    • 不能包含空格;
    • 只能包含字母,数字及下划线。

    描述

    自定义 UDF 描述信息。
    所有用户都可以看到 UDF 描述,建议在描述文本框中填写样例,辅助用户在 SQL 工作表使用 UDF。

  3. 填写 UDF 配置信息。
    Image

    参数

    配置说明

    输入值

    配置 UDF 的输入(Input)参数名和类型。如需添加多个参数,可单击添加多行按钮,继续添加。
    参数名请以字母或下划线开头,可以包含字母数字和下划线。

    结果值

    配置 UDF 的输出(Output)参数名和参数类型。
    参数名请以字母或下划线开头,可以包含字母数字和下划线。

    数据格式

    当前仅支持 TabSeparated 格式。

    上传文件

    上传 UDF 脚本文件。当前仅支持 .py 格式,单个文件大小不超过 10M。
    您可单击 Python 模板下载,下载模板并参考以下模板说明按需自定义函数信息。

    Python 模板内容及说明如下:

    # Format为TabSeperated情况下,输入参数在标准输入流中以Tab分割
    # 每行为一组输入参数,需要在标准输出流中产生对应的一行输出
    def concat_three_elem():
        import sys
        for line in sys.stdin:
            # 去除行末尾的换行符,并按Tab分割
            parts = line.strip().split('    ')
            # 确保有三个参数
            if len(parts) == 3:
                # 拼接三个参数
                output = ''.join(parts)
                print(output)
            else:
                print("每行应包含三个参数,用Tab分隔。")
    if __name__ == "__main__":
        concat_three_elem()
    

    代码

    说明

    for line in sys.stdin

    逐行处理数据。sys.stdin 为标准输入流,对应的是输入值。

    parts = line.strip().split(' ')

    移除每行末尾的换行符,并按 Tab 键分割字符串,将一行输入拆分为多个参数。

    if len(parts) == 3

    验证输入参数数量是否为 3 个。

    output = ''.join(parts)

    输出结果为拼接参数列表为字符串。

    print(output)

    自动被抓取为返回值,每行只能 print 一次,否则将会报错。

  4. 单击立即创建。系统提示创建成功,并跳转至 UDF 详情页。

  5. 重启集群。UDF 创建后,需要重启集群才能生效,操作详情请参考集群重启
    Image

编辑 UDF

ByteHouse 支持编辑已创建的 UDF。

  1. 登录 ByteHouse 企业版控制台,单击顶部数据管理,在左上角下拉选择已创建成功的集群,在列表中单击 UDF 文件夹,单击目标 UDF 名称
  2. 在 UDF 详情页,单击右上角编辑
    Image
  3. 在编辑 UDF 页面,按需修改描述和配置信息。
  4. 单击保存

删除 UDF
  1. 登录 ByteHouse 企业版控制台,单击顶部数据管理,在左上角下拉选择已创建成功的集群,在列表中单击 UDF 文件夹,单击目标 UDF 名称
  2. 在 UDF 详情页,单击 ... 按钮,单击删除
    Image

相关参考:为用户授予 UDF 权限

您可参考以下文档,为用户授予 UDF 相关权限: