开发者社区> 问答> 正文

flink1.6流非窗口LEFT OUTER JOIN乱序

Streaming non window left outer join是flink1.6中的一个新功能。当我在两个动态表之间做它。联接结果不正常。我该如何正确使用此功能?两个动态表都是按顺序排列的data_update_time。NonWindowJoin左表的状态和右表状态都使用flink管理状态MapState。当我查看non window joinflink 的代码时。我很困惑:(1)NonWindowJoin.scala代码MapState是Row对象 的关键。该hashCode和equal的功能Row是由各个领域的决定Row。因此,如果流事件来自binlogmysql数据库,MapState[Row, JTuple2[Long, Long]]则将始终附加(不更新)。那MapState将记录mysql数据库中相同记录的更改日志。我怀疑连接结果的顺序是否未确定?(2)迭代它时,是否按照状态的顺序遍历?(3)如何找不到连接结果的原因。

展开
收起
flink小助手 2018-12-06 18:00:21 2704 0
1 条回答
写回答
取消 提交回答
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    无法保证联接结果的顺序。就像在关系数据库中一样,Flink的连接以任何方便且高效的顺序生成结果。连接迭代MapState对象,这些迭代器的特定顺序取决于正在使用哪个状态后端。

    2019-07-17 23:18:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载