mercredi 17 juin 2009

Kimball Slowly Changing Dimension (SCD)

L'une des composantes d'un projet BI est la gestion de ce qu'on appelle les "Slowly Changing Dimension" (SCD) ou "dimensions à variation lente". L'enjeu est le suivant, historiser ou non les attributs d'une dimension et si oui, dans quelle mesure. Il existe plusieurs types de SCD, numérotés de 0 à 6, chacun permettant de couvrir un cas de figure particulier, les plus couramment utilisés étant les types 1 et 2.

Prenons l'exemple d'une dimension employé, chaque employé occupant un poste précis. Une SCD de type 1 ne garderait dans le datawarehouse que le dernier poste occupé par un employé. Une SCD de type 2 permettrait elle de garder un historique des postes occupés par l'employé, en précisant les dates de début et de fin de chacun de ces postes.

Il existe différentes méthodes pour appliquer ces principes dans un lot de chargement Integration Services, que ce soit à l'aide de composants de recherche (lookup) ou du composant SSIS SCD. Il existe cependant une alternative gratuite et performante: Le Kimball Slowly Changing Dimension component. Ce composant développé par Todd McDermid et disponible gratuitement sur CodePlex permet de gérer très facilement le chargement des SCD de type 1 et 2.




Seul petit bémol, l'impossibilité de transférer des champs techniques or audit... ce qui n'est pas nécessairement bloquant.

Si vous souhaitez l'essayer, la version 1.4 est disponible ici, je vous le conseille vivement!

2 commentaires:

Thomas Malbaux a dit…

Pas mal du tout ! Merci pour l'info.

Je n'ai pas testé le composant mais, par rapport à celui fourni dans SSIS (Slowly Changing Dimension), y a t-il un réel gain de performance ? Si vous avez déjà testé, de combien environ ?

Car celui "par défaut" est vraiment vraiment slowly !...

Je ne manquerai pas de tester la v1.4 prochainement.

Aurélien Koppel a dit…

Le site du composant annonce un gain de performance de 100 (Performs 100x faster than the standard component). Je n'ai pas de benchmark qui permette de confirmer ce chiffre.

Au delà de la performance, ce composant offre une souplesse intéressante comparé au composant SCD original (Surrogate keys, Current Reccord et validity dates, choix du pattern des dates, gestion des invalides, gestion des lignes d'audit etc.)

Bon test!