开发者社区> 问答> 正文

关于 stream-stream Interval Join 的问题

我的上游是一个 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 在具体实现的逻辑是什么,我在处理上哪里有问题?*来自志愿者整理的flink邮件归档

展开
收起
又出bug了-- 2021-12-02 11:27:11 562 0
1 条回答
写回答
取消 提交回答
  • 其中 条件是   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*来自志愿者整理的FLINK邮件归档

    2021-12-02 14:12:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
LIVING THE STREAM:LIVE-STREAMI 立即下载
Real-time Platform for Second Look Use Case using Spark and Kafka 立即下载
Lazy Join Optimizations Without Upfront Statistics 立即下载