![]() 前へ |
![]() 次へ |
ディメンション内のすべてのレベルで、履歴データを格納する必要がありません。通常、最下位レベル(リーフ・レベルとも呼ばれます)でのみ、履歴データが格納されます。ただし、他のディメンション・レベルの履歴データを格納することもできます。
タイプ2のSCDのレコードがバージョン管理されている場合は、古いレコードはクローズ済としてマーク付けされ、更新された値で新規レコードが作成されます。レコードの有効期限は、古いレコードがクローズ済であることを示すように設定されます。新規レコードは現行のレコードとみなされ、デフォルトでは、デフォルトの有効期限としてNULLが設定されています。タイプ2のSCDにデータをロードしている間、ディメンション演算子の構成パラメータを使用して有効期限を設定できます。詳細は「ディメンション演算子」を参照してください。
タイプ2のSCD内の次の属性を更新できます。
リーフ・レベル属性
リーフ・レベルのバージョン管理する属性
非リーフ・レベル属性
非リーフ・レベルのバージョン管理する属性
リーフ・レベルの親属性
次の項では、これらの更新操作のためのWarehouse Builderの機能について説明します。
リーフ・レベル属性の更新
リーフ・レベル属性を更新する場合は、この属性の値が対応するレコード内で更新されます。
たとえば、Customerレベル・レコードのC_HOME_PHONEの値を更新する場合は、変更された電話番号でレコードが更新されます。
リーフ・レベルのバージョン管理する属性の更新
リーフ・レベルのバージョン管理する属性を更新する場合は、現行のレコードがクローズ済としてマーク付けされます。バージョン管理する属性の更新された値を使用して新規レコードが作成されます。
たとえば、顧客の婚姻区分を更新する場合は、現行のレコードがクローズ済としてマーク付けされます。その顧客に対して新規レコードが作成され、婚姻区分が更新されます。
非リーフ・レベル属性の更新
非リーフ・レベル属性を更新する場合は、非リーフ・レベルのオープン・レコードおよびこの非リーフ・レベルに対応する子レコードが新しい値に使用して更新されます。
たとえば、Householdレベル・レコードのH_ADDRESS属性を更新する場合は、そのハウスホールドの現行のオープン・レコードが更新されます。その特定のハウスホールドに対応するすべてのオープン子レコードも更新されます。
非リーフ・レベルのバージョン管理する属性の更新
更新機能は、階層バージョニングが有効か無効かによって異なります。
階層バージョニングが無効な場合
バージョン管理する属性に対応する非リーフ・レベル・レコードはクローズされ、更新された値を使用して新規レコードが作成されます。この非リーフ・レベル・レコードの子レコードは、非リーフ・レベルのバージョン管理する属性の変更された値を使用して更新されます。
たとえば、Householdレベル・レコードのH_ZIPの値が更新される場合は、このハウスホールドの現行のオープン・レコードがクローズされます。H_ZIPの更新された値を使用して新規レコードが作成されます。H_ZIPの値は、更新されたハウスホールドのレコードに対応するすべての子レコードで更新されます。
階層バージョニングが有効な場合
バージョン管理する属性に対応する非リーフ・レベル・レコードはクローズされ、新規レコードが作成されて値が更新されます。この非リーフ・レベル・レコードに対応する子レコードもクローズされ、新規の子レコードが作成されて値が更新されます。たとえば、Householdレベル・レコード内のH_ZIPの値が更新される場合、そのハウスホールドの現行のオープン・レコードおよび対応する子レコードはクローズされます。このハウスホールドおよびこのハウスホールドに対応する子レコードに対し、新規レコードが作成されて値が更新されます。
リーフ・レベルの親属性の更新
タイプ2のSCD内のレベル属性の更新に加えて、子レコードの親属性も更新できます。Customersのタイプ2のSCD内で、Customerレコード内の属性H_BUSN_IDによりその顧客の親属性が格納されます。リーフ・レベルの親属性に対する更新機能は、階層バージョニングが有効であるかまたは無効であるかによって異なります。
階層バージョニングが無効な場合
子レコードは、新規の親属性値に更新されます。
たとえば、Customerレコードの親レコードを表すH_BUSN_ID属性の値を更新すると、Customerレコードは新規の親属性値に更新されます。
階層バージョニングが有効な場合
子レコードはクローズされ、変更された親属性値を持つ新規レコードが作成されます。
たとえば、CustomerレコードのH_BUSN_ID属性を更新した場合は、現行のCustomerレコードがクローズされます。新規のCustomerレコードが作成されてH_BUSN_IDが更新されます。