|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : août 2008 Messages : 223 ![]() |
Bon j'inonde un peu le forum de mes questions
et met probablement a rude épreuve ceux qui me lisent et me répondent mais bon...faut bien que je comprenne.Comme disait mon père, je comprends vite mais faut m'expliquer longtemps ![]() ci dessous donc la reprise d'un de mes post qui a mieux a faire dans une nouvelle discussion. Bon alors je vais essayé de faire simple (ce qui n'est pas gagné). Je confonds plusieurs concepts ; je les mélange sans comprendre les interactions entre ces concepts (les utilise-t-on tous ensemble, l'utilisation de l'un exclu-t-il l'autre) et leur utilité. Ces concepts sont : 1 : les SCD 2 : l'historisation 3 : la dimension temps 4 : l'existence de table de DIM et de fait historisée aux côtés de table de DIM et fait courante (donc non historisées) 5 : et a quoi servent alors et dans quel cadre (en dehors du point 4) on utilise des jointures de types DIM_HISTO.ID = FAIT_ID et DIM_HISTO.DATE_DEB_VALIDITE <= FAIT.DATE_REF et DIM_HISTO.DATE_FIN_VALIDITE > FAIT.DATE_REF Pour résumer : quelqu'un peut il m'expliquer les relations entre ces 4 concepts, qui pris individuellement, j'arrive à comprendre plus ou moins (d'ailleurs plutot moins que plus) mais pour lequels je n'arrive pas à saisir dans quel contexte les utiliser. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : août 2008 Messages : 223 ![]() |
La nuit portant conseil, j'ai un grand service à demander à ceux qui auront le courage de parcourir avec attention ce long post qui suit.
Ce qui suit est un exposé de la manière dont je pense avoir compris comment fonctionne tout le "bouzin" des table de faits, des dim historisée, des SCD, de la dimension temps. Bref comment à mon sens tout cela s'imbrique et fonctionne ensemble. Vous comprendrez donc que c'est important pour moi d'avoir une confirmation par une âme charitable que ce qui suit est correct, que je ne fais pas fausse route. Bref que j'aiu bien tout "comprité" et que je peux désormais travailler de manière sereine sur de bonnes bases de réflexion auprès de clients potentiels. Donc un grand merci à cette (ou ces) âme(s) charitable(s) qui auront la gentillesse et prendront le temps de parcourir les points ci-dessous et de me les valider, si possible point par point pour me rassurer et être certain que, dans le tas, il n'y a pas d'erreurs. Si jamais j'ai dis une connerie ou que vous souhiateriez apporter une précision que vous jugeriez utile, alors surtout, n'hésitez pas. En tous cas merci pour ceux qui voudront bien faire cet effort. Alors : 1 - Les SCD sont bien une manière d'historiser les données dans les dimensions 2 - Si mon affirmation du dessus est vraie, alors choisir les SCD comme méthodo d'historisation implique : 3 - La DIM TEMPS peut être utilisée avec des SCD (là j'ai plus qu'un doute 4 - Mais elle n'est pas, au même titre que les SCD une "technique" d'historisation (pareil : doute 5 - La table de FAIT avec sa DATE_REF est en fait, implicitement, une table de fait historisée. C'est la DATE_REF qui justement donne la notion d'historique. Il n'y a qu'à mettre en place des règles de purge dans cette table pour éliminer les faits trop vieux. Genre suppression des lignes ou DATE_REF < date courante - 3 ans (par exemple) 6 - D'ailleurs on fait pareil sur les DIM avec suppression des lignes où DATE_DEB_VALIDITE < date courante - 3 ans (par exemple) 7 - Là où je suis "sec" c'est sur le choix de cette DATE_REF dans la table de fait dans le cadre des SCD. 8 - dernier point, que vient faire la dimension TEMPS dans un modèle en étoile intégrant les SCD ? Je suppose qu'une étoile avec les SCD et une DIM TEMPS ne sont pas incompatibles. Je veux dire, des DIM gérées en SCD et une DIM TEMPS ne s'auto excluent pas lors de la constitution d'un modèle en étoile. Je veux dire on est pas devant un choix cornélien du type : j'ai choisi les SCD donc je ne peux plus utiliser de DIM TEMPS ou j'ai choisi une DIM TEMPS donc je ne peux plus implémenter des SCD. Mais alors je n'arrive pas comprendre la distinction entre l'utilisation d'un requetage passant par les DIM_HISTO (tel que expliqué au point 2.7 plus haut) et un requetage passant par la DIM TEMPS... 9 - Ah si.... 10- maintenant, bien que sur tous les points qui précedent, je ne suis pas certain si j'ai tout bon (a vous de me le dire si vous avez eu le courage et le temps), encore un point reste de manière certaine assez flou pour moi : c'est l'utilisation conjointe (en accord avec la manière dont je viens de décrire la façon je pense que cela fonctionne) de la DIM TEMPS et des DIM gérée en SCD Voila un grand merci d'avance |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 819 ![]() |
Salut,
Avec l'intro que tu as fait, j'ai l'impression de faire ma BA quotidienne. Par contre est ce que tu dors bien la nuit ? Bref ! 2-9, 2-10, 2-11 aurais tu de la doc la dessus ? Si ta dim ne bouge pas beaucoup (principe du slowly changing dimension) je ne vois pas pourquoi tu ne peux pas tout historiser. 7 pourquoi pas prendre la date de l'alim, mais le problème est que tu seras bien a coté de la réalité, si ton contrat a été signé le 01/10/2008 a 14h, il ne l'a pas été le 05/10/2008 a 2h (heure de l'alim). 8,9,10 ouch pour moi ce sont 2 choses différentes et qui cohabitent très bien ensemble. Toutes tes dim ne sont peut être pas des SCD. De plus dans ta table de fait tu peux avoir des évènement qui ne renvoient pas à une dim, par exemple la date de livraison de ce que tu vends, tu n'as pas de dim livraison et pourtant tu veux avoir cette date dans ta table de faits. Soit tu mets la date au format date burt dans la table soit tu mets la SK de cette date pour faire la jointure sur la dim date. Tu auras une colonne SKDateLivraisonId qui sera une jointure sur ta dim date. sinon le début n'est pas mal du tout. bon courage |
|
|
00
|
|
|
#4 | |
|
Membre du Club
![]() Inscription : août 2008 Messages : 223 ![]() |
Citation:
Merci pour tes réponses en tout cas. |
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() Inscription : juin 2005 Messages : 269 ![]() |
Citation:
Dimension dégénérée en french. |
|
|
|
00
|
|
|
#6 | |
![]() ![]() Consultant en Business Intelligence Inscription : juillet 2008 Messages : 954 ![]() |
Citation:
je suis d'accord avec hebus_beer, la date d'alim ne sert pas à grand choses, elle ne signifie pas gd chose fonctionnellement la date du jour est + intéressante ... |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() ![]() Patrice HarelConsultant en Business Intelligence Inscription : mai 2008 Messages : 460 ![]() |
Bonjour,
J'ai pris une demie journée de congé pour pouvoir te lire et te répondre Bref je vais tenter d'apporter ma pierre à l'édifice (et s'il le faut, n'hésitez pas à me corriger... je viens de rentrer dans la vie active et mon expérience est pour le moment assez réduite). Quand tu parles d'historisation, c'est bien pour le principe général du datawarehouse? Car il faut distinguer l'historisation (pour les faits) et les SCD. L'historisation (principe de base du datawarehouse) permet de conserver les informations (par exemple le nombre de ventes du commercial TOTO pour le mois 5 et l'année 99) qui seront ensuite utilisées dans les analyses pour faire des prévisions. Dans ce cas, c'est grâce à la DimTemps que l'on fera ces analyses sur le passé. Les SCD sont là pour pallier au fait que les informations des DIMENSIONS évolues dans le temps. Imaginons que le commercial TOTO s'occupe de la Zone C entre 99 et 2001. Si après 2001, il change de Zone de prospection, il faudra bien conserver la "jointure" entre ses performances de ventes (dans les faits) et la région correspondante (dans une dimension). Les SCD sont utilisées pour garder un historique des données qui servent à qualifier les faits. Pour cela on peut effectivement utiliser une DateDebValidite et une DateFinValidite (mais il existe d'autre type de gestion des SCD voir ici) Tout ça pour dire que DimTemps et SCD... c'est pas la même chose. |
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : décembre 2007 Messages : 89 ![]() |
bonjour à tous ,
donc si je comprend bien , en gros pour historiser ( garder une trace des changement s'il y en a que ça soit pour les faits ou pour les dimensions ) on met date début et date de fin et c'est tout ? |
|
|
00
|
|
|
#9 |
![]() ![]() Consultant en Business Intelligence Inscription : juillet 2008 Messages : 954 ![]() |
non, pas pour les faits, enfin je te le déconseille ....
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() ![]() Patrice HarelConsultant en Business Intelligence Inscription : mai 2008 Messages : 460 ![]() |
Les changements que l'on doit traiter et ceux dont on parle ici (supprimés, horodatés ou mise à jour) s'opèrent sur les dimensions. Les faits ne sont que des mouvements/ évènements/ instants (ou tout autre dénomination). Ils sont dûment établis et (logiquement) indiscutables. Ils n'ont pas besoin de date de début ou de fin de validité à mon sens.
|
|
00
|
Copyright © 2000-2012 - www.developpez.com