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 :

Création de tables de références "à la volée" lors d'un import


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 57
    Points : 50
    Points
    50
    Par défaut Création de tables de références "à la volée" lors d'un import
    Bonjour,

    Je suis nouveau dans le monde des ETL et de Talend, alors pardonnez moi si ma question parait naive

    Je dispose entree d'un fichier XML listant des livres et des pages de livres (par exemple).
    Le livre a un type, qui est un attribut de l'element XML livre (type="roman" par exemple).

    Je souhaite alimenter une base MySQL avec le contenu du fichier XML

    -> une table de réf "Type de livre"
    -> une table "Livre", avec un lien sur "type de livre"
    -> une table "Page", avec un lien sur livre

    Je voudrais que l'alimentation de la table de ref se fasse au fur et à mesure, c'est à dire
    1/ un premier fichier XML contient un livre de type "roman" : lecture de la table de ref, recherche de la ref, "roman" n'existe pas donc création d'une entrée dans "Type de livre", puis création du livre (1 ligne dans "Livre") et de ses pages (n lignes dans "Pages")

    2/ un second XMl contient aussi un roman, lecture de la table de ref, on trouve que "roman" existe, donc pas besoin de nouvelle entrée, on crée le livre et ses pages uniquement en faisant un lien sur le type existant

    3/ un troisieme XML contient un livre de type "revue", lecture de la table de ref, recherche de la ref, "revue" n'existe pas donc création de ligne dans "Type de livre" etc etc

    Comment procéder avec talend ? vous traduisez cela comment en termes de composants ?

    J'arrive à lire correctement mon xml de façon "dénormalisée" et à l'afficher (IE une ligne affichée correspond à une page avec les infos sur la page + les infos sur le livre + les infos sur le type de livre) mais apres je sèche !

    Merci d'avance à tous.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Bonjour,

    Je pense qu'il te faut utiliser un tMap qui aura un lien de sortie vers chacune de tes tables.
    Les liens sont ordonnés, tu peux donc paramétrer le tout pour que l'insertion dans les tables de référence soit faite en premier.

    Le test d'existence dans les tables doit être fait par l'utilisation de lookups sur ce tMap, qui pointent vers les tables que tu veux tester.

    Je ne connais pas trop Mysql, mais pour que cela fonctionne, je pense qu'il faut que tu utilises la même session pour chacun de tes composant base de données.
    Tu devras donc utiliser un tMysqlConnection dans ton job.

    Nicolas

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2014, 17h01
  2. Réponses: 3
    Dernier message: 06/04/2009, 22h58
  3. [Concept] Table de référence
    Par matlo dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 20/01/2003, 16h01
  4. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 11h17

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