Apache Beam
詳細情報
- 開発者
- 公開
- 2016年
- 所有者
- Apache Software Foundation
- 種別
- プログラミングモデル
- ライセンス
- Apache 2.0
- 公式サイト
- beam.apache.org
バッチ処理とストリーム処理を一つにまとめたモデル。同じパイプラインをFlink、Spark、Dataflowのどれでも動かせる。
名前は、バッチ(Batch)とストリーム(Stream)を溶接したものだ。2016年にGoogleがCloud Dataflowの基になったモデルをApacheに寄贈した。狙いは、パイプラインの書き方と実行場所を切り離すことにある。Java、Python、Goで書けば、ランナーがFlink、Spark、Dataflow向けに変換してくれる。
Beamが残した最大の功績は、時間をめぐる語彙だ。イベント時刻と処理時刻を区別し、遅れて届いたデータをウォーターマークで扱い、トリガーでウィンドウの結果をいつ出力するかを決める。この語彙はBeamの外にも広がった。一方、移植性の約束は半分しか実現していない。ランナーごとに対応するモデルの範囲が違い、実行基盤を変えるときは結局パイプラインの調整が要る。