Apache Flink 漫谈系列(11) - Temporal Table JOIN
从成果上说Temporal Table JOIN和 LATERAL JOIN都是由左流一条数据获取多行数据,也就是单流驱动,而且都是被动查询,那么Temporal JOIN和LATERAL JOIN最本质的区别是什么呢?这里我们说最要害的一点是 State 的打点,LATERAL JOIN是一个TableFunction,不具备state的打点手段,数据不具备版本特征。而Temporal Table JOIN是一个具备版本信息的数据表。 2. Temporal Table JOIN vs 双流 JOIN Temporal Table JOIN 和 双流 JOIN都可以打点State,那么他们的本质区别是什么? 那就是计较驱动的不同,Temporal Table JOIN是单边驱动,Temporal Table是被动的查询,而双流JOIN是双边驱动,双方都是主动的举办JOIN计较。 3. Temporal Table JOIN改造 小我私人以为Apache Flink的Temporal Table JOIN成果岂论在语法和语义上面都要遵循ANSI-SQL尺度,后期会敦促社区在Temporal Table上面支持ANSI-SQL的FOR SYSTEM_TIME AS OF尺度语法。改造后的处理赏罚逻辑表示图: 个中cache是一种机能思量的优化,具体内容待社区完美后再细述。 六、小结 本篇团结ANSI-SQL尺度和SQL Server对Temporal Table的支持来开篇,然后先容今朝Apache Flink对Temporal Table的支持近况,以代码示例和内部处理赏罚逻辑表示图的方法让各人直观体验Temporal Table JOIN的语法和语义。 关于点赞和评述 本系列文章不免有许多缺陷和不敷,真诚但愿读者对有收成的篇章给以点赞勉励,对有不敷的篇章给以反馈和提议,先行感激各人! 作者:孙金城,混名 金竹,今朝就职于阿里巴巴,自2015年以来一向投入于基于Apache Flink的阿里巴巴计较平台Blink的计划研发事变。 【本文为51CTO专栏作者“金竹”原创稿件,转载请接洽原作者】 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |