3

多くの面接で、同じ質問を何度も聞かれました。質問は、データベースに毎日ロードされる増分データをどのようにテストするかということです。私の立場は、データ ウェアハウスの QA と BA です。テストの主な目的は、ソースからすべてのデータを取得し、ソースからコピーされたすべてのデータが開発者の設計どおりにそれぞれのテーブルに配置されているかどうかをテストします。

したがって、誰かがこの質問をするたびに、私は次のように答えます。増分データをテストするには、毎日の増分ファイルのデータを持つステージング テーブルからデータを取得します。これで、ステージング テーブルをターゲット データベースと比較できます。そこにあるすべてのデータベースと同様にステージングから本番環境にデータを取得するために設計に従って行った計算または結合である可能性があるため、その設計を使用してクエリを作成し、本番環境でソースに対してデータをテストします。

ここでの私の質問は、私が行った唯一のプロジェクトでこの方法でインクリメンタル ロードをテストしたことです。

4

2 に答える 2

2

Incremental loads are inevitable in any data warehousing environment. Following are the ways to render the incremental data and test it.

1) Source & Target tables should be designed in such a way where you should store date and timestamp of the data (row). Based on the date and timestamp column(s) you can easily fetch the incremental data.

2) If you use sophisticated ETL tools like informatica or Abinitio, then it is simple to see the status of the loads chronologically. These tools store the information for every load. However it has some limitation to store the last 10 loads. You need to configure it to store for more than 10 loads.

3) If you are not using sophisticated ETL tools then you should build ETL strategies to store the statistics of the load and capture the information (like no. of inserts, deletes, updates etc.,) during the load. These information can be retrieved whenever you need. But it needs lots of technical knowledge to adopt.

If you want to succeed in a data warehouse interview, i would suggest the best iOS application(data-iq) created by a us based company and its for candidates like you . check it out and you may like it. good luck for your interview.

于 2013-01-12T03:50:57.117 に答える
2

増分データのテストが履歴データとどのように異なるかを説明することで答えます。

  1. 増分データのみをテストする必要があります。そのため、ソース/ステージング テーブルで日付条件を使用し、同じ日付条件またはターゲット テーブルでその増分ロードに使用される監査 ID を使用して制限します。

  2. 増分データのテスト中に確認する必要があるもう 1 つのことは、通常、タイプ 2 のテーブルでは、次のような条件があります。

レコードがターゲット テーブルに既に存在し、ターゲット テーブルの最後のレコードと比較して変更がない場合は、そのレコードを挿入しないでください。

したがって、このような状態に対処するには、履歴チェックを実行して、ターゲット テーブルの最後のレコードと増分データの最初のレコードを比較し、それらがまったく同じ場合はそのレコードを削除する必要があります。(ここで、ACTIVITY_DT はカスタム メタデータ列であるため、EMPID、NAME、CITY のみの変更を探します)

例-以下は、履歴ロードの一部としてのターゲットテーブルのレコードです- ここに画像の説明を入力

そして、これらは私が増分データで取得しているレコードです

ここに画像の説明を入力

したがって、上記のシナリオでは、履歴データの最後のレコード (ACTIVITY_DT DESC で並べ替え) と増分データの最初のレコード (ACTIVITY_DT ASC で並べ替え) を比較します。データ列に変更はないため、次のレコードをターゲット テーブルに挿入しないようにドロップする必要があります。

1 アアシシ HYD 2014 年 6 月 25 日

したがって、この増分ロードの一部として、次の 2 つのレコードのみが挿入されます。

1 アーシシュ GOA 2014 年 6 月 26 日

1 アーシシュ BLR 2014 年 6 月 27 日

于 2014-06-25T08:56:30.490 に答える