tencent cloud

流计算 Oceanus

动态与公告
产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
计费模式
退费说明
调整配置费用说明
快速入门
从零开始上手
创建独享集群
创建 SQL 作业
创建 JAR 作业
创建 ETL 作业
创建 Python 作业
操作指南
作业管理
作业开发
作业监控
作业日志
事件与诊断
元数据管理
快照管理
作业调优
依赖管理
集群管理
权限管理
SQL 开发指南
开发指南概述
术语和数据类型
DDL 数据定义语句
DML 数据操作语句
MySQL CDC 多 Source 复用
上下游开发指南
SET 控制语句
运算符和内置函数
标识符与保留字
Python 开发指南
ETL 开发指南
概述
ETL 作业术语表
上下游开发指南
常见问题
联系我们

CREATE FUNCTION

PDF
聚焦模式
字号
最后更新时间: 2023-11-08 15:12:29
对于 SQL 作业,用户可以上传 自定义程序包,然后在作业分析开发页的参数设置中,引用该程序包。目前支持从本地上传,也可以引用账户下现有 COS 存储中的资源(仅限相同地域)。
这里的程序包既可以用来扩展 Connector 的功能,也可以创建自定义函数(UDF)。

语法

目前流计算 Oceanus 支持 Java 和 Scala 两种语言编写的程序包。当用户上传了自定义程序包后,在界面上关联后即可用下面的 CREATE FUNCTION 语句来声明:
CREATE TEMPORARY SYSTEM FUNCTION 函数名
AS '函数类全名' [LANGUAGE JAVA|SCALA]
其中的函数名可以自行定义,但不要与现有的冲突。函数类全名为 Java 或 Scala 类的类全名(例如 'com.example.flink.MyCustomFunction')。

命名覆盖

如果存在系统内置的同名函数时,用户使用上述语法创建的 UDF 会覆盖系统内置的函数。因此除非有意改变系统函数的功能,请不要创建与系统内置函数同名的自定义函数。

函数类型

目前 Flink 支持下面多种函数定义。

标量函数(Scalar Function)

标量函数简称 UDF,作用是将一个值转换为另一个值(一对一),例如系统内置的 SUBSTRINGREPLACE 等字符串操作函数,都属于标量函数。

表函数(Table Function)

表函数简称 UDTF,作用是将一个值转为表中的一行数据(一变多),这样可以在后续 JOIN 操作中作为右表。

聚合函数(Aggregate Function)

聚合函数简称 UDAGG,作用是将多行数据的一组值,聚合为一个最终值(多变一),例如系统内置的 MAXMINAVG 等都属于聚合函数。

表聚合函数(Table Aggregate Function)

表聚合函数的作用是将多行数据的一组值,聚合为新的多行数据(多对多)。

异步表函数(Async Table Function)

异步表函数可作为一种特殊的数据源,例如可以通过它来对接外部的数据库、数据存储。

UDF 开发指南

由于 Flink 不同版本间 API 和文档迭代频繁,可参考 Flink 官方文档中的 UDF 开发指南。目前流计算 Oceanus 兼容开源版的 Flink 1.11 版本 API。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