Flink Table API & SQL 自定义 Scalar 标量函数
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink Table API & SQL 自定义 Scalar 标量函数相关的知识,希望对你有一定的参考价值。
1. 什么是标量函数
Scalar Function 也被称为标量函数,将 0 个、1个或多个标量值映射为一个新的标量值。输入与输出是一对一的关系,即读入一行数据,写出一条输出值。在自定义标量函数时,用户需要确认 Flink 内部是否已经实现相应的标量函数,如果已经实现则可以直接使用;如果没有实现,那么在注册自定义函数过程中,需要和内置的其他标量名称区分开,否则会导致注册函数失败,影响应用的正常执行。Flink 常见的内置标量函数有 DATE()、UPPER()、LTRIM() 等。
2. 定义标量函数
定义 Scalar Function 需要继承 org.apache.flink.table.functions.ScalarFunction 类。实现函数的类必须声明为 public、不能是抽象类,并且可以全局访问。因此,不允许使用非静态内部类或者匿名类。如果要在 Catalog 中存储用户自定义的函数,那么该类必须具有一个默认构造函数并且必须在运行时可实例化:
public class AddScalarFunction extends ScalarFunction
.
以上是关于Flink Table API & SQL 自定义 Scalar 标量函数的主要内容,如果未能解决你的问题,请参考以下文章
2021年大数据Flink(三十):Flink Table API & SQL 介绍
Flink Table API & SQL Planner 演变
18-flink-1.10.1-Table API & Flink SQL
Flink Table API & SQL Planner 演变