IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

[Talend Open Studio] Liens multiples entre tables


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 19
    Points : 18
    Points
    18
    Par défaut [Talend Open Studio] Chargement d'une table utilisée plusieurs fois
    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

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    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é :


    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


    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


    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


    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,

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Je teste cela au plus vite et vous remercie déjà pour votre réponse.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Chargement d'une table utilisée plusieurs fois
    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.

  5. #5
    co2
    co2 est déconnecté
    Membre éclairé
    Avatar de co2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 182
    Points : 829
    Points
    829
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion entre Talend Open Studio et un serveur
    Par BIninja dans le forum Installation, migration et administration
    Réponses: 1
    Dernier message: 22/05/2014, 22h23
  2. [Talend open studio] Comment extraire les données à partir d'Oracle ?
    Par aymengomez dans le forum Développement de jobs
    Réponses: 19
    Dernier message: 15/05/2009, 13h09
  3. Comment modéliser des liens multiples entre tables ?
    Par MadM@tt dans le forum Schéma
    Réponses: 2
    Dernier message: 15/11/2007, 17h51
  4. Réponses: 0
    Dernier message: 25/09/2007, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo