拆分vs过滤器与修改后的地图功能

时间:2018-02-11 06:26:42

标签: apache-flink flink-streaming

假设您正在处理通过两个地图功能的事件流。第一个尝试根据某些标准对事件进行分类,但在某些情况下可能会失败(使事件保持不变)。第二个应该只对那些在第一步中无法分类的事件起作用。我不确定哪种策略是最好的:

  1. 在应用第一个运算符后拆分流,仅将第二个运算符应用于其中一个分支(包含未分类事件的分支),然后使用union再次将两个流连接回来

  2. 将流拆分为1,但使用过滤器而不是拆分

  3. 应用第一个地图运算符后,根本不要拆分流。相反,只需保留原始流并修改第二个地图功能,以检查它是否应该对当前事件采取行动(基于第一步分类结果)

1 个答案:

答案 0 :(得分:2)

我认为最干净的方法是将第一个地图实现为具有side output的ProcessFunction,然后是第二个映射器,然后是联合。