Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2008, 08h28   #1
Invité de passage
 
Inscription : juin 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 2
Points : 1
Points : 1
Par défaut controlle des champs avant insertion dans la base de donnees avec talend

Bonjour tout le monde je suis débute dans l'utilisation de talend , et j'ai un soucis en ce moment; je vous explique mon problème.
je voudrais inserer des données d'un fichier dont les champs sont délimités par des points virgule vers une base de données Oracle. pour ce faire j'utilise un tinputDelimited, un Tmap et un tOracleOutput. l'insertion se passe sans problème .
je voudrais maintenant faire des tests ou des controls sur les champs avant l'insertion dans la base de données.
Exemple je dois inserer un nouveau client dans la base et avant l'insertion je dois verifier que le mode de paiement du client correspond à un mode de paiement autorisé, ou verifier que le groupe du client à inserer correspond à un groupe qui est existe ou est autorisé dans la base de données.

en gros comment faire pour mettre en place des controls avant insertion.
j'ai deja fait des recherches .
du genre
(select count(1) from mode_reglement, client where client.champ-a-inserer= mode_reglement. champ-a-verifier) !=0
si c'est different de 0 alors la valeur à inserer existe et est autorisée à être inserée.

-avec tfilterrow je ne peux que mettre un filtre (champ superieur inferieur miniscule,...)
- avec toracleoutput c'est deja mieux car j'ai dans Advanced Settings j'ai un soucis avec Sql expression, je ne sais pas comment l'utiliser (sil faut appeler une fonction ou requete sql directement).

-avec des expressions regulieres dans tmap mais j'ai peu de connaissance dans l'utilisation des expressions regulieres.
-en créant une routine(je ne l'ai jamais fait est ce une idée à suivre?)

Si je peux avoir des pistes pour avancer ca m'aiderait vraiment pour mon projet, ou toute autre information sur l'utilisation des routines ou des expressions regulieres.
je vous remercie d'avance
tchanga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 10h28   #2
Membre habitué
 
Inscription : mai 2006
Messages : 97
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 97
Points : 118
Points : 118
Envoyer un message via Skype™ à smallet
Le tFilterRow est une bonne solution, car par rapport aux autres (expression regulières ou advanced settings), le job parait plus clair. En ouvrant le job, on voit tout de suite que les données seront filtrées.
Le tJoin (ou le mapper) permet de faire une jointure avec une autre source (pour vérifier que le groupe est autorisé par exemple).
smallet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 10h48   #3
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 38
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 38
Points : 37
Points : 37
Bonjour,

en effet tu peux utilisé des lookup pour des jointures ou plutot des filtres avec des expressions ternaires.

l'advanced setting du tOracleOutput permet d'ajouter des colonnes supplémentaire entre autre les séquences pour les "id" auto-incrémenté.

<<Les bases de données Oracle utilise en tag NEXTVAL pour réaliser une séquence (option auto_increment de MySql). Sur tOracleOutput, il suffit d'ajouter une colonne dans le Advanced settings avec l'expression SQL « EMP_SEQ.NEXTVAL » pour la colonne « ID » de la base avec une colonne intermédiaire TALEND « EMP_SEQ_ID », position « Before » et reference collumn « ID ».>>


Je ne suis pas en mesure de te dire si tu peux utiliser des requêtes SQL directement mais comme tu le vois, il est possible d'ajouter des colonnes supplémentaires et de les alimenter avec des données.

Jérémie
jemleweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2008, 16h56   #4
Invité de passage
 
Inscription : juin 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 2
Points : 1
Points : 1
Merci à vous pour vos réponses finalement jai utilisé des routines java avec la déclaration des fonctions qui vont faire des tests ; ces fonctions seront appelées dans mon job via un javarow.
si je trouve une autre solution je le posterai sur le forum , merci encore
tchanga est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h33.


 
 
 
 
Partenaires

Hébergement Web