メインコンテンツへジャンプ

データインジェスチョン

データインジェスチョンとは?

データインジェスチョンは、データエンジニアリングライフサイクルの最初のステップです。データベース、SaaSアプリケーション、ファイル、API、IoTデバイスなど、多様なソースからデータを収集し、データレイク、データウェアハウス、レイクハウスといった集中リポジトリに取り込みます。これにより、企業はデータを整理・統合し、分析や AI を活用したデータドリブンな意思決定を行えるようになります。
従来、データの取り込みは、カスタムスクリプトやApache NiFi・Kafkaといったオープンソースのフレームワーク、AWS Glue、Google Cloud Dataflow、Azure Data Factoryなどのクラウドサービスを使って行われてきました。しかし、スキーマの変化、データの一貫性、大規模なリアルタイム処理を扱うには、多大なエンジニアリング負荷が伴います。さらに、多くの企業では、取り込み・変換・オーケストレーションを別々のツールで処理しており、結果として複雑化やデータのサイロ化を招きやすい状況にあります。
ETL(抽出・変換・ロード)がロード前にデータを変換するのに対し、データインジェスチョンは生データを直接リポジトリに移動させるため、高速で柔軟な利用が可能です。

具体的な例は以下のページで確認できます

データ取り込みの種類

利用ケースに応じて、バッチ、ストリーミング、ハイブリッドの 3 方式があります。

  • バッチ取り込み(インクリメンタル): 一定間隔で収集。リアルタイム性が不要な定期更新に適用。
  • ストリーミング取り込み: 逐次的に取り込み、IoT 監視など即時性が必要なシナリオに適用。
  • ハイブリッド取り込み: バッチとストリーミングを組み合わせ、定期更新とリアルタイム取得を両立。

取り込み可能なデータの種類

Different data structures require specific ingestion and processing techniques:

  • 非構造化データ: テキスト、画像、動画など。専用ツールが必要で、バッチやハイブリッド方式で取り込むのが一般的。
  • 半構造化データ: JSON や XML など。バッチ/ストリーミング両対応で、柔軟性が高い。
  • 構造化データ: データベースやスプレッドシートなど。すぐに統合可能で、分析やレポートに最適。

主要なデータ取り込みツールと機能

代表的なツール(Popular tools)

データ取り込みツールには、柔軟性やカスタマイズ性で知られる Apache NiFi や Kafka などのオープンソースオプションから、取り込み・変換・オーケストレーションを統合する Databricks Data Intelligence Platform のような商用プラットフォームまで、多様な選択肢があります。

Databricks Lakeflow は Data Intelligence Platform 上に構築された、データエンジニアリング向けの統合的かつインテリジェントなソリューションです。Lakeflow はデータの取り込み、変換、オーケストレーションを包括的にカバーします。Lakeflow の一部である Lakeflow Connect は、多様なデータソース向けコネクタを提供し、エンタープライズアプリケーション、ファイルソース、データベースなどからの構造化・非構造化データの取り込みを柔軟かつ容易に、効率的に実現します。
Lakeflow Connect は以下のようなデータ取り込みに対応します:

  • マネージドコネクタ: Software-as-a-service (SaaS) アプリケーションやデータベース向けの組み込みコネクタでデータを取り込み
  • 標準コネクタ: クラウドオブジェクトストレージやKafkaなどのストリーミングソースから開発者ツールを用いて取り込み
  • ファイル: ローカルネットワーク上のファイル、ボリュームにアップロードされたファイル、インターネットから取得したファイルを取り込み

基本的な機能

効果的なデータ取り込みツールは、以下の機能によってデータ処理を効率化します:

  • スキーマ進化(Schema evolution): データ構造の変化に自動的に対応し、手作業を削減
  • データリネージュ追跡(Data lineage tracking): データの由来を追跡し、ガバナンスやコンプライアンス要件を支援
  • エラーハンドリングとモニタリング(Error handling and monitoring): リアルタイムで問題を特定・解決し、信頼性の高いデータロードを保証
  • スケーラビリティ(Scalability): データ量の増加に応じて性能を維持、大規模運用に不可欠
  • データ統合(Data integration): データレイクやデータウェアハウスとシームレスに統合し、統合的なデータ管理を可能にする

オープンソース vs 商用ソリューション

オープンソースツールは柔軟性と制御性を提供しますが、セットアップに工数を要するため、技術チームに最適です。Databricksはオープンソースの基盤と広範なパートナーエコシステムを組み合わせ、ガバナンスと自動化を組み込んだマネージド取り込みを実現します。これにより運用コストと複雑性を削減しながら、効率的なデータ運用を可能にします。

データ取り込み vs. ETL vs. データパイプライン

