合并多个flink数据流的最佳方法是什么?

rslzwgfq  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(1636)

我正在寻找最好的方法来合并多个(>20)flink流,这些流代表我们系统中不同的事件起源,它们都有相同的类型。

List<DataStream<Event>> dataStreams = ...

其中每个对象都是一个pojo(显然是一个抽象表示)

public class Event implements Serializable {
  public String userId;
  public long eventTimestamp;
  public String eventData;

}

我最终只想得到一条流

DataStream<Event> merged;

有不同的管理方法: join , coGroup , map / flatMap (使用 CoGroup ) & union . 我不确定哪一个能给我提供从原始流到合并流的事件的最快吞吐量。此外,是否有一个操作符可以一次用于所有流,或者我应该一次只调用两个流?
我在找一条小溪
keyedBy userId 菲尔德,这有什么区别吗?
另一方面,下一步是“排序”事件(在每个 window )对于每个 userIdeventTimestamp 按时间顺序排列 userId .

eivgtgni

eivgtgni1#

如果事件有相同的类型,我肯定会同意 union 因为它是最简单的形式,也是最简单的形式。另外,请注意union将vararg作为参数,这基本上意味着您可以在一个调用中连接所有流。

相关问题