Flink Table API & SQL 自定义 Table 表函数
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink Table API & SQL 自定义 Table 表函数相关的知识,希望对你有一定的参考价值。
1. 什么是表函数
Table Function 也称为表值函数,将 0 个、1 个或者多个标量值作为输入参数(可以是变长参数)。与自定义的标量函数类似,但与标量函数不同。表值函数可以返回任意数量的行(结构化类型)作为输出,而不仅仅是 1 个值。返回的行可以由 1 个或多个字段组成。如果返回的行仅包含一个字段,那么可以不用结构化记录,而是输出一个标量值,该值在运行时隐式包装成一行。调用一次函数输出多行、多列的数据,从形式上更像是输出了一个表 Table,所以表函数可以认为就是返回一个表的函数,这是一个’一对多’的转换关系。
2. 自定义表函数
自定义 Table Function 需要继承 org.apache.flink.table.functions.TableFunction 类,实现函数的类必须声明为 public、不能是抽象类,并且可以全局访问。因此,不允许使用非静态内部类或者匿名类。如果要在 Catalog 中存储用户自定义的函数,那么该类必须具有一个默认构造函数并且必须在运行时可实例化:
public class SplitTableFunction extends TableFunction
以上是关于Flink Table API & SQL 自定义 Table 表函数的主要内容,如果未能解决你的问题,请参考以下文章
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 演变