|
1 | 1 | --- |
2 | | -title: 用户定义函数(User-Defined Function) |
| 2 | +title: 用户自定义函数 |
3 | 3 | --- |
4 | 4 |
|
5 | | -本页面全面概述了 Databend 中的用户定义函数(UDF)操作,按功能组织以便参考。 |
| 5 | +Databend 中的用户自定义函数(User-Defined Function,UDF)允许您根据特定的数据处理需求创建自定义操作。本页面将帮助您为具体用例选择合适的函数类型。 |
6 | 6 |
|
7 | | -## UDF 管理 |
| 7 | +## 函数类型对比 |
| 8 | + |
| 9 | +| 特性 | 标量 SQL(Scalar SQL) | 表格 SQL(Tabular SQL) | 嵌入式(Embedded) | |
| 10 | +|---|---|---|---| |
| 11 | +| **返回类型** | 单个值 | 表/结果集 | 单个值 | |
| 12 | +| **语言** | SQL 表达式 | SQL 查询 | Python/JavaScript/WASM | |
| 13 | +| **性能** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | |
| 14 | +| **需要企业版** | 否 | 否 | Python:是 | |
| 15 | +| **包支持** | 否 | 否 | Python:是 | |
| 16 | +| **最佳适用场景** | 数学计算<br/>字符串操作<br/>数据格式化 | 复杂查询<br/>多行结果<br/>数据转换 | 高级算法<br/>外部库<br/>控制流逻辑 | |
| 17 | + |
| 18 | +## 函数管理命令 |
8 | 19 |
|
9 | 20 | | 命令 | 描述 | |
10 | | -|---------|-------------| |
11 | | -| [CREATE FUNCTION](ddl-create-function.md) | 创建新的用户定义函数 | |
12 | | -| [ALTER FUNCTION](ddl-alter-function.md) | 修改现有的用户定义函数 | |
13 | | -| [DROP FUNCTION](ddl-drop-function.md) | 删除用户定义函数 | |
14 | | -| [SHOW USER FUNCTIONS](ddl-show-user-functions.md) | 列出所有用户定义函数 | |
| 21 | +|---|---| |
| 22 | +| [CREATE SCALAR FUNCTION](ddl-create-function.md) | 使用统一语法创建标量 SQL 函数 | |
| 23 | +| [CREATE TABLE FUNCTION](ddl-create-table-function.md) | 创建返回结果集的表格函数 | |
| 24 | +| [CREATE EMBEDDED FUNCTION](ddl-create-function-embedded.md) | 创建嵌入式函数(Python/JavaScript/WASM) | |
| 25 | +| [SHOW USER FUNCTIONS](ddl-show-user-functions.md) | 列出所有用户自定义函数 | |
| 26 | +| [ALTER FUNCTION](ddl-alter-function.md) | 修改现有函数 | |
| 27 | +| [DROP FUNCTION](ddl-drop-function.md) | 移除函数 | |
| 28 | + |
| 29 | +## 统一语法 |
| 30 | + |
| 31 | +所有本地 UDF 类型都使用一致的 `$$` 语法: |
15 | 32 |
|
16 | | -## 相关主题 |
| 33 | +```sql |
| 34 | +-- 标量函数 |
| 35 | +CREATE FUNCTION func_name(param TYPE) RETURNS TYPE AS $$ expression $$; |
17 | 36 |
|
18 | | -- [用户定义函数(User-Defined Function)](/guides/query/udf) |
| 37 | +-- 表格函数 |
| 38 | +CREATE FUNCTION func_name(param TYPE) RETURNS TABLE(...) AS $$ query $$; |
19 | 39 |
|
20 | | -:::note |
21 | | -Databend 中的用户定义函数(UDF)允许您使用 JavaScript、Python 或其他支持的语言创建自定义函数,从而扩展内置功能。 |
22 | | -::: |
| 40 | +-- 嵌入式函数 |
| 41 | +CREATE FUNCTION func_name(param TYPE) RETURNS TYPE LANGUAGE python |
| 42 | +HANDLER = 'handler' AS $$ code $$; |
| 43 | +``` |
0 commit comments