0

まず、キンボールの定義にはSCD0のようなものがありますが、SSIS SCDウィザードには「固定属性」が用意されており、正当に必要なものが必要なデザインケースがあります。非公式に吹き替えられたSCD0。

「FixedAttribute」列をSCD2として定義し、SCD0機能の欠如の回避策としてSCD2出力を配線しないことには、悪影響がありますか?

この質問は、特にSSISディメンションマージSCDコンポーネントに関係します。

4

2 に答える 2

0

はい、マイナスの影響があります。SCD2は2つの部分からなるプロセスであり、最初に新しい行を挿入し、次に古い行を期限切れにします。SCD1の更新は、SCD2行の有効期限が切れている間に処理されます。その結果、SCD0列が変更された場合(SCD2として定義されている場合)、同時にSCD1列が変更された場合、SCD1更新出力はSCD2期限切れ出力に送られるため、行を受け取りません。SCD1更新を実行するために両方の出力を配線すると、SCD0列が変更されたが、SCD1列が変更されていない場合に、多くの不要な更新が実行されます。したがって、これはDMSCDコンポーネントでのSCD0サポートの欠如に対する効果的な回避策ではありません。

于 2012-01-06T14:48:25.403 に答える
0

あなたの投稿には、変化の遅いディメンション タイプ 0 が必要であると記載されています。私の理解では、SCD0 は、行の元の定義を保持し、それを更新したり、終了日を設定したりしないことを意味します。その場合、なぜ緩やかに変化するディメンション ウィザードを使用するのでしょうか。存在しない場所にETLを挿入するだけではありませんか? それとも、一部の列は元の値として保持され、他の列にはより高次の型を使用するということですか?

たとえば、ProductId、ProductName、および ProductDescription を含むソース テーブルがあるとします。おそらく、ProductId はキーであり元の ProductName であるため保持したいが、より新しい ProductDescription 値を表示したい場合があります。その場合、ProductDescription を新しい値で上書きして他の列をそのままにする (タイプ 1) か、現在の行の終了日を設定して新しい行を作成し、元の ProductId と ProductName を挿入する (タイプ 2) ことができます。 )、または元の ProductName を保持しながら、新しい行に PreviousProductDescription を含めることができます (タイプ 3)。

于 2012-01-04T20:21:11.747 に答える