how perform etl testing using informatica powercenter tool
それは既知の事実です ETLテスト の重要な側面の1つです ビジネス・インテリジェンス (BI)ベースのアプリケーション。品質保証と承認を得てビジネスを開始するには、BIアプリケーションを事前に十分にテストする必要があります。
ETLテストの主な目的は、 IS xtract、 T ransform& L oad機能は、ビジネス要件に従って、パフォーマンス標準と同期して機能しています。
でETLテストを掘り下げる前に コンピューティング 、ETLとInformaticaが何であるかを知ることが不可欠です。
学習内容:
- このETLチュートリアルで学習する内容:
- Informatica PowerCenter ETLテストツール:
- Informaticaに固有のETLテストを理解する:
- InformaticaでのETLテストの分類:
- InformaticaをETLツールとして使用する利点:
- Informatica ETLテストに役立つヒント:
- 結論:
- 推奨読書
このETLチュートリアルで学習する内容:
- ETL、Informatica、ETLテストの基本。
- Informaticaに固有のETLテストを理解する。
- InformaticaでのETLテストの分類。
- InformaticaETLテストのサンプルテストケース。
- Informaticaをとして使用する利点 ETLツール 。
- テストに役立つヒントとコツ。
コンピューティングでは、抽出、変換、読み込み(ETL)は、データベースの使用、特に以下を実行するデータウェアハウジングのプロセスを指します。
- データ抽出 - 同種または異種のデータソースからデータを抽出します。
- データ変換– データを必要なタイプにフォーマットします。
- データの読み込み– 長期間使用できるように、データを永続的な場所に移動して保存します。
Informatica PowerCenter ETLテストツール:
Informatica PowerCenterは、InformaticaCorporationの強力なETLツールです。 これは、事実上すべてのビジネスシステムからのデータにアクセス、検出、統合するための単一の統合されたエンタープライズデータ統合プラットフォームです。
これは、事実上すべてのビジネスシステムから、任意の形式のデータにアクセス、検出、統合し、そのデータを企業全体に任意の速度で配信するための、単一の統合されたエンタープライズデータ統合プラットフォームです。使って Informatica PowerCenter 、エンドツーエンドのETL操作を実行するワークフローを作成します。
InformaticaPowerCenterをダウンロードしてインストールします。
Informatica PowerCenter 9.xをインストールおよび設定するには、ステップバイステップの説明がある以下のリンクを使用します。
=> Informatica PowerCenter9インストールおよび設定ガイド
Informaticaに固有のETLテストを理解する:
ETLテスターは、Informaticaで何をテストするか、およびどのくらいのテストカバレッジが必要かについて、適切な質問をすることがよくあります。
Informaticaに固有のETLテストを実行する方法についてのツアーを紹介します。
InformaticaETLテストで基本的にカバーする必要がある主な側面は次のとおりです。
- Informaticaワークフローとそのコンポーネントの機能をテストします。基になるマッピングで使用されるすべての変換。
- データの完全性をチェックするには(つまり、投影されたデータが切り捨てやデータ損失なしにターゲットにロードされているかどうかを確認します)、
- 推定制限時間内にデータがターゲットにロードされているかどうかを確認します(つまり、ワークフローのパフォーマンスを評価します)。
- ワークフローで無効または不要なデータをターゲットにロードできないようにします。
InformaticaでのETLテストの分類:
テスターの理解と使いやすさを向上させるために、InformaticaでのETLテストは2つの主要部分に分けることができます–
モバイルホットスポットのネットワークセキュリティキーを見つける方法
#1)高レベルのテスト
#2)詳細なテスト
まず、高レベルのテストでは:
- Informaticaワークフローおよび関連オブジェクトが有効かどうかを確認できます。
- 実行時にワークフローが正常に完了しているかどうかを確認します。
- 必要なすべてのセッション/タスクがワークフローで実行されているかどうかを確認します。
- データが目的のターゲットディレクトリにロードされ、期待されるファイル名でロードされているかどうかを検証します(ワークフローがファイルを作成している場合)。
一言で言えば、高レベルのテストにはすべての基本的な健全性チェックが含まれていると言えます。
次の部分に来る、すなわち Informaticaでの詳細なテスト 、Informaticaに実装されたロジックが、結果とパフォーマンスの点で期待どおりに機能しているかどうかを検証するために詳細に説明します。
- 各変換が正常に動作していることを確認するフィールドレベルで出力データの検証を行う必要があります
- 処理の各レベルでレコード数がカウントされているかどうか、最後にターゲットが期待どおりであるかどうかを確認します。
- セッションのソース/ターゲット統計でソース修飾子やターゲットなどの要素を徹底的に監視します
- Informaticaワークフローの実行時間が推定実行時間と同等であることを確認します。
要約すると、詳細なテストには、Informaticaワークフローと関連するデータフローの厳密なエンドツーエンドの検証が含まれていると言えます。
ここで例を見てみましょう:
さまざまな製品に関するデータを含むフラットファイルがあります。製品の名前、説明、カテゴリ、有効期限、価格などの詳細が保存されます。
私の要件は、ファイルから各製品レコードをフェッチし、各レコードに対応する一意の製品IDを生成して、それをターゲットデータベーステーブルにロードすることです。また、カテゴリ「C」に属する製品、または有効期限が現在の日付よりも短い製品を抑制する必要があります。
たとえば、私のフラットファイル(ソース)は次のようになります。
((注意:拡大表示するには画像をクリックしてください)
上記の要件に基づくと、データベーステーブル(ターゲット)は次のようになります。
テーブル名:Tbl_Product
Prod_ID(主キー) | 商品名 | Prod_description | Prod_category | Prod_expiry_date | Prod_price |
---|---|---|---|---|---|
1001 | ABC | こちらは商品ABCです。 | M | 2017年8月14日 | 150 |
1002 | DEF | これは製品DEFです。 | S | 2018年10月6日 | 700 |
1003 | PQRS | これは製品PQRSです。 | M | 2019年5月23日 | 1500 |
たとえば、ETL要件のソリューションを取得するためのInformaticaワークフローを開発しました。
基盤となるInformaticaマッピングは、フラットファイルからデータを読み取り、ルーター変換を介してデータを渡します。ルーター変換は、製品カテゴリが「C」または有効期限のいずれかである行を破棄します。次に、シーケンス生成を使用して一意の主キーを作成します。製品テーブルのProd_ID列の値。
最後に、レコードは、InformaticaマッピングのターゲットであるProductテーブルにロードされます。
例:
以下は、上記で説明したシナリオのサンプルテストケースです。
これらのテストケースをInformaticaテストプロジェクトのテンプレートとして使用し、ワークフローの機能に応じて同様のテストケースを追加/削除できます。
#1)テストケースID: T001
テストケースの目的: ワークフローの検証– [workflow_name]
テスト手順:
- ワークフローマネージャーに移動
- ワークフローを開く
- ワークフローメニュー->検証をクリックします
入力値/テストデータ: ソースとターゲットが利用可能で接続されている
ソース:[すべてのソースインスタンス名]
マッピング:[すべてのマッピング名]
ターゲット:[すべてのターゲットインスタンス名]
セッション:[すべてのセッション名]
予想された結果: ワークフローマネージャーのステータスバーのメッセージ:「ワークフロー[ワークフロー名]は有効です」
実績: ワークフローマネージャーのステータスバーのメッセージ:「ワークフロー[ワークフロー名]は有効です」
備考:パス
テスターのコメント:
#2)テストケースID: T002
テストケースの目的: ワークフローが正常に実行されているかどうかを確認するには
テスト手順:
- ワークフローマネージャーに移動
- ワークフローを開く
- ワークフローデザイナを右クリックして、[ワークフローの開始]を選択します
- ワークフローモニターでステータスを確認する
入力値/テストデータ: T001のテストデータと同じ
予想された結果: ワークフローマネージャーの出力ウィンドウのメッセージ:タスクの更新:[ワークフロー名](成功)
実績: ワークフローマネージャーの出力ウィンドウのメッセージ:タスクの更新:[ワークフロー名](成功)
備考:パス
テスターのコメント: ワークフローは成功しました
注意: 以下の例に示すように、ワークフローモニターでワークフローの実行ステータス(失敗/成功)を簡単に確認できます。ワークフローが完了すると、ステータスはワークフローモニターに自動的に反映されます。
上のスクリーンショットでは、ワークフローの開始時刻と終了時刻、および成功したステータスを確認できます。
.binファイルを開く方法
#3)テストケースID: T003
テストケースの目的: 必要な数のレコードがターゲットにロードされているかどうかを検証するには
テスト手順: ワークフローが正常に実行されたら、データベースのターゲットテーブルに移動します
ターゲットデータベーステーブルの行数を確認してください
入力値/テストデータ: ソースファイルの5行
ターゲット:データベーステーブル– [Tbl_Product]
SQLサーバーで実行するクエリ: [Tbl_Product]からcount(1)を選択します
予想された結果: 3行が選択されました
実績: 3行が選択されました
備考:パス
テスターのコメント:
#4)テストケースID: T004
テストケースの目的: Informaticaマッピングのシーケンスジェネレータが[primary_key_column_nameの入力に正常に機能しているかどうかを確認するには。例: Prod_ID]列
テスト手順: ワークフローが正常に実行されたら、データベースのターゲットテーブルに移動します
列Prod_IDで生成された一意のシーケンスを確認します
入力値/テストデータ: ソースファイルのすべての行でProd_IDの値を空白のままにします
マッピングのProd_ID列にマッピングされたシーケンスジェネレータ
シーケンスジェネレータの開始値を1001に設定
ターゲット:データベーステーブル-[Tbl_Product]がSQLServerで開かれました
予想された結果: Prod_ID列のすべての行に対して入力される1001から1003までの値
実績: Prod_ID列のすべての行に対して入力される1001から1003までの値
備考:パス
テスターのコメント:
#5)テストケースID: T005
8年の経験のためのoracleplsqlインタビューの質問
テストケースの目的: 製品カテゴリが「C」の場合、または製品の有効期限が切れている場合に、ルーター変換が正常に機能してレコードを抑制しているかどうかを検証します。
テスト手順: ワークフローが正常に実行されたら、データベースのターゲットテーブルに移動します
ターゲットテーブルでクエリを実行して、目的のレコードが抑制されているかどうかを確認します。
入力値/テストデータ: ソースファイルの5行
ターゲット:データベーステーブル– [Tbl_Product]
SQLサーバーで実行するクエリ: Prod_category = ’C’またはProd_expiry_dateの製品から*を選択します< sysdate ;
予想された結果: 行が選択されていません
実績: 行が選択されていません
備考:パス
テスターのコメント: (もしあれば)
#6)テストケースID: T006
テストケースの目的: ワークフローランタイムを記録して、ワークフローのパフォーマンスを確認します。
テスト手順:
- ワークフローモニターを開き、T001の一部として実行された実行に進みます。
- ワークフローの開始時間と終了時間を記録します。
- 終了時間から開始時間を差し引いて、合計実行時間を計算します。
入力値/テストデータ: ワークフローは正常に実行されました
モニターでのワークフローの開始時間
モニターでのワークフローの終了時間。
予想された結果: 2分30秒
実績: 2分15秒
備考:パス
テスターのコメント: 実際の実行時間が予想実行時間の+/- 10%である場合、テストを「合格」と見なします。
#7)テストケースID: T007
テストケースの目的: データの損失がないことを確認するために、ターゲットテーブルの列レベルでデータを検証します。
テスト手順: ワークフローが正常に実行されたら、SQLServerに移動します。
ターゲットテーブルでクエリを実行して、データの損失がないことを確認します。
入力値/テストデータ: ワークフローは正常に実行されました
ソースフラットファイルからの1つのサンプルレコード。
SQLクエリ: Tbl_PatientからTop1 *を選択します。
予想された結果:
1行が返されました
Prod_ID(主キー) | 商品名 | Prod_description | Prod_category | Prod_expiry_date | Prod_price |
---|---|---|---|---|---|
1001 | ABC | こちらは商品ABCです。 | M | 2017年8月14日 | 150 |
実績:
1行が返されました。
Prod_ID(主キー) | 商品名 | Prod_description | Prod_category | Prod_expiry_date | Prod_price |
---|---|---|---|---|---|
1001 | ABC | こちらは商品ABCです。 | M | 2017年8月14日 | 150 |
備考:パス
テスターのコメント: 実際の実行時間が予想実行時間の+/- 10%である場合、テストを「合格」と見なします。
InformaticaをETLツールとして使用する利点:
Informaticaは、次の理由で人気があり成功しているETLツールです。
- 「稼働」の成功率が高い(ほぼ100%)
- Informaticaには、リーン統合を有効にする機能があります。
- 他のETLツールと比較すると、手頃な価格のツールです。
- 内部ジョブスケジューラが付属しています。したがって、他のETLツールのように、サードパーティのスケジューラを個別に使用する必要はありません。
- 簡単なトレーニングとツールの可用性により、Informaticaの人気が高まっています。
Informatica ETLテストに役立つヒント:
- テストシナリオを実行する前に、テストデータを生成します。
- テストデータは、それが使用されるテストケースと同期している必要があります。
- 3つのシナリオすべてをカバーしていることを確認してください。データが送信されない、無効なデータが送信される、有効なデータがInformaticaワークフローへの入力として送信される。
- 必要なすべてのデータがターゲットに完全にロードされていることを必ずテストしてください。このために、サンプルとして上記のテストケース–T003を使用できます。
- ワークフローがビジネスルールに従ってすべてのデータ変換を正しく実行していることをテストすることは非常に重要です。
- Informaticaマッピングに適用される変換ごとに、出力データを検証するためのチェックリストを用意することをお勧めします。そうすれば、変換がうまく機能していない場合にバグを簡単に報告できます。
結論:
そのため、InformaticaでのETLテストをカバーするためのテンプレートとして使用できるサンプルテストケースのいくつかを詳細に確認しました。前に述べたように、プロジェクトのシナリオに応じて、これらのテストケースを追加/削除/変更できます。
前に述べたように、プロジェクトのシナリオに応じて、これらのテストケースを追加/削除/変更できます。
Informatica PowerCenterは、あらゆるデータ統合アクティビティの基盤です。
テスト、開発、または実稼働環境にコピーされたデータのスクリプト不要の自動テストを簡単に実行できます。これが、PowerCenterが現在最も人気のあるETLツールである理由です。
推奨読書=> ETLとDBのテスト–ETLテストの必要性を詳しく見る
著者について: これはPriyaKによるゲスト記事です。彼女はInformaticaETLアプリケーションの開発とサポートに4年以上の実務経験があります。
お気軽に質問を投稿してください/ コメント このETLツールについて。