|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2003 Messages : 19 ![]() |
Bonjour,
J'utilise Talend Open Studio pour extraire des données de différentes base de données (toutes MySQL) et faire du rapprochement de données. Voilà ma problématique : - J'ai une base de données (BD1) où je récupère une table contrat avec les champs suivants (no_contrat, no_voiture, marque, modele, annee, id_conducteur1, id_conducteur2, id_assure). Les champs id_conducteur1, id_conducteur2, id_assure contiennent les numéros de personnes gérées dans un annuaire. - Dans mon autre base de données (l'annuaire ANNU), j'ai une table personne avec les champs suivants (id_personne, nom, prenom, date_naissance, adresse, ville, code_postal) Je voudrais avoir au final dans une 3ème base une table avec les champs suivants (no_contrat, marque_voiture, modele_voiture, anne_voiture, nom_conducteur1, prenom_conducteur1, date_naissance_conducteur1, nom_conducteur2, prenom_conducteur2, date_naissance_conducteur2, nom_assure, prenom_assure, date_naissance_assure). La solution que j'ai mise en place actuellement utilise un module tMysqlInput pour la table contrat de la BD1 et trois modules tMysqlInput lier chacun à la table personne de l'ANNU. Je dirige tout vers un tMap avec la connexion BD1 en Main et je Map tout cela avant de le faire sortir sur un tMysqlOutput.Cela marche. Le problème est que cette méthode fait charger 3 fois la table personne de l'ANNU (soit 30 000 enregistrements), ce qui multiplie les délais. J'aurais donc aimer savoir comment faire plus proprement avec Talend Open Studio. Je vous remercie d'avance. ----------------- SuPpReNd.ToS |
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() |
Bonjour,
D'après mes premier tests, tu n'est pas obligé de relire trois fois ta table personne lorsque tu l'utilise dans trois lookup. Voici comment je ferai, mais cela devra être testé dans son intégralité : 1° Un tDBInput sur la table Contrat avec un lien main sur le tMap1 Un tDBinput sur la table Personne avec un lien Lookup sur ce tMap1 pour l'idconducteur1 2° Un lien main entre le tMap1 et le tMap2 Un lien Lookup sur le tMap2 à partir de ton tDBInput sur la table Personne (le même que pour le premier lookup) pour l'idconducteur2 3° Un lien main entre le tMap2 et le tMap3 Un lien lookup sur le tMap3 à partir de ton tDBInput sur la table Personne pour l'idassure 4° Un lien Output entre ton tMap3 et la table cible J'espère que cela pourra t'aider et t'éviter ainsi de charger trois fois la table personne. Cordialement, |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2003 Messages : 19 ![]() |
Je teste cela au plus vite et vous remercie déjà pour votre réponse.
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2003 Messages : 19 ![]() |
Bonjour,
Ce système ne fait donc bien utiliser la table personne qu'une fois dans la description des translations. Toutefois, la table est chargée autant de fois que de liens lookup sont faits. Par conséquent, cela ne résout pas le problème (bizarrement cela allonge même le temps de traitement). Mais merci quand même. Si quelqu'un à une autre idée... je suis preneur. |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() |
Hello supprend,
Si tu as tes 3 tables dans le meme serveur de bases de données, que tu ne cherches à faire que des lookup et que tu recherches des perfs, oriente toi vers les composants ELT de Talend. Tu devrais pouvoir faire ton job avec 5 composants (3 tELTMySQLInput, tELTMySQLMap et tELTMySQLOutput) et quelques DnD. Via ces composants, Il n'y aura ainsi aucun transfert de données entre ta base de données et ton serveur ETL dans le cas de transformation très simples. Note : ces composants sont disponibles dans la version 2.0.0. Pour l'instant cette version en M3 (milestone3 - version de test). Elle sera en RC (Release Candidate) mardi prochain et en version stable le mardi 10 avril sur www.talend.com Bon courage, Cédric Carbone Talend CTO |
|
00
|
Copyright © 2000-2012 - www.developpez.com