Flink StateBackend:State In Join

IntervalJoin

实现细节在 IntervalJoinOperator
  1. 为 LeftStream RightStream 分别初始化一个对应的 MapState,用来存储等待 Join 的数据,Key:element 的时间戳,Value:用于存储相同时间戳的所有 element 的 List
  1. 每来一个 element,做以下三件事,processElement1 + processElement2:
    1. 遍历另一个 Stream 的 MapState,取符合条件的 element 做 join
    2. 将 element 存入自己流(Left or Right Stream)的 MapState
    3. 根据 element 过期配置,在 TimerService 注册 TimerEvent,TimerEvent 触发时会根据时间戳从 MapState 清理掉相应的 elements
版权声明:农夫的狗 发表于 2021-01-15 17:59:34。
转载请注明:Flink StateBackend:State In Join | 404导航

暂无评论

暂无评论...