Beamが最近、Apache Software Foundationのトップレベルプロジェクトに昇格した。 Beamのゴールは、移植性のある高レベルなデータパイプラインを使用して、無限に発生する、順序がバラバラの世界中のデータを処理することである。Beamは、最初はGoogleの内部プロジェクトであったが、Apacheに移行し、2016年2月から昨年末までインキュベーションであった。Beamプロジェクトは、ストリーミングおよびバッチ処理ジョブ用に統一されたプログラミングモデルを作成し、サポートされる多くのデータ処理エンジンによって利用される成果物を目指している。Beamが求めるものは下記の通りである。
使いやすさを提供しつつも、ストリーミングとバッチの両データの並列処理に対する強力なモデルと、さまざまな実行プラットフォームでの移植性を世界中に提供します。Beam SDKは、有限と無限のデータの両方を表現するために同じクラスを使用し、そのデータを処理するために同じ変換を使用する。
JavaおよびPythonで利用可能なSDKは、選択したバックグラウンド処理エンジンと処理パイプラインコンポーネントの間の抽象化されたレイヤを提供する。サポートされている処理エンジンには、Apache Apex、Flink、Spark、GoogleのCloud Dataflowエンジンなどがある。
Beamパイプラインのプログラミングモデルには、PCollection(s)、Transform(s)、およびPipeline I/Oのほか、サポートされている各処理エンジンのランナーが含まれます。ランナーの指定を省略した場合、BeamはローカルのDirectRunnerをデフォルトとして使用する。
- パイプライン
- PCollection
- コアSDK変換オブジェクトのParDo、GroupByKey、Combine、Flatten、Partition
- Source / Sink Pipeline I/O
- DirectRunner、DataflowRunner、SparkRunner、FlinkRunner、ApexRunner
GoogleがBeamをオープンソースにした動機は、他のオープンソースプロジェクトとのインテグレーションやプロジェクトへの貢献を支援する新興ビジネスモデルの一部というところにある。その論理としては、オープンソース化することでBeamプロジェクト採用の可能性が高まり、Google Dataflowプラットフォームの露出が広がる。そして、サポートされるエンジンの中で最適な処理エンジンとしての位置づけになっていくことを期待している。GoogleにおけるSparkとBeamの比較では、Beamがイベント時刻のウィンドウ処理、電子透かし、トリガー機能によって実現されるようなセマンティクスに重点を置いているため、ストリームデータ処理とバッチデータ処理の正しいモデルとしてBeamモデルを言及している。オープンソースコミュニティとより幅広いデータ科学業界は、Googleとは独立してこれらの主張を実験的に検証していないため、アーキテクチャやベンチマークに関するより多くのユースケース分析を行う必要がある。初期の兆候として、Beamコミュニティが拡大し、複数の処理プラットフォームのサポートに関する肯定的なフィードバックがある。
Rate this Article
- Editor Review
- Chief Editor Action