注释
此信息适用于 Databricks CLI 版本 0.205 及更高版本。 Databricks CLI 目前处于公共预览阶段。
Databricks CLI 的使用须遵守 Databricks 许可和 Databricks 隐私声明,包括任何数据使用规定。
Databricksfunctions
CLI 中的命令组允许你在 Unity 目录中管理用户定义的函数(UDF)。 函数实现可以是任何 SQL 表达式或查询,并且可以在查询中允许表引用的位置调用它。 在 Unity 目录中,函数与表位于同一级别,因此可以使用窗体 catalog_name.schema_name.function_name
对其进行引用。
databricks 函数创建
创建新函数。
重要
这是一项试验功能。
用户必须具有以下权限才能创建函数:
-
USE_CATALOG
某个函数的父目录
-
USE_SCHEMA
和CREATE_FUNCTION
在函数的父架构中
databricks functions create [flags]
选项
--json JSON
内联 JSON 字符串或包含请求正文的 JSON 文件中的 @path。
例子
以下示例使用 JSON 文件创建函数:
databricks functions create --json @function-definition.json
以下示例使用内联 JSON 创建函数:
databricks functions create --json '{"name": "my_catalog.my_schema.my_function", "data_type": "INT", "full_data_type": "INT", "return_params": {"parameters": []}, "routine_body": "SQL", "routine_definition": "SELECT 1", "routine_dependencies": {"dependencies": []}, "parameter_style": "S", "is_deterministic": true, "sql_data_access": "CONTAINS_SQL", "is_null_call": false, "security_type": "DEFINER", "specific_name": "my_function"}'
databricks 函数删除
删除与提供的名称匹配的函数。
若要成功删除,用户必须满足以下条件之一:
- 函数的父目录的所有者
- 是函数的父架构的所有者,并对其父目录具有
USE_CATALOG
特权 - 函数本身的所有者,拥有其父目录的
USE_CATALOG
权限,以及其父架构的USE_SCHEMA
权限
databricks functions delete NAME [flags]
论据
NAME
函数的完整限定名称(形式为 catalog_name.schema_name.function_name
)。
选项
--force
即使函数为 notempty,也强制删除。
例子
以下示例删除函数:
databricks functions delete my_catalog.my_schema.my_function
以下示例强制删除函数:
databricks functions delete my_catalog.my_schema.my_function --force
databricks 函数获取
从父目录和架构中获取函数。
若要使提取成功,用户必须满足以下要求之一:
- 是Metastore管理员
- 是该功能的父目录的拥有者
- 在
USE_CATALOG
函数的父目录上具有特权,并且是函数的所有者 - 具有对函数父目录的
USE_CATALOG
特权、对函数父架构的USE_SCHEMA
特权,以及对函数本身的EXECUTE
特权。
databricks functions get NAME [flags]
论据
NAME
函数的完整限定名称(形式为 catalog_name.schema_name.function_name
)。
选项
--include-browse
是否在响应中包含主体仅可访问其特定元数据的函数。
例子
以下示例获取有关函数的信息:
databricks functions get my_catalog.my_schema.my_function
以下示例获取包含浏览信息的函数:
databricks functions get my_catalog.my_schema.my_function --include-browse
databricks 函数列表
列出指定父目录和架构中的函数。
如果用户是元存储管理员,则会在输出列表中返回所有函数。 否则,用户必须具有 USE_CATALOG
目录上的权限和 USE_SCHEMA
架构上的权限,并且输出列表仅包含用户具有 EXECUTE
权限或用户是所有者的函数。 不能保证数组中元素的特定排序。
databricks functions list CATALOG_NAME SCHEMA_NAME [flags]
论据
CATALOG_NAME
感兴趣函数的父目录名称。
SCHEMA_NAME
函数的父架构。
选项
--include-browse
是否在响应中包含主体仅可访问其特定元数据的函数。
--max-results int
要返回的最大函数数。
--page-token string
不透明分页令牌根据上一个查询转到下一页。
例子
以下示例列出目录和架构中的所有函数:
databricks functions list my_catalog my_schema
以下示例列出了最多 10 个结果的函数:
databricks functions list my_catalog my_schema --max-results 10
以下示例列出了包含浏览信息的函数:
databricks functions list my_catalog my_schema --include-browse
databricks 函数的更新
更新与提供的名称匹配的函数。
只有函数的所有者可以进行更新。 如果用户不是元存储管理员,则用户必须是新函数所有者的组的成员。 用户必须满足以下条件之一:
- 是Metastore管理员
- 函数的父目录的所有者
- 函数的父架构的所有者,并且对其父目录具有
USE_CATALOG
特权 - 函数本身的所有者,具有对其父目录的
USE_CATALOG
特权以及对函数父架构的USE_SCHEMA
特权。
databricks functions update NAME [flags]
论据
NAME
函数的完整限定名称(形式为 catalog_name.schema_name.function_name
)。
选项
--json JSON
内联 JSON 字符串或包含请求正文的 JSON 文件中的 @path。
--owner string
函数的当前所有者的用户名。
例子
以下示例更新函数的所有者:
databricks functions update my_catalog.my_schema.my_function --owner someone@example.com
全局标志
--debug
是否启用调试日志记录。
-h
或 --help
显示 Databricks CLI、相关命令组或相关命令的帮助。
--log-file
字符串
一个字符串,表示要将输出日志写入到的文件。 如果未指定此标志,则默认会将输出日志写入到 stderr。
--log-format
格式
日志格式类型,text
或 json
。 默认值是 text
。
--log-level
字符串
一个表示日志格式级别的字符串。 如果未指定,则禁用日志格式级别。
-o, --output
类型
命令输出类型为 text
或 json
。 默认值是 text
。
-p, --profile
字符串
要用于运行命令的 ~/.databrickscfg
文件中的配置文件名称。 如果未指定此标志,并且存在命名为 DEFAULT
的配置文件,则使用该配置文件。
--progress-format
格式
显示进度日志的格式: default
、 append
、 inplace
或 json
-t, --target
字符串
如果适用,要使用的捆绑包目标