Retour

Historisation des tables de dimensions en utilisant les composants Slowly Changing Dimensions (SCD).

Temps de lecture : 4 minutes

Contexte :

Dans ce tutoriel vous apprenez comment stocker et gérer à la fois les données actuelles et les données historiques d’une table worker d’une base de données de type SQL Server en utilisant les dimensions à évolution lente (slowly Changing Dimensions).

Compatibilité :

SCD est compatible avec l’ensemble des bases de données qui sont dans la figure suivante :

Types de SCD :

Il existe quatre types de dimensions à évolution lente (Slowly Changing Dimensions) :

  • Type 0 : ce type de SCD n’est pas utilisé fréquemment. Certaines données dimensionnelles peuvent être écrasées et d’autres peuvent rester inchangées au cours du temps. Ce type de SCD convient lorsque aucun effort n’a été mis en place pour gérer les dimensions à caractère évolutif.
  • Type 1 : aucun historique n’est conservé dans la base de données. Les nouvelles données écrasent les anciennes. Utilisez ce type si le suivi des modifications n’est pas nécessaire. Ce type est particulièrement utile lors de la correction de fautes de frappe, par exemple dans l’orthographe d’un nom.
  • Type2 : l’intégralité de l’historique est stockée dans la base de données. Ce type de SCD traque les données d’historique en enregistrant un nouvel enregistrement dans la table de dimension avec une nouvelle clé à chaque fois qu’un changement est effectué. Ce type de SCD convient lorsque l’on traque les mises à jour, par exemple.
  • Type 3 : seules les informations sur l’ancienne valeur d’une dimension est écrite dans la base de données. Ce type de SCD traque les changements en utilisant des colonnes séparées. Ce type de SCD convient lorsque l’on traque les valeurs précédentes d’une colonne qui change.

1. Insérer les données dans une table SQL Server en utilisant SCD :

  • Créez un Job et ajoutez un composant tDBConnection, un composant tFixedFlowInput, et un tDBSCD
  • Configurez votre TDBConnection en renseignant les paramètres de connexion vers votre base de données.
  • Reliez votre tDBConnection avec votre tFixedFlowInput en utilisant la connexion OnSubJobOk.
  • Configurez votre tFixedFlowInput  en renseignant vos données d’entrée et leurs schéma comme le montre les deux figures suivantes :
  • Reliez votre tFixedFlowInput à votre tDBSCD en utilisant une connection de type Row > main.
  • Cliquez sur votre tDBSCD afin d’ouvrir sa vue Basic settings.
  • Cochez la case Use an existing connection et, dans la liste déroulante Component List qui s’affiche, sélectionnez le composant de connexion que vous avez configuré.
  • Dans le champ Table, saisissez employee_scd.
  • Cliquez sur le bouton […] à côté de SCD Editor pour ouvrir l’éditeur SCD. Toutes les colonnes du schéma sont listées dans le panneau Unused.
  • Dans le champ name du panneau Surrogate keys, saisissez le nom des clés de substitution, SK dans cet exemple.
  • Dans le panneau Unused, glissez-déposez :
    • id vers le panneau Source keys afin de l’utiliser comme une clé assurant l’unicité des données entrantes.
    • name vers le panneau Type 0 fields (aucune action particulière ne sera exécutée sur ses changements de dimension).
    • age vers le panneau Type 1 fields pour exécuter un SCD Type 1 .
    • role vers le panneau Type 2 fields pour exécuter un SCD Type 2.
    • Salaire vers le panneau Type 3 fields pour exécuter un SCD Type 3.
  • Ajoutez un tDBCommit afin de valider les données traitées à travers le Job dans la base de données connectée.
  • Votre flux devra ressembler à celui-ci :
  • Exécutez votre Job et regardez le résultat dans votre base de données.

2.Modifier les données dans une table SQL Server en utilisant SCD :

  • Dans votre précèdent Flux modifiez la source de vos données en modifiant les données que vous avez créées à partir du composant tFixedFlowInput. Par exemple modifiez les valeurs des champs et ajoutez une nouvelle ligne :
  • Réexécuter votre Job et regarder une nouvelle fois le résultat sur votre base de données :

Comme vous remarquez sur la figure ci-dessus le composant SCD à bien historiser les données. Pour les anciennes lignes il les a désactivés en leur attribuant un statut = 0, en incrémentant leur version et en mettant la valeur du champ date de fin à la date d’exécution du job .

Vous savez désormais comment historiser des tables de dimensions en utilisant les composants Slowly Changing Dimensions (SCD).

Laisser un commentaire

Il n'y a pas de commentaires pour le moment. Soyez le premier à participer !