データパイプラインとは

データ・パイプラインは、データを収集、変換、保存し、様々なデータ・プロジェクトのステークホルダーがデータを利用できるようにします。

タイにて夜の石油精製所を上空から見た写真
データパイプラインとは

データ・パイプラインは、データ分析のために、ロウ・データを様々なデータ・ソースから取り込み、データレイクやデータウェアハウスなどのデータストアに移動するメソッドです。 データがデータ・リポジトリー送られる前に、通常何らかのデータ処理が行われます。 これには、フィルター処理、マスキング、アグリゲーションなどのデータ変換が含まれ、適切なデータの統合と標準化を行います。 この処理は特にデータ・セットの宛先がリレーショナル・データベースであるときに重要です。 このタイプのデータ・リポジトリーには、既存のデータを新しいデータに更新するために、データの列やタイプをマッチングするなどの配置を必要とする定義されたスキーマがあります。 

データパイプラインでは、その名前が示すように、データサイエンス・プロジェクトまたはビジネス・インテリジェンス・ダッシュボードに向かってデータがパイプの中を流れるように移動しています。 データは、API、SQL、 NoSQLデータベースファイルなど広範囲の場所に保存されていますが、残念ながら、そのデータはすぐに使用できる状態ではありません。 データ準備タスクは、通常、ビジネス・ユースケースに適したデータの構造化を行うデータ・サイエンティストやデータ・エンジニアが担当します。 データ・パイプラインで、どのタイプのデータ処理が必要かは探索的データ分析と定義されたビジネス要件によって決まります。 データが適切にフィルタリング、マージ、要約されると、データを保存して使用できるようになります。 適切に構成されたデータ・パイプラインは様々なデータ・プロジェクトの基盤を提供します。これには探索的データ分析、データの視覚化、機械学習タスクなどがあります。


データ・パイプラインのタイプ

データ・パイプラインのタイプは主に2つあり、それはバッチ処理とストリーミング・データです。

バッチ処理

バッチ処理の開発は信頼できるスケーラブルなデータ・インフラストラクチャーを構築する上で重要なステップでした。 MapReduceは、バッチ処理のアルゴリズムとして、2004年に特許を取得すると、 Hadoop 、CouchDB、MongoDBなどのオープン・ソース・エコシステムに内蔵されました。

バッチ処理は、その名前が示すように、通常はビジネスのオフピーク時に一定の時間間隔でデータのバッチをリポジトリーに格納します。 バッチ処理作業は大容量のデータを扱うめ、システム全体に負荷がかかるものですが、このように他の作業に影響を与えずに済みます。 バッチ処理は通常、特定のデータ・セット(例えば月次会計など)を即座に分析する必要がないときに最適なデータ・パイプラインで、それは更に「Extract(抽出)、Transform(変換)、Load(格納)」の頭文字をとったETLデータ統合プロセスに関連付けられます。

バッチ処理作業は連続したコマンドのワークフローを形成し、そこでは、あるコマンドの出力が次のコマンドの入力になります。 例えば、あるコマンドがデータの取り込みを開始させ、次のコマンドか特定の列のフィルター処理を起動し、その次のコマンドがアグリゲーションを行うということです。 この一連のコマンドは、データが完全に変換されて、データ・リポジトリーに書き込まれるまで続きます。

ストリーミングデータ

バッチ処理と異なり、ストリーミング・データは絶えずデーターの更新が必要なときに利用されます。 たとえば、アプリケーションやPOSシステムは製品のインベントリーや販売記録を更新するためにリアルタイムでデータを必要とします。こうすることで、販売者は顧客に製品の在庫の有無を知らせることが可能です。 製品の販売などの単一の処理は「イベント」とみなされアイテムをチェックアウトに追加するなどの関連イベントは、通常「トピック」または「ストリーム」として同じグループに分類されます。 これらのイベントは、オープンソースで提供されているApache Kafkaなどのメッセージ・システムやメッセージ・ブローカーによって転送されます。 

データ・イベントは発生した直後に処理されるため、ストリーミング・プロセッシング・システムは、バッチ・システムよりも待ち時間は少ないですが、メッセージが意図せずして消えてしまう、あるいはメッセージ・キューに長時間とどまってしまう可能性があるため、バッチ処理ほど信頼できるシステムではありません。 メッセージ・ブローカーは承認を得てこの問題解決に取り組むお手伝いをします。メッセージ・キューにたまったメッセージを取り除くために、顧客は、メッセージ・ブローカーがメッセージを処理することを承認します。 

IBM StreamsでKafkストリーミング・アプリを構築する方法を見る


データ・パイプラインのアーキテクチャー

データ・パイプラインのアーキテクチャーを設計する3つのステップ 

