• TOP
  • Confluent
  • データ パイプライン : なに、なぜ、どうやって
データ パイプライン : なに、なぜ、どうやって
2022.12.02 Confluent翻訳記事

お客様とビジネス < ソリューション
2022 年 12 月 2 日 読了時間 : 6 分

これまでの 10 年間で、デジタル化に向けた大きな動きがありました。企業は、データ資産を迅速に検出、把握、適用してリアルタイムのユース ケースを強化できるようにすることで、革新的で目標達成できる、そして競争力のあるビジネス モデル、製品、サービスを決定しています。データ パイプラインは、内部では、多数の手間のかかる作業、データ移動の調整、抽出、変換、そしてデータ ローディング (読み込み) などを行って、さまざまな運用や分析のユース ケースを実現します。

そもそも、データ パイプラインとは何でしょうか?

データ パイプラインとは、データをある場所 (あるデータベース) から別の場所 (別のデータベースやデータ ウェアハウス) に移動させるためのプロセスです。データは移動の過程で変換、および修正され、最終的にはビジネス インサイトが得られるように使用できる段階に至ります。しかし、実際のデータ パイプラインは、現実の物理的なパイプラインのように、紆余曲折や障害物などがある長距離を経て移動することになるため、すぐに複雑なものになってしまいます。

一般的なデータ パイプラインの種類

データ パイプラインにはさまざまな種類があり、一般的に次の 3 つのカテゴリに分類されます。

  • 抽出、変換、読み込み (ETL: Extract, Transform, Load)
  • 抽出、読み込み、変換 (ELT: Extract, Load, Transform)
  • リバース ETL プロセス

これらの 3 つのプロセスは、データをある場所から別の場所に移動させたり、データを移動先に合わせて適したコンテキストに変換するなど、さまざまな方法が指定できます。

データ パイプラインは、特に予測分析や機械学習の分野で使用される場合、非常に高度で複雑になる可能性があります。データ パイプラインは、業務用途ではデータベースやその他のシステムへ、分析用途ではデータ ウェアハウスやデータ レイクへ、そしてビジネス インテリジェンス用途では BI プラットフォームにデータを提供することができます。クラウド (複数のクラウドの場合もあり)、オンプレミスのインフラ、サーバーレスのオプションなど、さまざまな場所や形式でデータが保管されている場合もあるため、これらのデータのワークフローを安全に管理しながら運用することは、とりわけ複雑さが増します。

データ パイプラインの仕組み

データ パイプラインは一連のデータ処理エレメントで、あるエレメントのアウトプットが次のエレメントのインプットとなります。あらゆる IT アーキテクチャとは言えないまでも、分析を行い活用するために、データの収集、変換、ルーティングを行うものとして重要な役割を担っています。データ パイプラインは長年にわたって IT 業界で利用されてきてため、よりレガシーなデータ基盤の一部となる傾向がありますが、最近の開発によってパイプラインの柔軟性は向上しています。

前述のように、バッチベースのデータ パイプラインは、次の 3 つの大きなカテゴリに分類されます。ETL、ELT、そしてリバース ETL です。ETL プロセスでは、データは元のソース (または複数のソース) から抽出する必要があります。次に、データの重複排除、標準化、検証、ソート、クレンジングなどの変換プロセスによって、高品質なデータに変換されます。そして最後に、Snowflake のようなクラウド データ ウェアハウスや MySQL のようなオペレーショナル データベースなど、目的とする宛先にデータが読み込まれます。クラウド データ ウェアハウスの普及と低価格化が進むにつれて、抽出、読み込み、変換 (ELT) およびリバース ETL といった ETL プロセスのバリエーションが生まれ、集中型データ ウェアハウスからシステムやアプリケーション (データベース、SaaS アプリケーションなど) に戻ってデータを分析し、業務やBI用途に利用できるようになりました。

ETL プロセスの仕組みをより具体的に理解するには、データがパイプラインを通過する際に直面する 3 つのプロセスに分解するとわかりやすくなります。

  1. 収集 — データは 1 つ以上のソースから未加工のデータセットとして取得され、ファイル名やテーブルなどのさまざまな形式を取ることができます。
  2. 変換 — 整理されたデータはクレンジングされ、データの移動先であるダウンストリーム システムと互換性のある形式に変換されます。
  3. 共有 — 変換されたデータは、データ ウェアハウスや運用システムに出力され、これで他のユーザーが使用できるようになります。

このようなデータ パイプラインのプロセスによって、最終的にはデータは信頼できるビジネス用途に利用できるようになります。データ パイプラインを設計する方法は多岐にわたりますが、さまざまなチームが適切なタイミングで、適切なフォーマットのデータにアクセスできる継続的なデータ フローを実現するには、バッチベースのパイプラインよりもストリーミング データ パイプラインの方が優れています。

パイプラインはコンピューティングの世界では数十年前から存在していましたが、クラウドの登場と、組織が管理しなければならないデータ量の増加により、課題に直面するようになりました。パイプラインと処理に、未だに従来のバッチベースのアプローチを用いていることに加えて、パイプラインがサイロ型で存在し、チームが単一目的のためだけにパイプラインを構築することが多々あるため、再利用ができないのです。

