ETL(Extract/Transform/Load)は、ソースシステムからデータを抽出し、情報を一貫したデータタイプに変換してから、単一のリポジトリにデータをロードするプロセスです。ETLテストとは、レコードの重複やデータの損失を防ぎながらデータの検証/確認/修飾を行うプロセスを指します。  

ETLテストは、異種混在のソースから中央のデータウェアハウスへのデータ転送が変換ルールに厳密に沿って行われ、すべての妥当性チェックの条件を満たすことを保証します。データウェアハウスシステムに適用され、アナリティクスやビジネスインテリジェンスの関連情報を取得するために使用されるものであり、この点においてデータベーステストで使用されるデータ調整と異なります。

ETLテストプロセスの8つの段階

効果的なETLテストでは、ソースデータがデータリポジトリーにロードされる前の早い段階で問題が検出されます。また、データ変換と統合の指針となるビジネスルールの矛盾やあいまいさも検出されます。このプロセスは8つの段階に分けられます。

  1. ビジネス要件を特定する – クライアントの期待に基づいて、データモデルを設し、ビジネスフローを定義し、レポート作成のニーズを評価します。テスターがプロジェクトの範囲を明確に定義し、文書化し、完全に理解できるように、この段階から開始することが重要となります。
  2. データソースを検証する – データカウントチェックを実行し、表と列のデータタイプがデータモデルの仕様を満たしていることを確認します。チェックキーが正しい位置にあることを確認し、重複データを削除します。これが正しく実行されないと、集計レポートが不正確になったり誤解を招いたりする可能性があります。
  3. テストケースを設計する – ETLマッピングシナリオを設計し、SQLスクリプトを作成し、変換ルールを定義します。すべての情報が含まれていることを確認するために、マッピングドキュメントを検証することも重要です。
  4. ソースシステムからデータを抽出する – ビジネス要件ごとにETLテストを実行します。テスト中に発生したバグや不具合のタイプを特定し、レポートを作成します。ステップ5に進む前に、すべての不具合の検出/再現、報告、バグの修正、解決、バグレポートの終結まで完了させる必要があります。
  5. 変換ロジックを適用する – データがターゲットデータウェアハウスのスキーマと一致するように変換されることを確認します。データしきい値、整列をチェックし、データフローを検証します。これにより、データタイプがマッピングドキュメントのそれぞれの列と表に一致することが保証されます。
  6. ターゲットウェアハウスにデータをロードする – ステージングからデータウェアハウスにデータを移動する前と後に、レコードカウントチェックを実行します。無効なデータが拒否され、デフォルト値が受け入れられることを確認します。
  7. サマリーレポート – サマリーレポートのレイアウト、オプション、フィルター、エクスポート機能を確認します。このレポートにより、意思決定者/ステークホルダーは、テストプロセスの詳細と結果、そして完了しなかった(「範囲外」の)ステップとその理由を知ることができます。
  8. テストの終結 – テストの終結を提出します。

最後のステップは、ETLテスターによるツール、その機能、ETLシステムのテストです。

ETLテストの9つのタイプ

ETLテストは、新しいシステムのテスト(さまざまなソースから取得したデータ)、移行テスト(ソースシステムからデータウェアハウスに転送したデータ)、変更テスト(データウェアハウスに追加した新しいデータ)、レポートテスト(データの検証、計算の実行)の4つに大きく分類されます。

各段階では、次のETLテストが実行される可能性があります。

カテゴリー ETLテス
新しいシステムのテスト — データクオリティテスト
— メタデータテスト
移行テスト — データクオリティテスト
— ソースからターゲットのカウントテスト
— ソースからターゲットのデータテスト
— パフォーマンステスト
— データ変換テスト
— データ統合テスト
変更テスト — データクオリティテスト
— ソースからターゲットのカウントテスト
— ソースからターゲットのデータテスト
— 本番の検証
— データ統合テス
レポートテスト — レポートテスト
  1. 「本番の調整」または「表のバランシング」とも呼ばれる本番の検証は、本番システムのデータを検証し、それをソースデータと比較します。これにより、誤ったロジック、失敗したロード、またはシステムにロードされない操作上のプロセスからデータが保護されます。
  2. ソースからターゲットのカウントテストでは、ターゲットデータベースにロードされたレコードの数が予想されるレコードの数と一致するかどうかが確認されます。
  3. ソースからターゲットのデータテストでは、予測されたデータが損失または切り捨てなしにターゲットシステムに追加され、変換後のデータ値が期待を満たすことが保証されます。
  4. メタデータテストは、ETLアプリケーションメタデータ(ロードの統計、調整の合計、データクオリティメトリクス)のデータタイプ、長さ、インデックス、制約のチェックを実行します。
  5. パフォーマンステストでは、予想される時間内にデータウェアハウスにデータがロードされ、複数のユーザーとトランザクションに対するテストサーバーの応答がパフォーマンスとスケーラビリティに適していることが確認されます。
  6. データ変換テストでは、各行にSQLクエリを実行して、ビジネスルールに従ってデータが正しく変換されていることを確認します。
  7. データクオリティテストでは、構文テスト(無効な文字、パターン、ケース順)と参照テスト(数値、日付、精度、NULLチェック)を実行して、ETLアプリケーションによる拒否、デフォルト値の受け入れ、無効なデータの報告を確認します。
  8. データ統合テストでは、すべてのソースからのデータがターゲットデータウェアハウスに正しくロードされることが確認され、しきい値がチェックされます。
  9. レポートテストでは、サマリーレポートのデータをレビューし、レイアウトと機能が期待どおりであることを確認し、計算を行います。

