緩やかに変化するディメンションについて説明する

完了

緩やかに変化するディメンション (SCD) は、ディメンション メンバーの時間の経過に伴う変化を適切に管理するものです。 ビジネス エンティティの値が、設定されたスケジュールではなく、時間の経過に伴って変化する場合に適用されます。 SCD の好例としては、顧客ディメンション (具体的には、メール アドレスや電話番号などの連絡先詳細列) があります。 これに対して、株価など、ディメンションの属性が頻繁に変化する場合、一部のディメンションは急速に変化すると見なされます。 このような場合の一般的な設計手法は、急速に変化する属性値をファクト テーブル メジャーに格納することです。 一方、緩やかに変化するディメンションでは、変化するメンバーをディメンション テーブルに残す必要があります。 ディメンション テーブルのビジネス要件によって、変更の処理に使用される設計が異なります。

顧客の SCD の例

販売トランザクションを追跡するためのスター スキーマ モデルの一部として、顧客ディメンション テーブルを設計しているとします。 このテーブルには、会社名やメール アドレスなどの属性を含めます。 会社名または電話番号が変更されたら、それを新しい顧客として処理したいですか? 答えはおそらく「いいえ」でしょう。 代わりに、既存のレコードを更新するか、値に対するすべての履歴変更を追跡する方法が必要です。

データの変更を処理する場合、履歴なしで値を更新するか、履歴の各バージョンを追跡するかによって、テーブルの設計が異なります。 次に一般的な手法をいくつか説明しますが、まずは、利用するディメンションが緩やかに変化するディメンション (SCD) になるかどうかを特定する必要があります。 これは、レコードの更新を許可しますか、という質問に言い換えることができます。 答えが「はい」の場合、テーブルに日付フィールドを追加する必要があります。 この日付フィールドは、分析データベースでデータがいつ更新されたかを追跡するのに役立ちます。

たとえば、顧客の SCD に、(1) 変更可能な列のセットと、(2) レコードの追加と変更がいつ行われたかを追跡するフィールドのセットを含めます。

An example customer table design with fields to change and date fields highlighted.