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

kettle/PDI Discussion :

PDI 4.3.0 : réaliser une opération de transcodification


Sujet :

kettle/PDI

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 38
    Points
    38
    Par défaut PDI 4.3.0 : réaliser une opération de transcodification
    Bonjour,

    Je suis en train de développer un flux sous PDI. J'extrais des données à partir d'un fichier plat et je souhaite modifier les valeurs d'un champ de type texte (chaine de caractères) en les transcodant avant d'insérer le résultat dans une table en base.

    L'opération de transcodification que je souhaite mettre en place est la suivante :
    Si champ_a_modifier = 'TOTO' alors champ_a_modifier = 'TITI'
    SINON SI champ_a_modifier = 'TITI' alors champ_a_modifier = 'TATA'
    ...
    Sachant que j'ai un fichier (fichier_transco.csv) contenant les valorisations de la trancodification qui se présente sous la forme suivante :
    colonne1 Colonne2
    TOTO TITI
    TITI TATA

    Donc en gros le flux doit pour chaque ligne chercher une correspondance dans le fichier fichier_transco.csv en faisant matcher 'champ_a_modifier' avec 'colonne1'. Pour chaque correspondance il remplace 'champ_a_modifier' par colonne2 (ou créer une autre colonne).

    Ce type de transformation (sorte de lookup renvoyant une valeur) existe t il dans PDI ?

    Merci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    La brique "recherche dans flux" devrait te permettre de construite ta lookup, par contre il serait peut être plus performant de charger ton fichier de transcodification dans une table temporaire et utiliser la brique "Recherche dans base de données"

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par patrick21 Voir le message
    Bonjour,

    La brique "recherche dans flux" devrait te permettre de construite ta lookup, par contre il serait peut être plus performant de charger ton fichier de transcodification dans une table temporaire et utiliser la brique "Recherche dans base de données"
    Bonjour Patrick,

    Merci pour la réponse. Je revenais justement sur le post pour répondre à ma propre question et effectivement il s'agit bien de la transformation "recherche dans flux". En fait au début je ne la trouvais pas car je cherchais un nom contenant lookup.
    Dans la version en anglais la tranformation s'appelle Stream lookup.
    Par contre en l'utilisant j'ai eu quelques soucis. Comme mes informations de transco étaient stockées dans un fichier csv à l'exécution j'avais l'erreur suivante :
    There was a data type error: the data type of java.lang.String object +[VIDE] does not correspond to value meta [String(30)<binary-string>

    En fait pour résoudre le problème il faut décocher l'option "Conversion de type repoussée" dans la transformation d'extraction à partir du fichier csv (en anglais l'option s'appelle "Lazy Conversion?" je pense).

    En ce qui concerne les perf mon fichier de transco comporte moins de 5000 lignes. Donc ca va pour le moment.

    Merci en tous cas pour la réponse.

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

Discussions similaires

  1. réaliser une opération sans ouvrir mon executable
    Par law56100 dans le forum WinDev
    Réponses: 2
    Dernier message: 02/07/2008, 10h36
  2. Réponses: 2
    Dernier message: 27/10/2005, 11h33
  3. [FLASH MX] Comment réaliser une forme dentelée
    Par celina5880 dans le forum Flash
    Réponses: 4
    Dernier message: 04/11/2004, 17h48
  4. [TQuery]Réaliser une requete à partir d'une requete
    Par Eric SAULNIER dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/07/2004, 12h00
  5. [Builder] Effectuer une opération quand une resource a changé
    Par Satch dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 08/04/2004, 13h22

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