そこで、従来のデータ パイプラインには、次の 5 つの共通する課題があることがわかりました。

バッチ処理 : パイプラインは定期的なバッチでデータを取り込み変換するため、情報がすぐに古くなり、定期的なスケジューリングによって遅延が連鎖的に発生します。

一元化 : パイプラインは、中央部のチームが管理していますが、彼らはインサイトを提供するために必要なドメイン データを理解していないため、ボトルネックになってしまうことがよくあります。さらに、データの系統や所有権が明確でないため、セルフサービスによるアクセスが遅れ、イノベーションが立ち後れてしまいます。

管理対象外 : パイプラインは一貫した管理や観察がなされておらず、接続がその場限りであるため、拡張性がなく、セキュリティやコンプライアンス要件に対するリスクも高まります。

インフラ依存型 : 従来の ETL パイプラインには、圧倒的なコンピューティング能力とストレージが必要で、データ量が増えると、データの処理が遅くなり、コストがかかります。

モノリシックな設計 : パイプラインは一般的に柔軟性に欠けているため、新しいビジネス ロジックやデータへの適応が難しく、新たにパイプラインを作成することになるため、パイプラインの乱立と技術的負債を増大させることになります。

ストリーミング データ パイプラインを使用するタイミングと理由

ストリーミング データ パイプラインは、組織全体にリアルタイムのデータ フロー環境を提供して、ソースからターゲットにデータを送信する一方で、その過程で継続的にデータをエンリッチ化し、変換することが可能です。これで次のように 2 つの世界のいいとこ取りができます。つまり、データベースやその他の運用システムなどのデータ保存システムに格納されている過去のデータを活用しながら、リアルタイム ストリーミングのユース ケースを活用できる、ということです。これは、リアルタイムの在庫と顧客の過去の購買行動の両方を利用する必要がある、たとえばオンラインの食料品注文プロセスなどの基盤となるアーキテクチャです。

多くの先進的な企業は、ストリーミング データ パイプラインを使用して組織全体のデータ フローを再構築する方向に進んでおり、分離されたアーキテクチャでさまざまなチームがデータにアクセスして共有し、多様なユース ケースに対応するデータ製品を迅速に構築できるようになっています。多くの場合、そのデータはクラウド アーキテクチャ間でルーティングされますが、まだオンプレミスに置かれている場合もあります。Amazon Redshift、Google BigQuery、Snowflake、Microsoft Azure SQL Data Warehouse など、実行可能なさまざまなクラウド データ ウェアハウスが混在しています。

また、ストリーミング データ パイプラインは、データをセルフサービス製品として提供し、組織内でより広範なデータ メッシュを構築する上でも不可欠な要素です。旧来のバッチ型パイプラインと比較すると、ストリーミングを使用した場合は、より迅速にイノベーションを起こして、生産性を高め、リアルタイム イニシアティブをスピード アップできます。

Confluent では、より優れたパイプラインを構築して、レガシー パイプラインの課題を解決するために、次の 5 つの基本原則に則ってアプローチしています。

  • ストリーミングパイプラインを利用すると、即時に再利用可能なデータのリアルタイム リポジトリを維持し、多くのダウンストリームコンシューマーによる利用を促進できます。
  • 分散型パイプラインで、データに最も近いチームが共有可能なデータ ストリームを作成して、簡単に使用および再利用できるようになります。
  • 宣言型パイプラインは、SQL などの言語に基づいて最新のデータ フローの過程が示されるため、運用上の煩雑さがなくなります。
  • 開発者指向のパイプラインで、独立した開発、バージョン管理、テストが行え、柔軟性が向上します。
  • 管理型パイプラインは、可観測性、検索、データ系列などの自動化機能を備えているため、データ ストリームを安全に検索し、使用し、信頼できるようになります。

このような機能により、チーム間の生産性は高まり、無駄な時間やリソースを削減することができます。Confluent では、IT チームがストリーミング データ パイプラインのユース ケース (たとえば、運用システム間やクラウド データベースへのストリーミング パイプラインの構築)から始めて、時間をかけて他のストリーミング パイプラインのユース ケース (たとえば、リアルタイム分析のためのクラウド データ ウェアハウスへのストリーミング パイプラインの構築)へと拡張することが可能になります。

リアルタイム ストリーミング データ パイプラインで始める

Confluent では、ストリーミング データ パイプラインを使用して、データ サイロを打破する最新のアプローチを提供します。使いやすい UI と事前構築済みのコネクタを使用してデータ フローを簡単に作成、管理することで、データを接続できます。一元管理、タグ付け、ポリシー適用などでデータを管理できます。SQL を使用してデータをエンリッチ化し、リアルタイムで結合、集計、クリーニング、処理、整形を行います。さらに、ダウンストリーム システムやアプリで使用するために信頼性の高いデータ製品を構築し、セルフサービスのデータ検出と共有の機能を用いて、ライブ ストリームで安全にデータを共有します。

操作方法 : ストリーミング データ パイプラインの構築
ストリーミング データ パイプラインについての詳細

原文:Data pipelines: The what, why, and how
著者:Bharath Chari, Andrew Sellers

関連記事