Note
此信息适用于 Databricks CLI 版本 0.205 及更高版本。 The Databricks CLI is in Public Preview.
Databricks CLI use is subject to the Databricks License and Databricks Privacy Notice, including any Usage Data provisions.
The functions
command group within the Databricks CLI allows you to manage user-defined functions (UDFs) in Unity Catalog. 函数实现可以是任何 SQL 表达式或查询,并且可以在查询中允许表引用的位置调用它。 在 Unity 目录中,函数与表位于同一级别,因此可以使用窗体 catalog_name.schema_name.function_name
对其进行引用。
databricks 函数创建
创建新函数。
Important
这是一项试验功能。
用户必须具有以下权限才能创建函数:
-
USE_CATALOG
函数的父目录
-
USE_SCHEMA
以及CREATE_FUNCTION
函数的父架构
databricks functions create [flags]
选项
--json JSON
内联 JSON 字符串或 @path 包含请求正文的 JSON 文件的 JSON 文件。
Examples
以下示例使用 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]
Arguments
NAME
函数的完全限定名称(形式 catalog_name.schema_name.function_name
)。
选项
--force
即使函数为 notempty,也强制删除。
Examples
以下示例删除函数:
databricks functions delete my_catalog.my_schema.my_function
以下示例强制删除函数:
databricks functions delete my_catalog.my_schema.my_function --force
databricks 函数获取
从父目录和架构中获取函数。
若要使提取成功,用户必须满足以下要求之一:
- 是元存储管理员
- 函数的父目录的所有者
-
USE_CATALOG
对函数的父目录具有特权,并且是函数的所有者 -
USE_CATALOG
对函数的父目录、USE_SCHEMA
函数的父架构的特权以及EXECUTE
函数本身的特权
databricks functions get NAME [flags]
Arguments
NAME
函数的完全限定名称(形式 catalog_name.schema_name.function_name
)。
选项
--include-browse
是否在主体只能访问其选择性元数据的响应中包含函数。
Examples
以下示例获取有关函数的信息:
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]
Arguments
CATALOG_NAME
感兴趣的函数的父目录的名称。
SCHEMA_NAME
函数的父架构。
选项
--include-browse
是否在主体只能访问其选择性元数据的响应中包含函数。
--max-results int
要返回的最大函数数。
--page-token string
不透明分页令牌根据上一个查询转到下一页。
Examples
以下示例列出目录和架构中的所有函数:
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 函数更新
更新与提供的名称匹配的函数。
只能更新函数的所有者。 如果用户不是元存储管理员,则用户必须是新函数所有者的组的成员。 用户必须满足以下条件之一:
- 是元存储管理员
- 函数的父目录的所有者
- 函数的父架构的所有者,并且对其父目录具有
USE_CATALOG
特权 - 函数本身的所有者,并且对其
USE_CATALOG
父目录以及USE_SCHEMA
函数的父架构具有特权
databricks functions update NAME [flags]
Arguments
NAME
函数的完全限定名称(形式 catalog_name.schema_name.function_name
)。
选项
--json JSON
内联 JSON 字符串或 @path 包含请求正文的 JSON 文件的 JSON 文件。
--owner string
函数的当前所有者的用户名。
Examples
以下示例更新函数的所有者:
databricks functions update my_catalog.my_schema.my_function --owner someone@example.com
Global flags
--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
字符串
如果适用,要使用的捆绑包目标