Xel*_*eli 2 batch-processing apache-flink
我们正在使用 Apache Flink(1.4.2) 进行批处理,出于性能原因,我们希望在输出之前对 100 个项目进行分组,而不是直接输出每个项目。
如果我们要使用 DataStream API,我们将能够使用诸如翻滚窗口之类的东西(https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/stream/operators/windows.html #翻滚窗口)
但这在进行批处理时不可用。
是否可以使用 DataSet Api 或许通过某些 group/reduce 函数来做到这一点?
如果记录可以任意批处理在一起,我不会使用groupBy, reduce,或者groupReduce因为它们会对 进行不必要的洗牌和排序DataSet。
相反,您可以使用 aMapPartitionFunction将记录一起批处理。AMapPartition接收分区所有记录的迭代器,并可以通过收集器发出记录。由于它只是消耗记录而无需重新组织它们(随机播放、排序),因此非常高效。
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |