Question

J'établis les tables de faits et de dimensionnement et j'essaie de déterminer le meilleur moyen de configurer mes valeurs de temps. AdventureworksDW utilise une clé de temps (UID) pour chaque entrée de temps dans la table DimTime. Je me demande s'il n'y a aucune raison pour laquelle je ne devrais pas simplement utiliser une valeur de temps, par exemple 0106090800 (ma granularité est horaire).

Était-ce utile?

La solution

" Clés intelligentes " (dans ce cas, un numéro de date et d'heure codé) peut entraîner des problèmes lorsque vous souhaitez modifier les définitions dans votre dimension. Par exemple, vos utilisateurs peuvent insister pour passer de l'heure locale à l'heure UTC. Désormais, votre clé n’est plus réellement un nombre utile, c’est l’ancienne valeur de la dimension.

De plus, avec un problème de report à minuit, il est possible que la partie date de votre clé intelligente ne corresponde pas à la date réelle de l'heure UTC par rapport au changement d'heure locale.

Pour éviter que la clé ne devienne un problème, vous ne pouvez l'utiliser pour aucun calcul. Dans ce cas, il n’est guère mieux qu’un simple GUID ou un numéro à incrémentation automatique.

Les touches d’incrémentation automatique (ou GUIDS) sont simples et rapides. Plus important encore, ils sont trivialement cohérents dans toutes les dimensions.

Le temps a parfois un mappage numérique, mais il est bon de regarder que c'est une coïncidence étrange, pas une base pour une bonne conception.

Autres conseils

Voici la dernière de Ralph Kimball sur la dimension temporelle. Il date de 2004, mais reste bon.

p>

La clé primaire doit être une substitution, elle n'a pas de sens. Cependant, il est difficile de résister à YYYYMMDD pour la clé de dimension de date et permet également un partitionnement facile des tables. Le truc, c'est qu'il doit toujours être considéré comme dépourvu de sens - le fait qu'il ressemble à une date doit être considéré comme une pure coïncidence. Cette clé ne doit jamais être exposée aux utilisateurs professionnels.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top