不好意思,我上边贴错了
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
event_time 是 Time Attributes 设置的 event_time
这样是没有输出的。
interval join 左右表在 state 中是缓存多久的?
hailongwang <[email protected]> 于2020年12月7日周一 下午8:05写道:
> 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" <[email protected]> 写道:
> >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 在具体实现的逻辑是什么,我在处理上哪里有问题?
>