La question la plus fréquente dans mes cours et e-mails est de savoir
comment gérer plusieurs timestamp sur un enregistrement d'une table de faits. Bien que la réponse correcte et immédiate est
« faites de chaque timestamp, une dimension Temps », il est utile de
décrire cette approche avec précaution car elle illustre bien tout un ensemble de
techniques modernes de conception d'entrepôt, sur lesquels je mettrais l'accent
en MAJUSCULES.
Tout d'abord, choisir le GRAIN FONDAMENTAL de votre table de faits.
Chaque table de faits que j’ai conçus avait comme grain une transaction, une
période, ou une agrégation (voir l'article sur les grains fondamentaux). Quand vous
comprendrez le grain fondamental, vous serez en mesure de juger quelle est la
signification et la pertinence de multiples timestamp pour celui-ci.
Les multiples timestamp surviennent le plus souvent lorsque l’enregistrement
est une agrégation. Lorsque, par exemple, l’enregistrement représente
l'histoire complète d'une ligne de commande. Les multiples timestamp peuvent
représenter :
- La date de commande
- La date de livraison souhaitée
- La date de chargement
- La date de livraison réelle
- La date de retour
Deuxièmement, pour l'exemple de la ligne de commande ci-dessus, créer
cinq ROLES pour une dimension Temps sous-jacente unique (voir l'article sur les
rôles). Cela signifie cinq champs dans la
table de faits, où chaque champ est une clé étrangère reliée à une dimension.
La dimension Temps unique est « exposée » à la table de faits à
travers cinq points de vue, ce qui rend chaque instance de la dimension Temps
sémantiquement indépendante.
Troisièmement, assurez-vous que les clés étrangères dans la table de
faits soient des clés de substitution (SURROGATE KEY). En d'autres termes, ce
ne sont ni des dates ni des timestamp, mais sont plutôt de simples entiers. Résister
à l’envie de mettre du sens dans ces clés (voir les articles ici et ici pour en savoir plus sur les clés de
substitution). Si vous pensez sérieusement à notre exemple de ligne de
commande, vous aurez à accepter que certains enregistrements doivent contenir
les valeurs "inconnu" ou "n'est pas encore arrivé" là où
l’on souhaite un timestamp. C'est une des raisons classique d'utilisation des
clés de substitution.
Si vos timestamp sont
précis à la minute ou à la seconde, alors vous devez séparer le jour et l’heure pour en faire des dimensions distinctes.
Nous discuterons des variations sur ces modélisations de timestamp dans un prochain article.
Nous discuterons des variations sur ces modélisations de timestamp dans un prochain article.
Source originale: www.kimballgroup.com
Article original "Kimball Design Tip #2: Multiple Time Stamps", publié le 7 janvier 2000.
Aucun commentaire:
Enregistrer un commentaire