Flink是否支持地图端聚合? (流式传输)

时间:2018-08-01 13:10:53

标签: apache-flink flink-streaming

虽然我现在意识到Flink支持map-side aggregations in batching,但在流媒体中会发生同样的事情吗?假设我有类似的东西:

Dataset:
   (0, 0, "A")
   (0, 0, "B")
   (0, 1, "C")
   (0, 1, "D")
   (1, 0, "E")
   (1, 0, "F")
   (1, 1, "G")
   (1, 1, "H")

nonKeyedStream
    .keyBy(1)
    .keyBy(0)
    .reduce(((K, b1, c1),(K, b2, c2)) -> (K, someNumber, c1 + c2)) 

如何处理?

没有地图端聚合:

  • 将8个元素按“ 0”进行分区
  • 将8个元素按“ 1”进行分区
  • 汇总所有导致[(0,someNumber,“ ABEF”),(1,someNumber,“ CDGH”)]

使用地图端聚合:

  • 将8个元素按“ 0”进行分区
  • 尽可能汇总,得出[(0,someNumber,“ AB”),(0,someNumber,“ CD”),(1,someNumber,“ EF”),(1,someNumber,“ GH)] < / li>
  • 按“ 1”对4个元素进行分区
  • 汇总所有导致[(0,someNumber,“ ABEF”),(1,someNumber,“ CDGH”)]

0 个答案:

没有答案