Apache Beam

What is Apache Beam?

"Apache Beam is an open source, unified model for defining both batch and streaming data-parallel processing pipelines. Using one of the open source Beam SDKs, you build a program that defines the pipeline. The pipeline is then executed by one of Beam’s supported distributed processing back-ends, which include Apache Apex, Apache Flink, Apache Spark, and Google Cloud Dataflow.

Beam is particularly useful for Embarrassingly Parallel data processing tasks, in which the problem can be decomposed into many smaller bundles of data that can be processed independently and in parallel. You can also use Beam for Extract, Transform, and Load (ETL) tasks and pure data integration. These tasks are useful for moving data between different storage media and data sources, transforming data into a more desirable format, or loading data onto a new system."

Deployment: apache beam pipeline can be deployed on Spark, Cloud Dataflow of Google Cloud, Flink or locally.

Main advantage of Beam is its uniform access patterns for various data sources such as BigTable, BigQuery, PubSub, DataStore etc.

A Beam pipeline can written in Java, Python or Go.

Source: https://youtu.be/owTuuVt6Oro?t=1m42s