1

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

しかし、現在、SQL Server 2008 には変更データ キャプチャ (CDC) があり、長さ 10 のバイナリである LSN (ログ シーケンス番号) と呼ばれる新しいものを提供しています。今、私は混乱しています。ウィンドウ処理の目的で保存する必要があるデータ (LSN または日時)。もちろん、LSN を使用すると、大きなトランザクション テーブルに追加の日時値を格納する必要がなくなりますが、これには欠点がありますか? どちらを使用する必要がありますか? LSNを日時にマッピングしてから日時を保存することは、信頼できる方法ではないと感じています。あなたの意見は何ですか?

PS: BI の専門家でない方、申し訳ありません。

4

3 に答える 3

0

しばらく待った後、ここにはそれ以上の答えはありません。現在のプロジェクトでウィンドウ処理に LSN を使用しましたが、LSN の方が正確でプロセスが単純であるため、日時の値よりも優れていることがわかりました。LSN を使用することをお勧めします。もし異論のある方がいたら教えてください...

于 2009-11-05T15:36:25.360 に答える
0

CDC をセットアップすると、システム テーブルが cdc.lsn_time_mapping という名前でデータベースに追加されるため、どちらも使用できます。

于 2011-08-12T12:47:36.440 に答える