Bonjour,
personnellement je mets uniquement l'historisation de la donnée sur le DWH.
Au niveau datamart j'ai une historisation par période. Dans tous mes datamart j'ai une date technique qui correspond à la date de la vision des données.
Par exemple les données du 01/01/2020.
Par contre je n'utilise aucune des méthodes SCD, je travaille par dates de validités.
Une ligne possède un début et une fin de validité (par défaut 1900 à 9999)
1 2 3
|
ID NOM PRENOM SERVICE DEBUT_VALIDITE FIN_VALIDITE
1 BEN JULIEN COMPTA 1900-01-01 9999-12-31 |
et quand on reçoit une modification on historise de cette manière :
1 2 3 4
|
ID NOM PRENOM SERVICE DEBUT_VALIDITE FIN_VALIDITE
1 BEN JULIEN COMPTA 1900-01-01 2019-06-15
1 BEN JULIEN RH 2019-06-16 9999-12-31 |
Pour requêter on borne toujours sur les dates :
select * from salarie where current_date between debut_validite and fin_validite;
Cela me permet de recalculer à n'importe quelle date (même passée) mes datamarts.
Cdlt
Partager