|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 155 ![]() |
Salut, svp, je suis face à un probleme actuellement.
Voila: j'ai fait ma conception BI que j'ai fait le chargement dans la table de fait et ça marche bien. le probleme lorsque je veux faire un autre chargement (pour mettre à jour le DW) mon DW fait en oracle me declare qu'il ya des données existantes(violation unique...) je sais pas comment debloquer. je travaille avec talend |
|
|
00
|
|
|
#2 |
![]() ![]() |
Quel composant utilises-tu pour le chargement ?
S'il s'agit d'un tOracleOutput, tu as des options te permettant de régler le problème :
__________________
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 155 ![]() |
Bjr, oui j'utilise un toracleoutpu et merci pour la reponse, en fait je veux pas utiliser l'option insert and update, parce que je veux historiser mes données,
donc pas de mise à jour dans mon datawarehouse, le chargement initial passe sans probleme, au prochain chargement forcement il va rencontrer des meme clés et des nouvelles données, le fait qil m'ecrive "violation ora.....unique.." est le fait ces clés existent je pense, mais pourquoi il n'insere pas les nouvelles clé? |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Étudiant Inscription : juillet 2011 Messages : 20 ![]() |
Il n'insére pas car ce sont des clés uniques.
Donc tu peux choisir l'option "Update" tout simplement qui changera les données qu'il faut sans rajouter de lignes. Si tu veux faire un historique, fait une recopie de ta table de faits avant la mise à jour dans une table historique qui elle n'aura pas de clé unique. |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 155 ![]() |
peut etre q j'ai pas bien expliqué.
soit ma table vendre (base operationnelle en mysql) qui contient code_prd(clé produit), code_mag(clé magasin) et nbr (nombre vendu). dans mon datawarehouse, j'ai clé temps,clé produit, clé magasin,prix unitaire,prix vente,nbre vendu. la colonne prix unitaire stocke les prix d'un produit qui va nous permettre par exple de suivre l'evolution du prix. donc à chaque rechargement j'ai ces données(que je puise depuis ma base mysql). donc tu vois bien que un update mettra à jour par exple le prix actuel du produit et recalculera le prix de vente; ce qui n'est pas interressant. |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Étudiant Inscription : juillet 2011 Messages : 20 ![]() |
Donc la clé unique de ton DW est (clé temps,clé produit, clé mag) si je comprends bien ?
Tant que tu n'essaies pas d'insérer deux fois la même clé, tu n'auras pas de soucis. Mets un petit exemple si des fois on a pas encore compris. |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 155 ![]() |
Oui ceux sont les clés de ma DW, mais tu vois, à la 2e chargement par exemple, comment savoir les infos qui ne sont pas dans l'entrepot pour les selectionner seulement et les inserer?
Par exple dans la base transactionelle, il coe enregistrement code mag;01 , code prd;01 et la date. maintenant on fait un 1er chargement, ça passe. Au 2e chargement(apres qlq tps) , ce 1er enregistrement cité dessus existe toujour dans la base transactionnelle donc lors du chargement yaura probleme.j'espere que tu as compris mon probleme |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 155 ![]() |
salut! la solution est trouvée; en fait pour eviter de voir les message de"violation constraint......." provenant du sgbd, il suffit de mettre d'ajouter une expression au niveau du mysqloutput selon laquelle on compare la date du dernier chargement à la date de chaque enregistrement, si la date de l'enregistrement est superieur à celle de la derniere de chargement on l'insere et on met automatiquement à jour la date du dernier chargement.Merci!
|
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Étudiant Inscription : juillet 2011 Messages : 20 ![]() |
Je reste persuadé qu'un "INSERT OR UPDATE" comme l'avait suggéré CyberChouan fonctionnait parfaitement
|
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 155 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com