Bonjour,
J'ai fais quelques recherches mais je n'ai pas trouver de solution à mon problème.
J'ai actuellement un projet de création de datawarehouse avec par la suite la création de 3 cubes et de quelques reports.
Je suis depuis le début en autodidacte et je ne me débrouille pas trop mal mais il y a certains points que je n'arrive pas à éclaircir.
Je fais actuellement mes alimentations de table de fait comme celà :
-Source de données : base de prod
- Suite de look up pour faire correspondre les champs de la prod avec mes dimensions ex : numéro contrat(prod) = contrat_ak(dimensions)
- Look up qui me permet de vérifier si il y a eu une mise à jour depuis le dernier chargement
A l'heure actuel si il y a eu changement, j'update mais je sais qu'on ne doit pas update dans une table de fait.
Certaines de mes dimensions font une historisation et le fait d'update la table de fait ne permet pas de ressortir les anciennes valeurs.
J'ai pensé à une autre solution : Look up de recherche de modif si oui nouvelle insertion.
Cela permettrait que la table de fait contienne à la fois les enregistrements "périmé" et ceux "à jour" mais cela ne va t'il pas poser problème au niveau de l'affichage dans un tableau croisé dynamique (doublon de contrat par ex) et auquel cas la simple utilisation du flag de la dimension en filtre va t'il empêcher cela ?
J'ai fais beaucoup de blabla histoire de montrer ce qui me turlupine donc je vais faire un condenser de mes questions :
-Ma source de données est elle correct ? Une ou deux base de prod relié par un merge join qui contiennent toutes les valeurs qui me servent de buisness key que je fais correspondre avec des look up à mes dimensions.
-Ma théorie de placer un look up de recherche de modif sur les champs de la table de fait avec si oui nouvelle ligne et non pas update ?
Voilà merci d'avance pour vos réponses
J'ai relu mon message après réflexion et ça ne doit pas être bien clair, j'ai tendance à avoir du mal à m'exprimer clairement.
La source de données est une base de prod qui donc ne contient aucun historique.
Hors si je choisis tous les champs qui seront ensuite mes buisness key (code vendeur, num contrat, etc) mon look up qui me permet de dire "le code vendeur de cette table correspond à la buisness key de ma table DimVendeur et donc renvoi moi l'id" va systématiquement me renvoyé l'id de la première ligne ou ce code vendeur apparaît. Cela pose donc problème parce que dans mes dimensions j'ai une historisation.
Donc je me retrouve avec la première ligne retourné soit la première qui a été inséré et qui est donc surement en "expired", la ligne "current" qui me permettrai d'avoir des données à jour passe a la trappe : elle est dans ma dimension mais pas dans ma table de fait.
Je suis donc en train de me creuser la tête pour avoir mes lignes des dimensions dans ma table de fait mais j'ai vraiment du mal a comprendre comment je peux y parvenir, le problème doit venir de ma source de données.
Je suis surpris de voir que sur le net les infos sur ce point ce font rares.
Partager