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 d'un id auto généré pour des tables différentes


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Femme Profil pro
    Data Analyst
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Création d'un id auto généré pour des tables différentes
    Bonjour à tous,

    j'ai un petit problème avec mes jobs Talend. (job père et plusieurs jobs fils)
    contexte : J’ai une base de données (mysql) qui contient plusieurs tables.
    Dans Talend je crée plusieurs jobs (fils) qui ont la même structure décrite ci-dessous.
    1er partie : tMysqlInput (requete pour sélectionner le nom du site + pays) -> tMap_1 (concaténation site_pays) -> tFlowToIterate_1 (permet de stocker la valeur de la requête concaténée « identifiant_site »
    2ième partie : tMysqlInput (select * from table_name) -> tMap_2 (je reprends toutes les colonnes de ma table et j'ajoute une variable dans une colonne appelée « id_site » -> et j'écris dans un fichier ma nouvelle table
    voici ma variable dans mon tMAp_2 : String.valueOf(Numeric.sequence("s1",1,1))+"_"+((String)globalMap.get("identifiant_site"))

    Chaque job fils exécuté séparément fonctionne correctement.

    Mon problème survient dans mon job père qui contient les jobs fils.
    Je m’aperçois que l’id auto généré de chaque job n’est pas propre à sa table.
    Le résultat est table_1 id_site va de 1 à 10
    La table_2 son id_site va de 11 à 30 et ainsi de suite.
    Hors moi je voudrais que chaque table soit un id auto généré unique à sa table. (j'ai essayé d'ajouter dans ma variable le nom de la table :String.valueOf(Numeric.sequence("s1",1,1))+"_"+((String)globalMap.get("identifiant_site"))+"_table_name" pour voir si c'était la cause du problème mais non)

    Je joins deux exemples de mes jobs.

    j'ai une seconde question concernant ce type de job. Y-a-t-il une limite de job fils a ne pas dépasser dans un job père ? (version libre)

    Je vous remercie pour votre aide !!! Merci.
    Images attachées Images attachées   

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Je ne sais pas si je vais répondre exactement à ta question ....mais si tu crées une séquence séparée pour chaque table table_1 et table_2 alors tu auras ce que tu veux.
    Crées dans ta base de données, deux séquences. Puis sous Talend , dans "Requêtes" tu crées deux requêtes portant les mêmes noms que les séquences crées.
    Ces requêtes sont alors de la forme: select toto.nextval from dual.
    Dans un job, tu utilises alors un tmap où tu mets pour la table_1 la requête correspondante ( en mettant recharger à chaque fois) et le résultat tu l'envoies dans ton id.
    Voilà,

    NFHnv

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/04/2008, 17h56
  2. [Wamp] Le même message m'est affiché pour des scripts différents
    Par salmoucha dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 18
    Dernier message: 05/03/2008, 16h38
  3. Changer le statut "Système" pour des tables
    Par kheldar666 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/05/2007, 13h43
  4. [HashMap] Ecrasement de données pour des clés différentes
    Par Adjanakis dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 20/07/2006, 11h20
  5. Réponses: 3
    Dernier message: 21/02/2006, 11h44

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