「Google Cloud Dataflow」はデータパイプライン、従来の用語で言うとETL(Extract/Transform/Load)のマネージドサービスだ。典型的な使い方は、非同期メッセージングのCloud Pub/SubやストレージのCloud Datastoreなどからデータを取り込み、加工したうえでデータウエアハウスのBigQueryなどに送る、というものである。

 このCloud Dataflowと似た役割を果たすのが、データプレパレーションのサービス「Google Cloud Dataprep」。2018年9月に一般提供が始まった新しいサービスだ。

 データプレパレーションを簡単に言うと、データ形式(スキーマ)の決まっていない未整理データを収集・加工し、分析や利用ができる状態にすることである。

 実はCloud Dataprepのバックエンドでは、Cloud Dataflowが動いている。Cloud Dataprepで作成した処理フローをエクスポートすると、Cloud Dataflowのジョブとして利用できる、というとイメージしやすいだろう。Cloud Dataprepでできるデータの抽出・加工・格納は、Cloud Dataflowでもできると考えてよい。

 両者の違いは、用途と使う人にある。

 Cloud Dataflowは、特定の場所にある、スキーマの決まったデータに毎回同じ加工をしてデータを格納する、という定型処理に向く。この処理の実装にはコーディングが必要であり、そのためITエンジニアが使う。

 一方のCloud Dataprepは、米Googleのパートナーである米TrifactaのGUIデータプレパレーションツールを、Cloud Dataflowと組み合わせたもの。ITの知識が乏しいデータアナリストでも、データの収集・加工・格納の処理を、GUIによってその都度設計し実行することを指向している。

 今回はCloud DataflowとCloud Dataprepを取り上げる(図1)。二つのサービスを順に解説する。

図1 GCPのビッグデータサービス
今回はCloud DataflowとCloud Dataprepを取り上げる
[画像のクリックで拡大表示]

ETLのCloud Dataflow

 前述の通りCloud Dataflowはデータパイプラインのサービスであり、データを読み込んで変換し格納する、という一連の定型処理を行う。

 データパイプラインには、格納済みのデータを扱う「バッチ」と、発生し続けるデータを扱う「ストリーム」という二つのタイプがあり、Cloud Dataflowはどちらにも対応する。Googleが2010年に発表した論文「FlumeJava」のバッチデータ処理技術と、2013年に発表した論文「MillWheel」のストリームデータ処理技術を組み合わせている。

 なおCloud DataprepはバックエンドでCloud Dataflowを使うが、2018年9月時点ではストリームデータ処理に対応していない。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら