最近在研究flink相关知识, 这里大概就对外部维表关联这块做一些简单的学习吧,到处抄抄,也算是学习了,后面再看看flink与yarn的结合以及适应场景等等。
在flink1.9版本之后 引入了Blink Table/SQL 方面的功能,使得flink对于外部维表的功能变得简单;
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner-blink_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
上面的依赖为blink的maven依赖;
简单学习一下维表是什么:其实我觉得就当做类似于mysql或者Oracle中的一张表就可以了,当然这种表的存储方式就可能比较多,虽然可能存储的格式不太一样,但是其本质都是一样的,我们常见的可以做为维表的数据库如mysql,Oracle,es,高斯db,hbase,redis等等
flink1.9之后要实现维表的关联只要实现LookupableTableSource 接口,同时实现里面的方法就可以进行了:
LookupableTableSource 中的上个方法分别是:
isAsyncEnabled :主要表示该表是否支持异步访问外部数据源获取数据, 返回true时 ,那么在注册到 TableEnvironment 后,使用时会返回异步函数进行调用,当返回 false 时,则使同步访问函数。
getLo