在Flink SQL定义了两张kafka表(A表和B表),类型为debezium-json,然后要进行区间JOIN,SQL类似这样:
select * from A left join B
on A.id = B.id
and B.dt BETWEEN A.dt and A.dt + INTERVAL '30' SECOND
第一个问题是:想要在A和B表中显示定义watermark(dt字段即event_time)来解决可能出现的乱序问题,但是报错了,不太明白这个报错,是否是flink
sql中目前还不支持Interval Join中定义watermark?
Interval Join doesn't support consuming update and delete changes
第二个问题是:假如没有在A和B表中显示定义watermark,Job可以成功运行,是否会自动根据区间条件生成一个watermark,用于移除过期的state?
延迟问题:比如我的B流一直延迟不来新数据,A流是不是就一直state大于watermark的数据,是否有类似于datastream中定义statettl一样可以配置。
乱序问题:测试B流来了一条比较旧的数据,但是实际也能连接到A流中理论上已经过期的数据,这个不知道是不是和什么配置有关,还是state没有及时根据watermark清理导致,望解答。
--
Sent from:
http://apache-flink.147419.n8.nabble.com/