Apache Beam
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/06/17 02:28 UTC 版)
![]() |
|
| 作者 | |
|---|---|
| 開発元 | Apache Software Foundation |
| 初版 | 2016年6月15日 |
| 最新版 |
2.63.0 / 2025年2月18日[1]
|
| リポジトリ | Beam Repository |
| プログラミング 言語 |
Java, Python, Go |
| 対応OS | クロスプラットフォーム |
| ライセンス | Apache License 2.0 |
| 公式サイト | beam |
Apache Beamは、ETL、バッチおよびストリーム処理を含むデータ処理パイプラインを定義・実行するためのオープンソースの統合プログラミングモデルである[2]。提供されているSDKの1つを使用してBeam Pipelinesと呼ばれるデータ処理パイプラインを定義し、Apache Flink、Apache Samza、Apache Spark、Google Cloud Dataflow などのBeamがサポートするRunner(分散処理バックエンド)の1つを使用してパイプラインを実行する[3]。
歴史
Apache Beam[3]は、Dataflowモデルの論文の実装の1つである[4]。Dataflowモデルは、Googleでの分散処理の抽象化、特にFlumeJava[5]とMillwheelに関する過去の成果に基づいて設計されている[6][7]。
2014年、Googleは、DataflowモデルのオープンSDK実装と、Dataflowをローカル(非分散)およびGoogle Cloud Platformサービス上で実行する環境をリリースした。
2016年、GoogleはコアSDK、ローカルランナーの実装、およびGoogle Cloud Platformのデータサービスにアクセスするための一連のIO(データコネクタ)をApache SoftwareFoundationに寄贈した。他の企業やコミュニティのメンバーは、既存の分散実行プラットフォームのRunnerや、Beam Runnerを既存のデータベース、Key-Valueストア、メッセージシステムと統合するための新しいIOをコントリビュートしている。さらに、Beamモデルに加えて特定のドメインのニーズをサポートするための新しいDSLが提案されている[要出典] 。
Apache Beamパイプライン
Apache Beamパイプラインとは、データの収集、加工、出力までのデータ処理ワークフローを定義したものである[8]。
[ Source ] ──> ( PCollection ) ──> [ PTransform ] ──> ( PCollection ) ──> [ Sink ]
Pipeline
データ処理の最初から最後までのデータフロー全体をカプセル化したオブジェクトである。データの読み込みから変換、出力まで、どのステップをどの順番で実行するかという「全体の設計図」を保持する。
PCollection
パイプライン内を流れるデータセット(データの集まり)のことです。Beam独自のデータ型で、バッチ処理の場合は「固定されたデータサイズ」、ストリーミング処理の場合は「無限に続くデータのストリーム」を表現する。PCollectionは一度作成すると中身を変更できない性質を持っている。
PTransform
データに対して行う具体的な加工・計算処理である。
- データのフィルタリング(不要なデータの除去)
- データの整形・結合
- 集計(合計、平均、カウントなど) これらはすべて
PTransformとして定義され、入力のPCollectionを加工して新しいPCollectionを出力する。
Pipeline I/O
外部システムとデータをやり取りするためのコネクタ。
関連項目
出典
- ↑ Apache Beam 2.63.0 2025年3月2日閲覧。
- ↑ Woodie (2016年4月22日). “Apache Beam's Ambitious Goal: Unify Big Data Development”. Datanami. 2016年8月4日閲覧。
- 1 2 “Cloud Dataflow - Batch & Stream Data Processing”. 2021年5月12日閲覧。
- ↑ Akidau, Tyler; Schmidt, Eric; Whittle, Sam; Bradshaw, Robert; Chambers, Craig; Chernyak, Slava; Fernández-Moctezuma, Rafael J.; Lax, Reuven et al. (1 August 2015). “The dataflow model”. Proceedings of the VLDB Endowment 8 (12): 1792–1803. doi:10.14778/2824032.2824076 2016年8月4日閲覧。.
- ↑ Chambers, Craig; Raniwala, Ashish; Perry, Frances; Adams, Stephen; Henry, Robert R.; Bradshaw, Robert; Weizenbaum, Nathan (1 January 2010). “FlumeJava: Easy, Efficient Data-parallel Pipelines”. Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (ACM): 363–375. doi:10.1145/1806596.1806638 2016年8月4日閲覧。.
- ↑ Akidau, Tyler; Whittle, Sam; Balikov, Alex; Bekiroğlu, Kaya; Chernyak, Slava; Haberman, Josh; Lax, Reuven; McVeety, Sam et al. (27 August 2013). “MillWheel”. Proceedings of the VLDB Endowment 6 (11): 1033–1044. doi:10.14778/2536222.2536229 2016年8月4日閲覧。.
- ↑ Pointer. “Apache Beam wants to be uber-API for big data”. InfoWorld. 2016年8月4日閲覧。
- ↑ “クイックスタート: Dataflow テンプレートを使用してストリーミング パイプラインを作成する”. Google Cloud Documentation. 2026年6月17日閲覧。
- Apache_Beamのページへのリンク
