加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Apache Flink 漫谈系列(11) - Temporal Table JOIN

发布时间:2018-12-12 18:12:54 所属栏目:教程 来源:孙金城
导读:一、什么是Temporal Table 在《Apache Flink 漫谈系列 - JOIN LATERAL》中提到了Temporal Table JOIN,本篇就向各人具体先容什么是Temporal Table JOIN。 在ANSI-SQL 2011 中提出了Temporal 的观念,Oracle,SQLServer,DB2等大的数据库厂商也先后实现了这

Temporal Table的观念旨在简化此类查询,加快它们的执行。Temporal Table是Append Only表上的参数化视图,它把Append Only的表变革表明为表的Changelog,并在特按时刻点提供该表的版本(时刻版本)。将Applend Only表表明为changelog必要指定主键属性和时刻戳属性。主键确定包围哪些行,,时刻戳确定行有用的时刻,也就是数据版本,与上面SQL Server示例的有用期的观念同等。

在上面的示例中,currency是RatesHistory表的主键,而rowtime是timestamp属性。

2. 怎样界说Temporal Table

在Apache Flink中扩展了TableFunction的接口,在TableFunction接口的基本上添加了时刻属性和pk属性。

(1) 内部TemporalTableFunction界说如下:

  1. class TemporalTableFunction private( 
  2. @transient private val underlyingHistoryTable: Table, 
  3. // 时刻属性,相等于版本信息 
  4. private val timeAttribute: Expression, 
  5. // 主键界说 
  6. private val primaryKey: String, 
  7. private val resultType: RowTypeInfo) 
  8. extends TableFunction[Row] { 
  9. ...} 

(2) 用户建设TemporalTableFunction方法

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读