开发者社区> 问答> 正文

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

flink小助手 2018-12-06 18:00:21 520

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)如何找不到连接结果的原因。

关系型数据库 MySQL 数据库 流计算
分享到
取消 提交回答
全部回答(1)
  • flink小助手
    2019-07-17 23:18:37

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

    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程