Apache Beam研究报告
概述
本文不是一篇Beam的入门文档,不会介绍Beam的基本概念;而会主要探讨Beam的表达力,Beam的性能,以及Beam目前在业内的使用情况。面向的读者是那些想使用Beam作为自己公司操作大数据的统一API,但是还有所顾虑的人们。
表达力
离线
Beam里面有两个核心原语:
ParDo: 来处理通用的基于单条数据的计算: 每条需要处理的数据会被喂给用户提供的指定的一个函数(Beam里面的@ProcessElement), 然后输出0个或者多个输出。
- 我们平常熟悉的Filter, AppendColumn等等都可以通过ParDo来实现。
- ParDo的语义涵盖了Hadoop中Map-Shuffle-Reduce的Map,Reduce
GroupByKey: 用来做Grouping的操作。
- 我们平常熟悉的Count, Sum, Min等等都可以通过G