|
| |
| 作者 | |
|---|---|
| 開発元 | Apache Software Foundation |
| 初版 | 2016年6月15日 |
| 最新版 |
2.63.0
/ 2025年2月18日 |
| リポジトリ | Beam Repository |
| プログラミング 言語 | Java, Python, Go |
| 対応OS | クロスプラットフォーム |
| ライセンス | Apache License 2.0 |
| 公式サイト |
beam |
Apache Beamは、ETL、バッチおよびストリーム処理を含むデータ処理パイプラインを定義・実行するためのオープンソースの統合プログラミングモデルである。提供されているSDKの1つを使用してBeam Pipelinesと呼ばれるデータ処理パイプラインを定義し、Apache Flink、Apache Samza、Apache Spark、Google Cloud DataflowなどのBeamがサポートするRunner(分散処理バックエンド)の1つを使用してパイプラインを実行する。
Apache Beamは、Dataflowモデルの論文の実装の1つである。Dataflowモデルは、Googleでの分散処理の抽象化、特にFlumeJavaとMillwheelに関する過去の成果に基づいて設計されている。
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パイプラインとは、データの収集、加工、出力までのデータ処理ワークフローを定義したものである。
[ Source ] ──> ( PCollection ) ──> [ PTransform ] ──> ( PCollection ) ──> [ Sink ]
データ処理の最初から最後までのデータフロー全体をカプセル化したオブジェクトである。データの読み込みから変換、出力まで、どのステップをどの順番で実行するかという「全体の設計図」を保持する。
パイプライン内を流れるデータセット(データの集まり)のことです。Beam独自のデータ型で、バッチ処理の場合は「固定されたデータサイズ」、ストリーミング処理の場合は「無限に続くデータのストリーム」を表現する。PCollectionは一度作成すると中身を変更できない性質を持っている。
データに対して行う具体的な加工・計算処理である。
PTransform として定義され、入力の PCollection を加工して新しい PCollection を出力する。外部システムとデータをやり取りするためのコネクタ。