2

ディメンション テーブルへの結合が必要なファクト テーブルがありますが、ソース データからその関係を取得するのは簡単ではありません。ファクト テーブルは約 100 万行のソース テーブルから読み込まれるため、ベスト プラクティスに従って、前回の実行日を使用して、前回の実行以降に追加されたソース行のみを選択しています。ロードしたい行を取得したら、ディメンション テーブルを参照できるようにするために、他の 3 つのテーブルを調べる必要があります。3 つのテーブルのそれぞれにも、約 100 万行あります。

必要ないとわかっているソース データを抽出しないというベスト プラクティスを読んだことがあります。また、ベスト プラクティスでは、ソース システムをできるだけ軽くして、SQL 結合を回避することも述べています。しかし、私の場合、これら 2 つのベスト プラクティスは相互に排他的になります。反復テーブルで変更された行のみを抽出する場合は、ソース クエリで結合を行う必要があります。ソース システムからすべての行を抽出すると、必要以上のデータが抽出され、SSIS メモリ/パフォーマンスの問題が発生する可能性があります。

ソースデータの抽出に参加する方向に傾いていますが、そのアプローチの長所と短所に関する議論を見つけることができませんでした. それは正しいでしょうか、それとも正しくないでしょうか? (ソース テーブルと DW テーブルは Oracle にあります)。

4

1 に答える 1

3

参照している3つのソーステーブルをステージングできますか?DWでそれらを必要としない場合もありますが、純粋にこの目的のために、ステージングデータベースにそれらを配置することができます。ただし、これらを最新の状態に保つ必要がありますが、変更をプルするだけでよいと仮定すると、これはそれほど悪くないかもしれません。

于 2012-05-04T15:09:01.033 に答える