1. データの取り込み:データは、さまざまなデータ構造(例えば構造化データと非構造化データ構造化など)を含むさまざまなデータソースから収集されます。 ストリーミング・データ内では、これらのロウ・データ・ソースは、通常、プロデューサー、パブリッシャー、または送信者呼ばれています。 企業はデータが処理できる状態にあるときにだけデータの抽出を行うとい選択肢も可能ですが、初めはクラウド・データ・ウェアハウス内でロー・データの抽出を実行できる方が良いです。 この方法では、企業がデータ処理作業を調整する必要があるときでも、過去のどのデータでも更新することが可能です。 

2. データ変換:このステップでは、宛先データ・リポジトリーによって要求された形式にデータを処理するために、一連の作業が実行されます。 これらの作業はビジネス・レポートの作成などの反復作業をオートメーションとガバナンスに組み込み、データ・クレンジングやデータ変換が一貫して行われるようにします。  例えば、データ・ストリームがネストされたJSON形式で届くかもしれません。そして分析にあたって、データ変換ステージがキー・フィールドを抽出するためにそのJSONを展開しようとするでしょう。

3. データ・ストレージ:変換されたデータは、データ・リポジトリー内に保存され、さまざまなステーク・ホルダーに公開することが可能となります。 ストリーミング・データ内では、この変換されたデータは、通常、コンシューマー、サブスクライバー、または受信者と呼ばれています。  


データ・パイプラインとETLパイプラインの比較

データ・パイプラインやELTパイプラインなどの用語が会話の中で相互にどちらでも使用できるような状況で使われている場面を見ることもあるでしょう。 ただし、ETLパイプラインはデータ・パイプ・ラインのサブカテゴリーとして考えなければなりません。 2種類のパイプラインが3つの主な特徴で区別されています:

•ETLパイプラインは特定の手順に従います。 ETLという頭文字が示しているように、データを抽出・変換し、データ・リポジトリーへの格納と保存を行います。 すべてのデータ・パイプラインがこの手順に従わなければならいないわけではありません。 しかし実際のところ、クラウドネイティブ・ツールの登場によりETLパイプラインの人気が高まっています。 まずこのタイプのパイプラインでデータの取り込みが行われている間は、データがクラウド・データウェアハウスに格納されてから変換が適用されます。  

•ETLパイプラインはバッチ処理を使用する傾向がありますが、前述の通り、データ・パイプラインの適用範囲は広いです。 ETLパイプラインにはストリーム・プロセッシングも含まれます。 

•最後に、可能性は低いですが、データパイプライン全体で考えると、ETLパイプラインのように必ずしもデータ変換を行う必要はありません。 ただし、データ分析を行うために変換を使用しないパイプラインを目にすることはまれです。 


データ・パイプラインのユースケース

ビッグデータが増え続けるにつれて、いまだかつてないほどデータ管理の優先度は増しています。 データ・パイプラインは、様々な機能を果たしますが、以下はビジネスにおけるデータ・パイプラインの3つの広範なアプリケーションです: 

• 探索的データ解析(EDA): 探索的データ解析(EDA)探索的データ解析(EDA)は、データサイエンティストがデータセットを分析・調査し、その主な特徴を要約するために用いられるもので、多くの場合、データの可視化手法を採用しています。 データソースをどのように操作すれば必要な答えが得られるかを判断し、データサイエンティストがパターンを発見したり、異常を発見したり、仮説を検証したり、仮定を確認したりすることを容易にします。

•データの視覚化:データの視覚化とは、チャート、グラフ、インフォグラフィック、さらにはアニメーションなどの一般的なグラフィックを用いてデータを表現することです。 これらの情報は、複雑なデータの関係やデータに基づいた洞察をわかりやすく伝えるために、視覚的に表示されます。

•機械学習:機械学習は、人工知能(AI)とコンピューター・サイエンスの一分野であり、データとアルゴリズムを使用して人間の学習方法を模倣し、徐々にその精度を向上させることに重点を置いています。 統計的手法を使用することにより、アルゴリズムは分類または予測を行うようにトレーニングされ、データ・マイニング・プロジェクト内の重要な洞察を明らかにします。


データ・パイプラインとIBM

IBM Cloud Pak for Dataでは、マイクロサービスとその優れたデータとAIの機能を利用して、分散システム全体でデータのインテリジェントな統合を実現して、業績に関する総合的な視点を企業に提供します。 これにより、エンタープライズ・データの迅速な収集と編成、およびこのようなデータに関する洞察の獲得が可能になり、企業は大規模な意思決定を行うことができるようになります。 また、データ管理チームは、IBMの優れたセキュリティー・フレームワークが確実に規制ポリシーを遵守し、コンプライアンス・リスクを削減することによって、自社のデータが安全に保護されていることを信頼できるようになります。 IIBM Cloud Pak® for DataとIBM Streamsが複数の環境でお客様のビジネスのデータ・パイプラインのアーキテクチャーを改善していく方法をご覧ください。