【发布时间】:2020-02-25 22:19:42
【问题描述】:
如果我想在 Flink 中拆分流,最好的方法是什么?
我可以使用进程函数并通过使用侧输出来拆分流。水印是否与元素一起传递到侧面输出,以便每个侧面输出中的数据可以向下游传递给其他窗口运算符?
或者,我应该只使用多个 filter() 操作将一个流过滤成多个流,每个流都包含一个元素的子集吗?在这种情况下如何处理水印?是否所有水印都传递给所有过滤的流?
如果两者都可能,哪个是首选(哪个具有更好的性能)?或者有比上述任何一个选项更好的方法吗?
【问题讨论】:
-
您能详细介绍一下您的用例吗?
-
我有两个用例:(1)有时传入的流包含完全不同类型的对象,我需要在 Flink 中创建两个 DataStream,其中 A 类型的对象在一个流中,类型的对象B 在另一个流中。 (2) 在我的另一个用例中,对象都是相同的数据类型,我需要根据对象中特定字段的值来拆分流。
标签: apache-flink flink-streaming