数据库
首页 > 数据库> > |Flink SQL之维表JOIN

|Flink SQL之维表JOIN

作者:互联网

       维表是数仓中的一个概念,维表中的维度属性是观察数据的角度,在建设离线数仓的时候,通常是将维表与事实表进行关联构建星型模型。在实时数仓中,同样也有维表与事实表的概念,其中事实表通常

存储在kafka中,维表通常存储在外部设备中(比如MySQL,HBase)。对于每条流式数据,可以关联一个外部维表数据源,为实时计算提供数据关联查询。维表可能是会不断变化的,在维表JOIN时,需指明这

条记录关联维表快照的时刻。需要注意是,目前Flink SQL的维表JOIN仅支持对当前时刻维表快照的关联(处理时间语义),而不支持事实表rowtime所对应的的维表快照(事件时间语义)。

本篇博客参考:https://www.cnblogs.com/jmx-bigdata/p/13708845.html

官方文档地址:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sql.html#ddl

(一)Temporal Table Join语法规则

 

 

SELECT column-names
FROM table1  [AS <alias1>]
[LEFT] JOIN table2 FOR SYSTEM_TIME AS OF table1.proctime [AS <alias2>]
ON table1.column-name1 = table2.key-name1

注意:目前,仅支持INNER JOIN与LEFT JOIN。在join的时候需要使用 FOR SYSTEM_TIME AS OF ,其中table1.proctime表示table1的proctime处理时间属性(计算列)。使用FOR SYSTEM_TIME AS OF table1.proctime表示

当左边表的记录与右边的维表join时,只匹配当前处理时间维表所对应的的快照数据。

使用说明

 

标签:table1,JOIN,Flink,关联,proctime,之维表,维表,快照
来源: https://www.cnblogs.com/sjfxwj/p/14244443.html