Hi, 其中 条件是 `Where A.event_time < B.event_time + 30 s and A.event_time > B.event_time - 30 s ` 吧 可以参考以下例子[1],看下有木有写错。 [1] https://github.com/apache/flink/blob/59ae84069313ede60cf7ad3a9d2fe1bc07c4e460/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/runtime/stream/sql/IntervalJoinITCase.scala#L183
Best, Hailong 在 2020-12-07 13:10:02,"macia kk" <pre...@gmail.com> 写道: >Hi, 各位大佬 > > 我的上游是一个 Kafka Topic, 里边把一个 MySQL DB 所有的 Binlog 打进去了。我的 >Flink任务的在处理的时候,消费一次,然后 filter out 出来 表A 和 表B,表A是 order事件 ,表B 是 order item >信息,所以 我用: > > SELECT * > FROM A > LEFT OUT JOIN B > ON order_id > Where A.event_time > B.event_time + 30 s > A.event_time > B.event_time - 30 s > >我测了下,A 和 BI 单独都可以消费输出,但是如果加上 Left Join 之后就没有输出数据了,可以确认的是我用 Spark Structural >Streaming 实现同样的逻辑是有输出的。 因为我的理解既然是 Left Join, >所以无论如何,左边是一定会输出的,不知道Flink Interval Join 在具体实现的逻辑是什么,我在处理上哪里有问题?