2009-07-16 6 views
1

ソーストランザクションテーブルでID列または日付/時刻列を使用してトランザクションシステムからデータウェアハウスをロードする際にデルタ検出を実装しました。次回にデータを抽出する必要がある場合、前回抽出した最大日時値を抽出クエリのフィルタで使用して、新しいレコードまたは変更されたレコードを識別します。これは、同じミリ秒で複数の取引があった場合を除いて十分に良好でした。SSISを使用したSQL Server CDCでは、どのデータをウィンドウ処理(LSNまたは日付)用に保存する必要がありますか?

今はSQL Server 2008でチェンジデータキャプチャ(CDC)があり、長さ10のバイナリであるLSN(Log Sequence Number)という新しいものが用意されています。今は混乱しています。どのデータをウィンドウ処理の目的で格納するか、LSNか日時。もちろん、LSNは大きなトランザクションテーブルに追加の日時値を格納する必要性を排除しますが、これには何らかの欠点がありますか?どちらを使うべきですか? LSNを日時にマッピングしてから日時を格納する方法は信頼できる方法ではありません。あなたの意見は何ですか?

PS:BI以外の専門家に、すみません。

答えて

0

多くの待ち時間の後、私はここでこれ以上の回答はありません。現在のプロジェクトでは、LSNをウィンドウ処理に使用しています。より正確でプロセスが簡単であるため、日付の値よりも優れています。 LSNを使うことをお勧めします。そこに誰かが同意しない場合は、私に教えてください...

1

SSISでCDCを使用する方法については、Improving Incremental Loads with Change Data Captureを参照してください。

+0

日付を使用すると、最新のdatetime2タイプが使用されていない限り、同じ秒で挿入/変更されたレコードを区別できないという欠点があります。ここに示した例では、古いdatetimeデータ型を使用しています。作者がこの事実を心配していないように見えます。 – Faiz

0

CDCをセットアップすると、cdc.lsn_time_mappingという名前のデータベースにシステムテーブルが追加されます。

関連する問題