メイン コンテンツをスキップする 補完的コンテンツへスキップ

SCD管理方法論

時間の経過とともに変更されるディメンション(SCD)は、時間の経過とともに時間の経過とともに変更されるディメンションです。

SCDエディタは、SCD出力のデータフローを構築する最も簡単な方法を提供します。SCDエディタでは、SCDタイプを組み合わせることにより、カラムのマップ、代理キーカラムの選択、およびカラム変更属性の設定を行うことができます。次の図は、SCDエディタの例を示しています。

SCDキー

単一性を確保するには、受信データから1つ以上のソースキーカラムを選択する必要があります。

ディメンションテーブルに1つの代理キーカラムを設定し、それをソーステーブルの入力カラムにマップする必要があります。サロゲートキーの値は、ソースのレコードをディメンションテーブルのレコードにリンクします。エディタはこのマッピングを使用して、ディメンションテーブル内のレコードを検索し、レコードが新しいか変更されているかを判断します。代理キーは通常、ソースのプライマリキーですが、レコードを一意に識別し、その値が変更されない限り、代替キーにすることができます。

[Source keys] (ソースキー): 1つ以上のカラムを[Unused] (未使用)パネルから[Source keys] (ソースキー)パネルにドラッグして、受信データの単一性を保証するキーとして使用します。

[Surrogate keys] (サロゲートキー): 生成されたサロゲートキーを保管するカラムを設定するために使われます。代理キーは、[Creation] (作成)リストで選択した方法に基づいて生成できます。

[Creation] (作成): 鍵の生成に使用する以下の方法のいずれかを選択します。

  • [Auto increment] (オート増分):自動インクリメンタルキー。

  • [Input field] (入力フィールド):キーは入力フィールドに入力されます。

    選択すると、適切なフィールドを [Unused] (未使用)パネルから[complement] (補数)フィールドにドラッグできます。

  • [Routine] (ルーチン):[complement] (補数)フィールドからCtrl+Space押してオートコンプリートリストを表示し、適切なルーチンを選択します。

  • [Table max +1] (テーブル最大): SCDテーブルの最大値が増分され、代理キーが作成されます。

  • [DB Sequence] (DBシーケンス):[complement] (補数) フィールドから、 [name] (名前)フィールドに示されているカラムを自動的に増分する既存のデータベースシーケンスの名前を入力できます。

    このオプションは、tOracleSCD[SCD Editor] (SCDエディタ)からのみ使用できます。

時間の経過とともに変更されるディメンションタイプ

時間の経過とともに変更されるディメンションでは Type 0からType 3の4種類の変更がサポートされています。ドラッグ&ドロップの簡単な操作で、ソース テーブルの任意のカラムにSCDタイプのいずれかを適用することができます。

  • Type 0:頻繁には使用されません。一部のディメンションデータは上書きされる場合があり、その他のデータは時間の経過とともに変更されない場合があります。これは、変化する次元の問題に対処するための努力がなされていない場合に最も適切です。

  • Type 1:データベースに履歴は保持されません。新しいデータは古いデータを上書きします。変更を追跡する必要がない場合は、このタイプを使用してください。これは、名前のスペルなど、特定のタイプミスを修正する場合に最も適しています。

  • Type 2: 履歴全体がデータベースに保存されます。このタイプは、変更が行われるたびに個別のキーを使用してディメンションテーブルに新しいレコードを挿入することにより、履歴データを追跡します。これは、たとえばアップデートを追跡する場合に最も適しています。

  • Type 3:ディメンションの以前の値に関する情報のみがデータベースに書き込まれます。このタイプは、個別のカラムを使用して変更を追跡します。これは、変化するカラムの前の値のみを追跡するのに最も適しています。

SCD Type 2の原則は、定義されたカラムで変更が検出されたときに、新しいレコードがSCDテーブルに追加されるという事実にあります。SCDType 2として定義されたさまざまなカラムの同じレコードに複数の変更を加えることができますが、SCDテーブルでこれらの変更を追跡するのは1行だけであることにご注意ください。

このタイプのSCDスキーマには、次のような標準ログ情報を保持するSCD固有の追加のカラムを含める必要があります:

  • [start] (開始):SCDスキーマに開始日の値を保持するためのカラムを追加します。SCDテーブルの開始日として、入力スキーマカラムの1つを選択できます。
  • [end] (終了):SCDスキーマにレコードの終了日の値を保持するためのカラムを追加します。レコードが現在アクティブな場合、終了日がNULLになっているか、[Fixed Year Value] (固定年の値)を選択して確定年を入力し、終了日フィールドにNULL値を持たないようにすることができます。
    情報メモ注: [end] (終了)カラムはアクティブなレコードを識別します。[end] (終了)カラムの値が変更されると、代理ID値がリセットされます。サロゲートIDの重複を避けるために、ターゲットテーブルで[end] (終了)カラムの値が変更されていないことを常にご確認ください。
  • [version] (バージョン):SCDスキーマにレコードのバージョン番号を保持するためのカラムを追加します。
  • [active] (アクティブ):SCDスキーマにカラムを追加して、trueまたはfalseステータス値を保持します。このカラムは、アクティブレコードを簡単に見つけるのに役立ちます。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。