BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleがCloud Dataflow Java SDKをオープンソースに

GoogleがCloud Dataflow Java SDKをオープンソースに

原文(投稿日:2014/12/18)へのリンク

Googleは今年初め,Cloud Dataflowを発表した。大量のデータをバッチ,あるいはリアルタイムで処理するためのサービスとSDKだ。そして今回,同社はDataflow Java SDKをオープンソースにした。開発者がその動作内容を確認したり,オンプレミスあるいはクラウド上で動作するサービスにSDKを使用することが可能になる。

Dataflowは,FlumeJava - データ並列パイプラインを生成するJavaライブラリ - と,MillWheel - フォールトトレラントなストリーム処理アプリケーション構築のためのフレームワーク - から発展させた技術を採用した,クラウド上のサービスである。いずれもGoogle社内の“数百人の開発者”によって利用されているものだ。サービス自体は言語に依存しないが,Googleはアプリケーション開発を容易にするためにJava SDKを提供している。

Dataflowが採用する中心的な概念は,“入力データソースを読み込み,データを変換し,結果を出力として書き込む,という一連のオペレーション”で構成されるパイプラインだ。データは有限サイズないし無限サイズのコレクション(Collection)に編成され,いくつものトランスフォーメーション(Transformation)へと送られる。トランスフォーメーションは,入力となるコレクションを操作して,出力のコレクションを生成するデータ処理である。パイプラインを実行する環境は,パイプライン・ランナ(Pipeline Runner)と呼ばれる。SDKでは,ローカルマシン用のDirectPipelineRunner,Google Cloud Platform用のDataflowPipelineRunner,同じくGoogle Cloud用で,実行ステータスをログメッセージとして表示するBlockingDataflowPipelineRunnerの3つが提供されている。

パイプラインは,トランスフォーメーションを線形に順次実行するシンプルなものでも,ブランチした後にマージするような,トランスフォーメーションパスを持った有向グラフなどの複雑なものでもよい。パイプラインではデータの共有や,別のパイプラインでトランスフォーメーションを行うことはできない。また,パイプラインは非同期に動作するので,Dataflowサービスでは,いくつかのトランスフォーメーションを実行する順序を決めておいて,プロセス全体を効率面で最適化することも可能だ。

DataflowアプリはGoogle Cloud Platformにデプロイすることも可能だ。コードを実行するVMの提供やデータストレージ,あるいはデータ処理のためのBigQuery機構といったすべてのインフラストラクチャを,Google Cloud Platformが処理してくれる。他のランナを使ってローカルに,あるいは他のクラウドにデプロイして,同様のサービスを開発することも可能だ。

Dataflow SDKには利用例が付属する。開発者の質問に答えるStack Overflowのタグも用意されている。

この記事に星をつける

おすすめ度
スタイル

BT