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 07/09/2011, 13h51   #1
j6m
Membre du Club
 
Inscription : février 2006
Messages : 86
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 86
Points : 58
Points : 58
Par défaut comment gérer les rejets de chargement comme avec SQL*Loader

Bonjour,
Je vais peut-être en faire hurler certains... Je sais je raisonne "solution"... Je découvre Talend alors merci de votre compréhension.

Voilà le cas : je charge dans une table SQL Server des enregistrements de personnes qui me viennent d'un fichier csv. Le champ numéro de téléphone y est déclaré sur 15 car.
Or il y une ligne dans mon fichier de données où le tel fait plus (i.e. "0254****** - 3387". Il n'est donc pas chargé en base, mais Talend lui est content. Il considère que cet enregistrement a été chargé.
Ma question est :
comment puis-je mettre cet enregistrement "de côté" sur le même principe que les fichiers ".bad" de SQL*Loader?

J'ai rajouté un filtre "Catch output reject" mais encore une fois il n'y a pas de rejets pour Talend ; j'ai juste un message "Data truncation" dont je suppose qu'il concerne cette ligne. Et rien ne va dans la sortie "catch output rejects".

tFileInputDelimited --> row1 --> tMap --> tMsSqlOutput
|
Property Catch output reject = true

le tMsSqlOutput dit "1888 rows" mais en fait il y en a 1887 dans la table ;
le catch output rejects dit "0 rows".

Je pourrais rajouter une table avec des champs plus grands, bref faire le ménage en base de données, mais a priori je ne suis pas payé pour enrichir le MCD.
Auriez-vous une solution à me conseiller? Merci d'avance.
j6m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 14h10   #2
j6m
Membre du Club
 
Inscription : février 2006
Messages : 86
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 86
Points : 58
Points : 58
Par défaut euh je crois que j'ai trouvé

Finalement j'ai mis "StringHandling.LEFT(row1.TELEPHONE_GSM ,15)" et là je suis sûr que mon enr. ne sera pas rejeté.
j6m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h55   #3
Nouveau Membre du Club
 
Inscription : février 2010
Messages : 24
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2010
Messages : 24
Points : 34
Points : 34
Simplement en ajoutant une 2nde étape au traitement qui consisterait à aller lire le fichier .bad généré !
kojuo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 15h16   #4
Membre habitué
 
Homme Nicolas Vandenbergue
Conseil - Consultant en systèmes d'information
Inscription : janvier 2011
Messages : 88
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vandenbergue
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : janvier 2011
Messages : 88
Points : 112
Points : 112
Bonjour,

Ajoute un flux 'rejets' sur le tMSSqlOutput.
(clic droit sur le tMSSqlOutput, ligne, rejets -en dessus du Main-).

Si le 'Rejets' n'apparaît pas, va dans les 'Paramètres avancés' du tMSSqlOutput pour décocher 'Définir la taille des lots'
cf.
http://www.talendforge.org/forum/viewtopic.php?id=15045)

Sur le flux 'rejets', tu trouveras ta ligne en erreur car trop longue. Tu pourras ainsi effectuer ton traitement en erreur.
NicolasTT 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 22h20.


 
 
 
 
Partenaires

Hébergement Web