Dans l’article d’aujourd’hui, je voudrais me concentrer sur la dimension à changement lent, alias SCD. Dimension est un mot extrait de l’entreposage de données en tant que tel. Non sans raison, SCD est très souvent utilisé en termes de sujets d’entrepôt de données (DW) et peut être utilisé à des fins d’audit dans les systèmes OLTP.

Le but de l’article est de passer en revue les types de Dimension Qui changent lentement car il y en a peu de versions.

Les données changent au fil du temps., Vous ne vous souciez peut-être pas de la version historique des données de votre base de données OLTP, mais il peut s’agir d’une exigence commerciale afin de maintenir toutes les modifications historiques. En d’autres termes, vous devez être en mesure d’afficher, dans un rapport de vente, un bureau régional correct d’un vendeur, peu importe quand la personne a changé de région. Dans ce cas, nous devons conserver les données avant la modification et après la mise à jour.

Comment fonctionnent les Transformations?

Il existe peu de types de SCD.

Selon le type SCD, vous pouvez conserver aucun, un ou plusieurs changements historiques de lignes.,
L’idée est simple: chaque fois que la ligne change, une ancienne version (avant MISE à JOUR ou SUPPRESSION) de la ligne sera conservée dans la table SCD.
La mise en œuvre de ces choses n’est pas toujours facile. Jetons un coup d’oeil à des exemples.

Comme exemple de données source, j’utiliserai la ligne de données suivante:

Exemple de données source SCD

Dans l’exemple ci-dessus, CustomerId est une clé primaire dans la base de données source (OLTP).,
Nous introduisons la clé de substitution (CustomerKey) dans DW pour éviter la duplication de CustomerId d’origine et pour optimiser les performances, en particulier lorsque le système source utilise des clés de caractère ou complexes.

Données SCD dans l’exemple d’entrepôt de données

Type SCD 0

Ce type ne conserve aucune modification des attributs. Il ne conserve que la valeur d’origine sans aucune modification. Il est utilisé principalement pour les attributs qui ne peuvent pas être modifiés, comme la date de naissance.,

SCD Type 1: écraser l’historique d’un attribut

Cette méthode ne peut pas suivre les changements dans les données, et écrase les anciennes données avec de nouvelles. Une fois que notre client a changé son adresse, la nouvelle adresse écraserait:

SCD Type 1

Comme vous pouvez le voir – c’est très simple à implémenter et à maintenir le processus – c’est une simple mise à jour. Dans d’autres mains, l’inconvénient de cette approche est le manque d’historique de row dans Data Warehouse.,

SCD Type 2: ajout de nouvelles lignes

La méthodologie préserve l’historique en ajoutant de nouvelles lignes et il n’y a pas de limite sur le nombre de modifications de conservation.,iv id= »f3da287bb9″>

SCD Type 2

De plus, vous pouvez décider de la manière dont vous souhaitez connaître les anciennes lignes en maintenant la colonne de drapeau actuelle et/ou UpdateDate:

SCD Type p>

ou la version de la ligne qui sera incrémentée séquentiellement:

SCD Type 2 avec la version

SCD Type 3: colonnes historiques supplémentaires

Dans cette approche, vous pouvez gérer une quantité limitée d’historique en ajoutant des colonnes attributs.,
Voulant avoir la ville précédente et actuelle du client, vous pouvez implémenter des colonnes: PreviousCity et CurrentCity. Il n’y aura qu’une seule ligne dans Data Warehouse (DW) par base de données source, donc le type 3 a une facilité d’utilisation limitée et est moins populaire que les types 1 et 2.

SCD de Type 3

Vous devez être prudent si vous souhaitez utiliser de Type 3, de la DRÉPANOCYTOSE. Assurez-vous que Business Analyst et/ou votre client sont conscients des limites de l’historique.,

SCD Type 4: Table historique séparée

Ce type utilise des tables séparées pour conserver les enregistrements actuels et les modifications historiques. Cela vaut la peine d’utiliser lorsque:
• Dimension change assez souvent ou
• Dimension est une table de plusieurs millions de lignes

SCD Type 4 table actuelle

SCD Type 4-table historique

Margy Ross du groupe Kimball appelle ces tables comme « mini – dimension”.,

SCD Type 6:

Cette approche est numéroté comme 6 1+2+3=6 ainsi 1x2x3=6. C’est donc une combinaison de ces trois types:
* Conserve les valeurs précédentes et actuelles pour l’attribut (comme Type 3, regardez les colonnes: « HistoricCity »,”CurrentCity »)
* Remplace tous les enregistrements pour la version actuelle de l’attribut (comme Type 1, regardez la colonne « CurrentCity”)
* Conserve la version historique de l’attribut (comme Type 2, regardez les colonnes: « IsCurrent »,” StartDate »,”EndDate »)
son effet sur DW., Le premier chargement de la ligne:

SCD Type 6 (étape 1)

Lignes dans la table Client de DW après la première relocalisation du client:

SCD Type 6 (étape 2)

Lignes dans le tableau Client de DW après la deuxième relocalisation du client:

SCD Type 6 (étape 3)

Quel Type dois-je choisir?,

En tant que consultant professionnel, je réponds professionnellement:

Cela dépend

Demandez à votre équipe commerciale, à votre business analytics ou à votre client Ce dont ils ont besoin dans l’entrepôt de données.
Peut-être que je ne l’ai pas dit assez fort, mais dans le même tableau, vous pouvez appliquer différents types SCD à chaque colonne.
Par exemple: Tapez 2 dans la colonne Ville, Tapez 1 dans la colonne Date de naissance. Tous dans la même table.
Demandez-leur donc toutes les dimensions:
• quels attributs sont constants,
• quels attributs sont variables?,
• quels attributs doivent être entièrement suivis, qui ne doivent garder que la version précédente et actuelle?
• Combien de lignes sont dans le tableau en ce moment / sont attendus dans les 10 prochaines années?
Gardez ces réponses comme une preuve. Les gens, en particulier les clients, aiment changer d’avis. Vous savez ce que je veux dire.
Si vous ne savez toujours pas lequel choisir, rappelez-vous que:

Garder un historique des changements est bon pour vous

Simplement parce que les exigences pourraient changer.
A côté des types 0 et 1, à mon avis, les plus populaires sont le Type 2 et le Type 4.

Comment charger des données dans SCD?,

Bonne question. Mais ce sujet est une histoire complètement différente.
Avant de préparer le prochain article à ce sujet-jetez un oeil sur cet outil:
SCD Merge Wizard
L’outil vous aide à créer, gérer et maintenir le mappage entre la base de données source (par exemple, la mise en scène) et la base de données cible (Entrepôt de données). De plus, avec cette approche, vous utiliserez l’instruction MERGE pour effectuer des opérations de chargement à l’aide du type SCD configuré pour chaque colonne.
Dans d’autres articles, je vais vous expliquer comment appliquer différents types de SCD dans cet outil.

Bonne chance avec vos chargements,
Kamil