Hi

> 1, 这个时态表必须是changlog流吗, 就是 debezium -> kafka 这样, 用和主表的flink cdc不可以吗, 
> 我用flink cdc测试没成功,因为flink cdc的维表好像不能指定watermark?

我们常说的 lookup维表也是时态表的一种,lookup 正如这个单词字面意思一样,主流的每条数据到来时都按 lookup key 去外部DB中 查询 
一条记录,这张维表自然就是最新的维表,这就是 proctime temporal join 的语义。

基于 Event-time temporal join,是按照 event-time 去取对应的版本, 与 proctime temporal 
join的区别是, proctime temporal join 只能取最新版本,Evet-time temporal join可以取该 event-time 
对应的版本。
Flink 声明 时态表主只需要两个属性, 主键 和 event time, 其中主键甚至可以是推导的。可以看下这个文档【1】

> 2, 订单表和时态表都需要一直写入数据来触发watermark吗? 
是的,event-time temporal join 靠两条流的 watermark 来共同驱动。


祝好,
Leonard
【1】https://ci.apache.org/projects/flink/flink-docs-master/zh/docs/dev/table/concepts/versioned_tables/#%e6%97%b6%e6%80%81%e8%a1%a8

> 
> 烦请解答下
> 
> 
> ------------------ 原始邮件 ------------------
> 发件人:                                                                          
>                                               "user-zh"                       
>                                                              
> <xbjt...@gmail.com&gt;;
> 发送时间:&nbsp;2021年5月27日(星期四) 下午5:14
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
> 
> 主题:&nbsp;Re: flink 维表
> 
> 
> 
> HI,
> 可以修改的,修改后不需要重启作业。
> 修改后 flink 事实流 是能立即 查询到 最新的维表数据(前提是维表查询出来的数据没有开启cache)。
> 你可以理解下 lookup 维表的语法: A join B for system time as of A.proctime on A.id 
> <http://a.id/&gt; = B.id <http://b.id/&gt; 就是 查询当前最新的维表(proctime代表了最新时间)并关联。
> 
> 
> 祝好,
> Leonard
> 
> &gt; 在 2021年5月27日,16:35,liujian <13597820...@qq.com&gt; 写道:
> &gt; 
> &gt; 请问flink lookup表作为维表,那么lookup表是不是不能新增或者修改,如果修改了那么作业就需要重启?
> &gt; 想要作业不重启咋操作

回复