Flink DataStream 如何实现双流 Join

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink DataStream 如何实现双流 Join相关的知识,希望对你有一定的参考价值。

图片

在离线 Hive 中,我们经常会使用 Join 进行多表关联。那么在实时中我们应该如何实现两条流的 Join 呢?Flink DataStream API 为我们提供了3个算子来实现双流 join,分别是:

  • join
  • coGroup
  • intervalJoin

下面我们分别详细看一下这3个算子是如何实现双流 Join 的。

1. Join

Join 算子提供的语义为 “Window join”,即按照指定字段和(滚动/滑动/会话)窗口进行内连接(InnerJoin)。Join 将有相同 Key 并且位于同一窗口中的两条流的元素进行关联。

Join 可以支持处理时间和事件时间两种时间特征。

Join 通用用法如下:

stream.join

以上是关于Flink DataStream 如何实现双流 Join的主要内容,如果未能解决你的问题,请参考以下文章

面试官: Flink双流JOIN了解吗? 简单说说其实现原理

面试官: Flink双流JOIN了解吗? 简单说说其实现原理

十分钟手撕Flink双流JOIN面试

Flink处理函数实战之五:CoProcessFunction(双流处理)

Flink 源码解读系列 DataStream 窗口分配器 WinowAssigner

Flink 源码解读系列 DataStream 窗口分配器 WinowAssigner