在Flink中拆分流

时间:2020-02-24 18:59:29

标签: apache-flink flink-streaming

如果我想在Flink中拆分流,最好的方法是什么?

我可以使用处理功能,并通过侧面输出来分割流。水印是否与元素一起传递到侧面输出,以便每个侧面输出中的数据都可以向下游传递给其他窗口运算符?

或者,我是否应该使用多个filter()操作将一个流过滤为多个流,每个流包含元素的一个子集?在这种情况下如何处理水印?所有水印都传递给所有过滤后的流了吗?

如果两者都可行,哪个是首选的(具有更好的性能)?还是有比上述任何一种方法更好的方法?

1 个答案:

答案 0 :(得分:2)

侧面输出通常是分割流的首选方法。它们的优点是能够将流分为n路,分成不同类型的流,并且具有出色的性能。

还有另一种您没有提到的流拆分方法,即通过split and select。不建议分割/选择。该实现有点麻烦,而且性能也不尽人意。

相关问题