ソーストランザクションテーブルでID列または日付/時刻列を使用してトランザクションシステムからデータウェアハウスをロードする際にデルタ検出を実装しました。次回にデータを抽出する必要がある場合、前回抽出した最大日時値を抽出クエリのフィルタで使用して、新しいレコードまたは変更されたレコードを識別します。これは、同じミリ秒で複数の取引があった場合を除いて十分に良好でした。SSISを使用したSQL Server CDCでは、どのデータをウィンドウ処理(LSNまたは日付)用に保存する必要がありますか?
今はSQL Server 2008でチェンジデータキャプチャ(CDC)があり、長さ10のバイナリであるLSN(Log Sequence Number)という新しいものが用意されています。今は混乱しています。どのデータをウィンドウ処理の目的で格納するか、LSNか日時。もちろん、LSNは大きなトランザクションテーブルに追加の日時値を格納する必要性を排除しますが、これには何らかの欠点がありますか?どちらを使うべきですか? LSNを日時にマッピングしてから日時を格納する方法は信頼できる方法ではありません。あなたの意見は何ですか?
PS:BI以外の専門家に、すみません。
日付を使用すると、最新のdatetime2タイプが使用されていない限り、同じ秒で挿入/変更されたレコードを区別できないという欠点があります。ここに示した例では、古いdatetimeデータ型を使用しています。作者がこの事実を心配していないように見えます。 – Faiz