8月12日にGoogleは,同社のビッグデータ処理サービスがGA(General Availability)に達したことを発表した。このマネージドサービスは,ビッグデータソリューションが処理するデータを事前に操作する,パイプラインを構築するためのものだ。このCloud Dataflowでは,統合モデルでストリーミングとバッチプログラムの両方をサポートする。
Cloud Dataflowサービスは,MapReduce, Flume, MillwheelなどのGoogleの内部プロジェクトを発展させたものだ。2014年6月のGoogle I/Oで早期アクセスプレビューが初めてリリースされた後,アルファ版およびベータ版がそれぞれ2014年12月と2015年4月にリリースされている。
大規模データをクラウドやオンプレミスのデータプラットフォームに取り入れる前に処理する能力は,企業にとって共通の課題である。エンリッチメントやシェーピング,フィルタリング,コンソリデーション,コンポジションといった,ETL的な操作が必要となることも多い。GoogleのCloud Dataflowプラットフォームは,Googleクラウドプラットフォームのユーザを対象に,これらの課題に対処する目的で設計された。オンプレミスでのビッグデータワークロード実行を希望する企業には,Google SDKあるいはサードパーティソリューションを使用することで,データパイプラインの構築が可能である。
Google Dataflowは,ユーザが所有するクラスタのメモリ容量上の能力を越えたデータ処理を要するような,大規模な計算のシナリオでも使用できる。Cloud Dataflowの導入により,このようなジョブを並列データ処理タスクに分割して,完全に並行かつ独立的に実行することが可能になるのだ。
Googleが主張するメリットは次のようなものだ。
GoogleのプロダクトマネージャであるEric Schmidt氏は,Dataflowサービスを次の2つの方法に分類している – “バッチあるいはストリーミング形式の並列データ処理パイプライン構築のためのSDKの集合,および最適化された並列データ処理パイプライン実行のための完全にマネージドなサービス”。
Cloud Dataflowサービスは,他の分析サービスやプラットフォームに配布するデータを事前に取得し,変換,分析する手段として使用可能である。このような統合ポイントとしては,他にも,GoogleのBig QueryやCloud Datastore,Cloud Pub/Subメッセージング,あるいはサードパーティの分析サービスなどがある。
Googleは,プラットフォームサービスを拡張するためにspringML, Cloudera, dataArtisans, Salesforce.comなどのパートナーと協力している。例として,Cloud DataflowとSalesforce.com Wave Analyticsを使用しているユーザであれば,エンドツーエンドのプラットフォームを使用することにより,データの発生源に関係なく,大容量データを解析してユーザインタラクションを最適化することが可能になる。
自身でのソリューション構築を志向する組織には,オープンソースのSDKで,バウンド形式およびアンバウンド形式のデータコレクションを格納可能な,PCollectionという特殊なコレクションクラスが提供される。GoogleはこのPCollectionについて,“実質的にサイズが無制限”であり,PTransformと組み合わせることで,ソースシステムとデスティネーションシステム間のデータ転送に使用可能だ,と説明している。PCollectionクラスへのデータのロードに使用するI/O APIでは,テキストやAvroファイル,ビッグクエリテーブルなど,さまざまなファイル形式がサポートされている。
Google Dataflowでは,開発者やサービス時間,作業時間,シャッフルされたバイト数から取得した計算グラフに応じた,ジョブ単位の課金が行われる予定である。これら費用に加えて,出力結果を使用するBigQueryなどのGoogleサービスについても,別途請求が行われることになる。
この分野には,AmazonやMicrosoftといった競合サービスがいくつか存在する。AmazonはKinesisプラットフォームの提供によって,またMicrosoftもAzure Data Factoryプラットフォームで,同様のユースケースに対処している。