データ取り込み(Data ingestion) は、データ収集から分析までの最初のステップであり、その後に続く一連の処理につながります。データ取り込みの主な目的は、複数のソースから生データを収集し、それをデータレイク、データウェアハウス、またはレイクハウスストレージシステムへ転送することです。ほとんどの組織では、この取り込みの後に追加の処理が必要になります。なぜなら、生データは分析や意思決定に活用する前にさらに精練する必要があるからです。データ取り込みはデータフォーマットを変更せずに複数ソースのデータを取得するプロセスであり、高速性と柔軟なデータ利用可能性に重点を置き、その後の処理機会を可能にします。

データ取り込みと ETL の違い

データ取り込み(Data ingestion): さまざまなソースから生データをリポジトリに取り込み、変換は行わず、未加工データへの即時アクセスを優先します。
ETL: データを抽出し、特定の要件に合わせて変換した上でターゲットシステムにロードします。分析用にデータを準備することに重点を置いています。(ETL と ELT の違いについて学ぶことも可能です)
データパイプライン(Data piplines): 変換済みデータを処理のために移動させる一連の処理全体を指します。バリデーションテスト、重複削除、機械学習アルゴリズムの実行、ストリーミングデータ処理など、データ取り込みや ETL を超える複数の連続的な操作を含みます。

データ取り込みと ETL の統合

モダンアーキテクチャでは、データ取り込みとETLはしばしば補完し合います。例えば、データをまずレイクハウスに取り込み、その後ETL処理で詳細な分析やレポーティング用に整形するケースがあります。一方で、より広範なデータパイプラインは、取り込みから機械学習・分析までの全体ワークフローを自動化します。Databricks Lakeflowはこれらのプロセスを統合し、柔軟かつ包括的なデータ管理を実現する統一ワークフローを提供します。

データ取り込みの利点と課題

利点

  • リアルタイムインサイト(Real-time insights): 最新データへのアクセスを提供し、タイムリーな意思決定を可能にします。特に最新情報に依存する業務にとって不可欠です。
  • スケーラビリティ向上(Improved scalability): 多様なソースから増加するデータ量を効率的に処理し、組織のニーズ拡大に応じて適応します。
  • AI モデル精度向上(Enhanced AI models): 継続的なデータ更新によりAIモデルの精度を高め、予知保全や顧客セグメンテーションなどのアプリケーションに有用です。
  • アクセスの一元化(Centralized access): 繰り返しのデータ抽出を削減し、部門横断的にデータを効率的に活用できるようにします。

課題

  • データの一貫性(Data consistency): 多様なソースからのデータ品質を均一に保つためには、強力な検証メカニズムが必要です。
  • レイテンシ管理(Latency management): リアルタイム取り込みにおける低遅延の維持はリソース負荷が高く、信頼できるインフラが求められます。
  • 統合の複雑性(Integration complexity): 多様なソースからのデータを組み合わせるには、フォーマットの整合性やスキーマ不一致を解消するための専門的なツールと知識が必要です。

データ取り込みのベストプラクティス

強固な基盤を築く

基盤となるベストプラクティスを確立することで、効率的で信頼性が高く、ガバナンスの効いた取り込みワークフローを実現できます:

  • 監視とエラーハンドリングの自動化(Automate monitoring and error handling): 自動監視によりデータ品質の問題をリアルタイムで検出・解決し、データの信頼性を確保しダウンタイムを最小化します。
  • 効率性の最適化(Optimize for efficiency): 増分取り込み(incremental ingestion)を活用して不要なデータ転送を回避し、新規または更新されたレコードに焦点を当てることで、時間とリソースを節約します。
  • 初期段階からのガバナンス組み込み(Embed governance early): Unity Catalog のようなガバナンスフレームワークに取り込みパイプラインを合わせ込み、コンプライアンス、セキュアなアクセス、データリネージュ追跡の効率化を保証します。

継続的な最適化

取り込みプロセスが確立された後も、継続的な最適化によって進化するビジネスニーズに適応し、増加するデータ量を効果的に管理できます。

  • スケーラビリティに向けた戦略的計画(Strategic planning for scalability): データソース、取り込み頻度、バッチ処理やストリーミング要件を定期的に評価し、組織の成長やリアルタイム分析・アーカイブなどの進化する目標をサポートします。
  • データ品質と一貫性の確保(Ensure data quality and consistency): 取り込みプロセス全体で検証チェックを適用し、データの正確性を維持します。さらに、ガバナンスツールを活用してデータ処理を標準化し、チーム全体で品質を確保します。
  • 継続的な監視と調整(Continuous monitoring and fine-tuning): レイテンシ、スキーマ変更、その他の取り込み障害に関するアラートを設定し、チームが迅速に対応できるようにします。これにより設定を適切に調整し、パフォーマンスを最大化しつつ遅延を最小化します。
    用語集に戻る