ETLプロセス中のテストには、ETLアーキテクチャーが他のプラットフォームでも適切に動作することを保証するための、ユーザー受け入れテスト、GUIテスト、アプリケーション移行テストが含まれます。増分のETLテストでは、新しいレコードと更新が期待どおりに処理されることを確認できます。

ETLテストの課題

ETLプロセスの早期に課題を特定することで、ボトルネックやコストのかかる遅延を防ぐことができます。ソースからターゲットへのマッピングドキュメントを作成し、最初から明確なビジネス要件を確立することが不可欠です。要件を頻繁に変更すると、ETLテスターがスクリプトのロジックを変更しなければならず、進捗が著しく遅くなる可能性があります。

ETLテスターは、データ変換要件とそれらを完了するのにかかる時間の正確な見積もりを使用し、エンドユーザーを明確に理解する必要があります。さらに、以下のような課題についても最初から注意しなければなりません。

  • 移行中にデータが損失/破損する。
  • ソースデータの利用可能性が制限される。
  • データ変換
  • 重複データや不完全なデータが含まれる。
  • 大量の履歴データによりターゲットシステムでのETLテストが困難になる。
  • テスト環境が不安定である。
  • 使用するETLツールが古い。

最善のETLテストツールを見つけるには

ETLテストツールは、ITの生産性を向上し、ビッグデータから情報を取得して知見を得るプロセスを単純化します。データを抽出して処理するための手順とルールがツール自体に含まれているため、労働集約的でコストもかかる従来のプログラミング手法が不要になります。

クラウドデータウェアハウス、ERP/CRMプラットフォーム(Amazon Web Services、Salesforce、Oracle、Kinesis、Google Cloud Platform、NetSuiteなど)との互換性がETLテストツールに組み込まれている点もメリットとなります。

ETLテストツールを比較する際には、以下のような機能について考慮します。

  • グラフィカルインターフェイス:ETLプロセスの設計と開発を簡素化します。
  • 自動コード生成:開発をスピードアップし、エラーを減らします。
  • 組み込みのデータコネクター:ファイル形式、データベース、パッケージアプリケーション、レガシーシステムに格納されたデータにアクセスできます。
  • コンテンツ管理機能:ETLの開発、テスト、本番環境のコンテキストを切り替えることができます。
  • 洗練されたデバッグツール:リアルタイムでデータフローを追跡し、行ごとの動作をレポートできます。

クラウドコンピューティングアーキテクチャー専用に設計されたクラウドネイティブのETLツールを使用することで、データウェアハウスの利点を全面的に享受できます。

ETLテストの未来:AIとクラウド

ハンドコーディングされたスクリプトや社内開発されたツールに依存している企業は、今日の進化するETLクラウドテクノロジーによる効率性や拡張性を享受できません。標準になりつつある高速でアジャイルなDevOpsチームは、連続的な自動展開でソフトウェアアプリケーションのアップデートを毎日のように複数作成しているのです。

DevOpsがクラウドベースのデータ環境とプロセスへと拡大すると、人間の介入なく大量データをリアルタイムで自律的に処理できるETLテストツールとの自動データ統合が必要となります。ウォーターフォールのアプローチ(データストリームの問題の特定、修正、スキーマのテスト、データウェアハウスへのロード、分析)に代わって、クラウドネイティブのアジャイルソリューションが使用されるようになります。

データ管理クラウドアーキテクチャーとAIの「スマートな」データ統合アシスタントが、新しいトレンドとして登場しています

Sparkを使った機械学習のデモを確認し、システムに人間の意思決定を教えて学習に基づいた分類モデルを生成する方法を学ぶには、Sparkと機械学習とのマッチング方法をご覧ください。

この動画コンテンツにアクセスできるよう、Cookieを有効にしてください。

オープンソースのETLテスト

ETLテストは、複数レベルのデータ中心プロセスです。複雑なSQLクエリーを使用し、さまざまなソースシステムに含まれる数百万のレコードにアクセスして抽出/変換し、ターゲットデータウェアハウスにロードします。ETLテストツールは、DevOpsのこのワークロードの大部分を処理するため、独自ツールの開発にコストや時間をかける必要がありません。

広範なETLテストにより、ビッグデータとそのデータから得られたビジネスインテリジェンスの整合性を確保し、ビジネスリスクを低減できます。Talend Open Studio for Data Integrationは、業界をリードするオープンソースのETL開発/テストツールです。2006年以来のダウンロードは数百万件に上り、Apacheライセンスにより無償で使用できます。

サブスクリプションベースのTalend Data Integrationは、同様のETLテスト機能に加えて、チームワークを促進してリモートシステムでETLテストジョブを実行するためのエンタープライズクラスの継続的デリバリーメカニズムと、定性的および定量的ETLメトリクス向けの監査ツールを提供します。

Talendを使う準備はできていますか?