le propriétaire de l’entrepôt de données doit décider comment répondre aux changements dans les descriptions des entités dimensionnelles comme employé, client, Produit, Fournisseur, emplacement et autres. En 30 ans d’étude de cette question, j’ai constaté que seuls trois types de réponses différents sont nécessaires. J’appelle ces types de dimension à changement lent (SCD) 1, 2 et 3. Dans la colonne du mois dernier, J’ai décrit le Type 1, qui écrase les informations modifiées dans la dimension., Dans cette colonne, je décris les Types 2 et 3.
Type 2: Ajouter un nouvel enregistrement de Dimension
modifions le scénario de la colonne précédente où j’ai remplacé le champ Home City dans L’enregistrement des employés de Ralph Kimball pour supposer que Ralph Kimball a effectivement déménagé de Santa Cruz à Boulder Creek le 18 juillet 2008. Supposons que notre politique consiste à suivre avec précision les adresses personnelles des employés dans l’entrepôt de données. Il s’agit d’un changement de type 2 Classique.
la DCS de Type 2 exige que nous délivrions un nouveau dossier d’employé pour Ralph Kimball à compter du 18 juillet 2008., Cela a de nombreux effets secondaires intéressants:
- Le Type 2 nécessite de généraliser la clé primaire de la dimension employé. Si la clé naturelle de L’employé de Ralph Kimball est G446, alors cette clé naturelle sera la « colle” qui contient les multiples enregistrements de Ralph Kimball ensemble. Je ne recommande pas de créer une clé primaire intelligente pour les SCD de Type 2 qui contient la clé naturelle littérale. Les problèmes avec les clés intelligentes deviennent particulièrement évidents si vous intégrez plusieurs systèmes RH incompatibles avec des clés naturelles formatées différemment., Vous devez plutôt créer des clés primaires complètement artificielles qui sont simplement des entiers assignés séquentiellement. Nous appelons ces clés clés de substitution. Vous devez créer une nouvelle clé primaire de substitution chaque fois que vous traitez une modification de Type 2 dans une dimension.
- En plus de la clé de substitution principale, je recommande d’ajouter cinq champs supplémentaires à une dimension en cours de traitement de Type 2. Ces champs sont illustrés à la Figure 1. Les datetimes sont des horodatages complets qui représentent la période entre le moment où le changement est entré en vigueur et le moment où le changement suivant devient effectif., L’heure-date-effective-fin d’un enregistrement de dimension de type 2 doit être exactement égale à l’heure-date-effective-début de la prochaine modification pour ce membre de dimension. L’enregistrement de dimension le plus récent doit avoir un DateTime effectif final égal à un datetime fictif loin dans le futur. Le texte de la raison du changement doit être tiré d’une liste pré-planifiée des raisons d’un changement, dans notre exemple, aux attributs de l’employé. Enfin, l’indicateur fournit un moyen rapide pour isoler exactement l’ensemble des membres d’une dimension qui est en vigueur au moment de la requête., Ces cinq domaines administratifs permettent aux utilisateurs finaux et aux applications d’effectuer de nombreuses requêtes puissantes.
- avec une dimension subissant un traitement de Type 2, il faut prendre grand soin d’utiliser les clés de substitution contemporaines correctes de cette dimension dans chaque table de faits affectée. Cela garantit que les profils de dimension corrects sont associés à l’activité de la table de faits. Le processus d’extraction, de transformation et de chargement (ETL) pour aligner les tables de dimension avec les tables de faits au moment du chargement s’appelle le pipeline de clés de Substitution et est largement couvert dans mes articles et Livres.,
Type 3: Ajouter un nouveau champ
bien que les SCD de Type 1 et 2 soient les principales techniques de travail pour répondre aux changements dans une dimension, nous avons besoin d’une troisième technique pour gérer les réalités alternatives. Contrairement aux attributs physiques qui ne peuvent avoir qu’une seule valeur à un moment donné, certains attributs attribués par l’utilisateur peuvent légitimement avoir plus d’une valeur attribuée en fonction du point de vue de l’observateur. Par exemple, une catégorie de produit peut avoir plus d’une interprétation., Dans un magasin de papeterie, un stylo de marquage pourrait être attribué à la catégorie des articles ménagers ou à la catégorie des fournitures d’art. Les utilisateurs finaux et les applications doivent pouvoir choisir au moment de la requête laquelle de ces réalités alternatives s’applique.
l’exigence d’une vue alternative de la réalité d’un attribut de dimension s’accompagne généralement d’une exigence subtile que des versions distinctes de la réalité soient disponibles à tout moment dans le passé et dans le futur, même si la demande de rendre ces réalités visibles est arrivée à l’entrepôt de données aujourd’hui.,
dans la variation la plus simple, il n’y a qu’une seule alternative-la réalité. Dans ce cas, pour l’exemple de catégorie de produit, nous ajoutons un nouveau champ dans la dimension, peut-être appelé catégorie alternative. Si la catégorie principale de notre stylo de marquage était autrefois des articles ménagers et devrait maintenant être des fournitures artistiques, alors dans un traitement de Type 3, Nous poussons l’étiquette des articles ménagers dans le champ Catégorie alternative et nous mettons à jour le champ Catégorie ordinaire avec des fournitures artistiques en écrasant. L’étape d’écrasement est similaire à un SCD de Type 1 et provoque toutes les mêmes mises en garde dans la colonne du mois dernier.,
avec des machines de Type 3 en place, les utilisateurs finaux et les applications peuvent basculer de manière transparente entre ces réalités alternatives. Si l’environnement nécessite plus d’une réalité alternative, cette approche peut être généralisée en ajoutant plus de champs alternatifs, bien qu’évidemment cette approche ne s’échelonne pas gracieusement au-delà de quelques choix.
Les trois approches SCD pour gérer la variance temporelle des dimensions ont une énorme applicabilité dans les situations réelles rencontrées par l’entrepôt de données., Le Type 2, en particulier, nous permet de respecter l’engagement de l’entrepôt de données de préserver fidèlement l’historique.