用户可以在界面进行 UDF 的:管理、查看、创建、删除 等基本功能。
UDF 具体包含 UDF 名称、类名称、创建人、创建时间、UDF 类型(流式/离线)。
目前版本支持的 UDF 主要为离线 UDF,可以供 SparkSQL 和 Presto 所使用(即在 LAS 的 SQL 作业中被使用)。
LAS 支持 UI 创建及 DDL 创建 UDF:
CREATE FUNCTION <schemaName>.<functionName> AS '<funcClassName>' using jar '<SchemaName>.<ResourceName>';
你只需要指定用户的 Schema 名称,创建的 UDF 名称,引用 Jar 包的类名称,以及 Jar 包的资源名称即可。其中资源 Jar 包的上传可以通过下面的资源管理功能,可直接通过 UI 界面上传。 关于如何编写 Jar,请参考 UDF 章节。
当用户触发 UDF 创建后,UDF 创建通常需要 1 分钟左右的时间,以应用 UDF 优化。当 UDF 创建完成后,会出现 在UDF 管理列表。
用户可以在 UDF 管理列表界面,找到当前创建的 UDF。点击右侧的编辑按钮,用户可以对当前的 UDF 进行编辑。主要允许的编辑内容为类名,如用户想使用同一个 Jar 包里面的另外一个类,用户可以直接在编辑页面,选中 UDF 进行替换。
可编辑的内容,仅限于类名、输入参数、输出参数和使用示例。
当具备 UDF 的 Admin 权限,或者具备删除 UDF 的权限时,UDF 的删除按钮将可见,可以在页面上删除用户创建的 UDF。 当用户删除 UDF 时,UDF 所依赖的资源 Jar 包仍然将会保留。
Q:删除 UDF 时,UDF 所引用的资源会被删除吗?
只删除 UDF 并不会删除 UDF 引用的资源,用户可以通过资源重新创建新的 UDF。
Q:执行 Create Function SQL 失败,一般会是什么原因?
首先检查函数名是否满足 Schema.FunctionName 规范,其次函数名忽略大小写,需要提前检查是否已存在同名函数。
Q:同一个 Resource,可以创建多个 UDF 吗?
可以。
Q:删除 Schema、资源后,UDF 会被删除吗?
Schema、资源删除后,对应 UDF 包括对应的 FaaS 资源不会被清理,但通过 LAS 控制台提交的 SQL 包含该 UDF 时,会运行失败,需要重新在该 Schema 下上传相同资源解决报错。通过 BI 工具走 Presto JDBC 直连时不会有这个问题。