在 Flink 中拆分流
Splitting a stream in Flink
如果我想在 Flink 中拆分流,最好的方法是什么?
我可以使用处理函数并使用副输出拆分流。水印是否与元素一起传递到侧输出,以便每个侧输出中的数据可以下游到其他窗口运算符?
或者,我是否应该只使用多个 filter() 操作将一个流过滤成多个流,每个流都包含元素的一个子集?在这种情况下如何处理水印?是否所有水印都传递给所有过滤的流?
如果两者都可以,哪个更好(性能更好)?还是有比上述任一选项更好的方法?
侧输出通常是拆分流的首选方式。它们的优点是能够将流拆分为 n 路,分成不同类型的流,并且具有出色的性能。
还有另一种您没有提到的拆分流的方法,即通过 split 和 select。 Split/select 不推荐。实现有点乱,性能也不是很好。
如果我想在 Flink 中拆分流,最好的方法是什么?
我可以使用处理函数并使用副输出拆分流。水印是否与元素一起传递到侧输出,以便每个侧输出中的数据可以下游到其他窗口运算符?
或者,我是否应该只使用多个 filter() 操作将一个流过滤成多个流,每个流都包含元素的一个子集?在这种情况下如何处理水印?是否所有水印都传递给所有过滤的流?
如果两者都可以,哪个更好(性能更好)?还是有比上述任一选项更好的方法?
侧输出通常是拆分流的首选方式。它们的优点是能够将流拆分为 n 路,分成不同类型的流,并且具有出色的性能。
还有另一种您没有提到的拆分流的方法,即通过 split 和 select。 Split/select 不推荐。实现有点乱,性能也不是很好。