ETL処理は、データの使い勝手を大幅に改善し、アナリティクスやビジネスインテリジェンスに使用される可能性のある強力な情報を変換します。しかし、ETLは魔法のツールではありません。その処理が企業や組織のニーズに沿っているかを検証するための方法が必要になります。ETL処理をテストすることで、複数のソースからウェアハウスに移動するデータが正確で完全であることを確認することができます。その結果、最終的なデータセットは、意思決定の基礎となる信頼性の高い基盤となります。

残念ながら、ETLテストの決定版はありません。ほとんどのデータセットは複雑で様々な性質を持っているため、エンジニアは各ETL処理に対してカスタマイズされたアプローチを取り、各データモデルとアウトプットに適したテストプロトコルを作成する必要があります。良いニュースは、こうした違いがあるにもかかわらず、テストタイプの一般的なカテゴリとテスト実施の段階が存在するということです。これらは、ETLソリューションを最大限に活用するための基本となります。

Table of Contents

1. ゴールを理解する

2. ETLテストプロセスの基本概要

3. ETLテストのカテゴリー

4. ETLテスト with Integrate.io

ゴールを理解する

各企業はそれぞれ異なる方法でデータを使用しています。収集する情報の種類に応じて、正確さだけでなく、高いレベルのセキュリティを保証する必要があります。そのため、それぞれのETLデータ変換処理は独自のものになります。例えば、複雑な科学データや個人の健康データの変換にETLを使用す企業や組織は、マーケティング、財務、販売データを処理する企業や組織とは異なる方法でETLをテストすることがあります。

最も基本的なことですが、ETLテストは、すべてのデータが揃っていることを確認するために設計されています。また、以下のようなこともできます。

  • データの正確性を検証する
  • 変換ルールに準拠していることを確認する
  • データの損失や重複を防ぐ

こうした基本的なゴールにさえ、特定の修飾語が付属しています。例えば、変換ルールには、個人情報の高度な暗号化が含まれている場合があります。

ETLテストは、セキュリティと正確性を保証するだけではありません。結局のところ、ETLを利用する目的は、収集したデータを効果的に利用することができるようにすることです。ほとんどの場合、そのデータは、多くの異なるソースから集められており、ビジネスにおいて活用する前に、アクショナブルな形式に変換する必要があります。その変換処理では、データを紛失していないか、二重集計されていないか、エラーが発生していないかを確認する必要があります。

また、テストは複数回行われます。これは、各ETLプロジェクトには、Salesforceデータの変換から市場調査の統計の収集まで、特定のビジネスでの目的のために設計されたアウトプットがあるからです。ETLパイプラインに沿った変換ルールは、正しいデータを得るだけでなく、正しい形式でアウトプットされることを確認します。したがって、テストは、破損したデータのバグを発見して取り除くだけでなく、ETLパイプラインが正しく動作し、設定された目的を果たしているかどうかを検証します。

ETLテストプロセスの基本概要

テストはETLパイプラインに沿って問題を特定するために設計されているため、プロセスの一般的な形式には、テストケースを作成し、実際のデータにプロセスを適用する前にETLでテストが含まれています。一般的なガイドラインとして、ここでは、それがどのように行われるかについて説明します。

  1. ビジネスケースを定義する: これは、データの出力と、それが何を達成するために設計されているかを表します。この時点で、抽出するデータのディメンジョナルモデルを作成することもできます。これは、データを文脈の中に置くことで、多くの異なるクエリのための機能的なリソースになります。データは、顧客名のリストのような一連の事実にフォーカスしているかもしれません。しかし、ディメンジョナルモデルには、文脈に沿った情報(売上数、平均金額、頻度、最終購入日など)が含まれています。
  2. データソースを分析する: データはディメンジョナルモデルに準拠している必要があります。また、ETL処理に沿って変換される一貫性が必要になります。メタデータに一貫性がない場合は、データマッピングを使用して、データがETL処理全体を正常に通過できるようにすることができます。
  3. テストケースを作成して実行する:テストケースの設計は、分析対象のETLプロセスの部分によって異なります。さらに、テストの種類は、そのような実際のETLプロセスが実行される前に利用可能なテスト時間などの外部要因に依存する場合があります。
  4. テスト結果を報告する: 最終段階では、テストケースのレポートと、それがETLプロセスにどのような洞察を提供するかを報告します。具体的には、データをどのように変換前に修正しなければならないか、または変換ルールがどのようにビジネスケースとディメンジョナルモデルが期待するアウトプットに適切に作用しているか、また作用していないかを示すことができます。
    テストケースは、ETLが想定通りに動作していることを確認するための最良の方法であり、最終的なデータセットに完全な自信を持つことができます。

ETLテストのカテゴリー

前のセクションでは、本番のソースデータを処理する前にエラーを修正するために、ETL パイプラインを通して実行できる一般的なテストケースの概要を説明しました。これらの一般的な段階に加えて、どのタイプのETLテストを実施する必要があるのか、そしてパイプラインのどの部分でそれを実施するのかを決定する必要があります。この決定は、時間や予算の制約などの組織的な要因によって大きく左右されます。

  • 単体テストまたはコンポーネントテスト: これらは、特定のジョブのためのETLの妥当性を確認するためのマイクロテストです。
  • 結合テストまたはエンドツーエンドテスト: これらは、特に複数のジョブが関与している場合に、ETL パイプライン全体を分析する、より広範で複雑なテストです。
  • ブラックボックステスト: これはエンドツーエンドテストに似ていますが、ETLの成功を検証するために入力と出力だけを見ます。ETLパイプラインの全ステージを詳細に調べることはありません。

ETLテスト with Integrate.io

Integrate.ioでパイプラインを構築すると、ETL処理のテストがさらに簡単になります。ドラッグアンドドロップのパイプラインビルダーは、コードを書かなくてもプロセスを作成し、変更することができます。さらに、Integrate.ioはすべての主要なデータウェアハウスとデータターゲットをサポートしているので、業種を問わず様々な企業にフィットします。Integrate.ioがどのようにしてパイプライン構築とテストプロセスを最適化するのかについて詳しく知りたい方は、ご自身でプラットフォームを体験するために今すぐデモを予約してください。