跳到主要内容

用户自定义函数

Databend 中的用户自定义函数(User-Defined Function,UDF)允许您根据特定的数据处理需求创建自定义操作。本页将重点介绍常用命令,并帮助您选择适合您用例的函数类型。

函数管理命令

命令描述
CREATE SCALAR FUNCTION纯 SQL 标量函数(无外部语言)
CREATE AGGREGATE FUNCTION脚本 UDAF(JavaScript/Python 运行时)
CREATE EMBEDDED FUNCTION嵌入式函数(Python/JavaScript/WASM)
CREATE TABLE FUNCTION纯 SQL 表函数(返回结果集)
SHOW USER FUNCTIONS列出所有用户自定义函数
ALTER FUNCTION修改现有函数
DROP FUNCTION移除函数

函数类型对比

特性标量 SQL(Scalar)聚合(脚本)表格 SQL(Tabular)嵌入式(Embedded)
返回类型单个值单个值表/结果集单个值
语言SQL 表达式JavaScript/Python 运行时SQL 查询Python/JavaScript/WASM
性能⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
需要企业版Python 运行时需要Python 运行时需要
包支持Python:支持 PACKAGESPython:支持 PACKAGES
最佳适用场景数学计算
字符串操作
数据格式化
自定义聚合逻辑
需要脚本语言处理
复杂查询
多行结果
数据转换
高级算法
外部库
控制流逻辑

统一语法

所有本地 UDF 类型都使用一致的 $$ 语法:

-- 标量函数
CREATE FUNCTION func_name(param TYPE) RETURNS TYPE AS $$ expression $$;

-- 表格函数
CREATE FUNCTION func_name(param TYPE) RETURNS TABLE(...) AS $$ query $$;

-- 嵌入式函数
CREATE FUNCTION func_name(param TYPE) RETURNS TYPE LANGUAGE python
HANDLER = 'handler' AS $$ code $$;
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验