データパイプライン(data pipeline)とは?

Google Cloudにデータパイプラインを作成することによって、様々な用途に応じたデータを提供する環境を構築することができます。

本ページでは、データパイプラインとは何か、なぜ必要なのか、ETLとの違い、関連するGoogle Cloudのプロダクトを紹介します。

スポンサーリンク

データパイプラインとは?

データを産み出す人とデータを利用する人をつなぐ経路のことをデータパイプラインと呼びます。

ECサイトを例に考えてみましょう。
この場合、データを産み出す人はサイトのユーザ、データを利用する人はサイト運営企業の人になります。

産み出されるデータは、ECサイト内でのクリック履歴データやユーザが登録する個人情報だったりします。
一方でデータ利用者は、会社の経営層であったり、マーケティング担当者であったりします。会社の経営層であれば月間の売上レポートを閲覧したり、マーケティング担当者であればセールス施策の効果を検証したり、次の四半期の売上予測をしたりします。

このように、発生元で産み出されるデータと利用者側で使いたいデータには乖離があり、生産されるデータを利用しやすい形に変換したり、他の様々なデータと突合させる必要があります。そのようなデータのクレンジングや加工のステップ、その際に利用する様々なデータソース等すべてがデータパイプラインに相当します。

データパイプラインはなぜ必要なのでしょうか?

個人や企業で様々なデータが収集して、それらを活用しようとする機会が増えてきたため、データを利用者の目的や用途に応じて準備する必要が生じたからです。

サービスの分析用のデータ、機械学習を適用するためのデータ、あるいはビジネスレポート作成用データというように、利用者のニーズに応じて様々なデータを準備する必要があります。

また、そのような利用者が使い易いデータを作成する過程において、プラットフォーム上にデータパイプラインを構築して処理工程をできるだけ自動化かつ共通化した方が、多くの人が類似する処理を重複して実行する無駄を軽減させることができるからです。

分析用のデータを作成するのに必要な売上データや商品データを、毎回分析時に準備するのは効率的ではありません。売上データベースや商品データベースの形で最新のデータが一元管理されていれば、大勢の人が使い易く仕事を効率的に進められる環境を提供できるようになります。

データパイプラインは、いわゆるETL(Extract,Translate,Load)処理とは何がちがうのでしょうか?

データパイプラインはデータ生産者と利用者を結ぶすべての工程の総称で、ETLはデータパイプラインの一部の工程を指します。

例えば、ECサイトを例に考えてみましょう。
各店舗の売り上げデータがトランザクション処理で会社の基幹システムに蓄積されていて、毎日深夜に分析用のデータベースにロードされているとすると、この処理はETL処理と呼ぶことができます。

一方で、ECサイト上に在庫状況を表示する場合には、リアルタイムで購買のデータと在庫のデータを商品ごとに比較する処理が必要になります。この場合には、ETL処理に加えて、毎秒や毎分の頻度でリアルタイムにデータを処理するストリーミング処理が必要になります。そのような様々なデータを収集して加工する際の一連の処理工程や関連するすべてのデータソースをすべて含めてデータパイプラインと呼ぶことができます。

図にすると以下のようになります。

ETL処理は業務システムのデータやストリームデータを抽出するデータパイプラインの初期の段階で実行したり、データウェアハウス内での様々な用途向けのデータマート作成時にも実行したりするなど、データパイプラインの様々な箇所で利用されます。

Google Cloudの関連プロダクト

ではデータパイプラインは実際にどのように作成していったらよいのでしょうか?

ここではGoogle Cloud上にデータパイプラインを作成する場合に、よくあるデザインのパターンの一例と各工程で関連するプロダクトを紹介したいと思います。

図に表すと以下のようになります。

左上のアプリやセンサからのリアルタイムのデータは、Pub/Subで発生イベントが検知されETL処理に渡されます。左真ん中の基幹システムのデータは、1日1回などのバッチ処理で定期的にETL処理に渡されます。左下の3rdパーティのデータは定期的にCloud Storageに置かれて、ETL処理時に利用されます。

上記のような様々なデータを入力として、ETL処理ではデータのクレンジング・加工などを実行します。Google CloudのETL処理用のプロダクトはいくつも種類がありますが、ここではDataflowCloud Data Fusionを代表例として挙げます。Dataflowはサーバなしにコーディングで自由度高くETL処理を実装することができます。一方のCloud Data Fusionはコードを書かずにGUIで処理フローを定義できるというメリットがあります。

ETL処理で加工されたデータは、ノイズが除去されたもののローデータの形式のため、本番環境前のステージング環境に一旦置かれることが多いです。ステージング環境にはCloud Storageを利用したり、各種データベースのテーブルを利用したりします。そして、ステージング環境からさらにETL処理を繰り返して、データはEDW(Enterprise Data Warehouse)に置かれます。EDWにはGoogle Cloudの代表的なプロダクトであるBigQueryを導入して、ローデータに近いテーブルから用途に応じたデータマートまで様々なテーブルを作成することができます。

最終的に、用途別に作成されたデータマートを利用してLookerGoogle Data Studioなどを利用してダッシュボードや分析レポートを作成したり、機械学習を適用したりすることができるようになります。

本ページでは、データパイプラインとは何か、なぜ必要なのか、ETLとの違い、関連するGoogle Cloudのプロダクトを紹介しました。

タイトルとURLをコピーしました