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 12/07/2007, 11h24   #1
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Par défaut Talend - tMySQLOutput

Bonjour,

Je 'narrive aps à insérer mes lignes dans une base cible (tMySQLInput - tMap - tMySQLOutput) ; le schéma est correct, et lorsque j'insère dans un fichier csv ça fonctionne très bien (en utilisant le même schéma) .

L'erreur est la suivante :

Citation:
Exception in component tMysqlOutput_16
Exception in component tMysqlOutput_16
Exception in component tMysqlOutput_16
Exception in component tMysqlOutput_16
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID_NUM_NATIONAL=62' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:353)
at com.mysql.jdbc.Util.getInstance(Util.java:336)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2938)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1601)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1710)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2436)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1402)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1694)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1608)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1593)
at pmi_stat.job3d.Job3d.tMysqlInput_12Process(Job3d.java:10492)
at pmi_stat.job3d.Job3d.tMysqlInput_1Process(Job3d.java:920)
at pmi_stat.job3d.Job3d.tFileList_1Process(Job3d.java:702)
at pmi_stat.job3d.Job3d.tRunJob_1Process(Job3d.java:473)
at pmi_stat.job3d.Job3d.main(Job3d.java:16790)
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 15h11   #2
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Pour creusuer un peu plus, j'ai des difficultés à gérer ce type de schéma :



La table jaune est insérée indépendemment lors d'un autre job.

J'utilise un tMap avec les mêmes tables en entrée et en sortie (ODS_Instance, ODS_L_instance_nature).
Je voudrais insérer tout le contenu de la table instance, ainsi que le contenu de la table L_instance_nature lié à l'instance.
Je fais donc un lien de ODS_Instance.ID_Instance ODS_L_instance_nature.ID_instance.
Quels sont les paramètres à utiliser (unique match, all matches, Inner Join...)
Inner join ne va insérer dans instance que celles qui se retrouvent dans L_instance nature ?

merci.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 15h41   #3
Membre éclairé
 
Avatar de bouvda
 
Inscription : octobre 2005
Messages : 252
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2005
Messages : 252
Points : 312
Points : 312
Envoyer un message via MSN à bouvda
Citation:
Inner join ne va insérer dans instance que celles qui se retrouvent dans L_instance nature
En effet, INNER JOIN provoquera le comportement que vous indiquez.
Ensuite, il faut choisir le paramètre All matches
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 16h08   #4
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Pour certaines tables de liens (CIM), j'obtiens un message d'erreur du style "Error in mysql syntaxe WHERE ID_MACHIN=0 AND ID_TRUC=0"
Effectivement je n'ai pas de ligne comportant des 0, mais comment le forcer à ne pas s'arrêter ou à ne pas lier une ligne avec des 0 ?

[EDIT : le message en question]

Citation:
Exception in component tMysqlOutput_8
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID_SLIQ=0 AND ID_LIQAPR=0' at line 1
Quand je redirige sur un fichier csv, ça ne pose pas de soucis
Mais j'ai quand même un truc bizarre :

"0","0"
"1","3"
"0","0"
"0","0"
"0","0"
"0","0"
"4","1"
"4","4"

déjà les " alors que c'est le type entier (mais bon c'est peut être normal) ensuite toutes ces lignes de 0 qui n'ont pas lieu d'être...
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 08h08   #5
Membre éclairé
 
Avatar de bouvda
 
Inscription : octobre 2005
Messages : 252
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2005
Messages : 252
Points : 312
Points : 312
Envoyer un message via MSN à bouvda
Bonjour

Citation:
Envoyé par SebastienM
déjà les " alors que c'est le type entier (mais bon c'est peut être normal)
Oui, c'est normal car le composant tFileOutputCSV dispose de la propriété Text Enclosure qui par défaut vaut ". Pour ne plus les avoir, il faut utiliser le composant tFileOutputDelimited.

Citation:
Envoyé par SebastienM
ensuite toutes ces lignes de 0 qui n'ont pas lieu d'être...
Lors de l'exécution de votre job, affichez les statistiques pour voir le nombre de lignes lues dans la base et écrites ensuite, pour savoir quel composant génère ces lignes.
C'est peut-être un bug car j'ai eu le même type de problème avec le composant tUnite, je l'ai signalé à Talend et cela devrait être corrigé dans la version 2.1 finale.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 08h45   #6
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Youpi ! la version 2.1 finale est sortie aujourd'hui :
http://www.talend.com/download.php

Cela dit j'ai toujours le même soucis.
Pour répondre à votre question je suis censé avoir 3 lignes dans la table cible ; alors que j'ai 7 lignes avant le tMap et 8 en sortie
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 13h52   #7
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
J²e me permet de relancer le sujet, car j'ai toujours la même erreur :

Code :
1
2
3
Exception IN component tMysqlOutput_2
(...)
You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'WHERE ID_NUM_NATIONAL=0' at line 1
Je n'arrive pas à corriger ce rpoblème ; j'ai une table au même niveau avec des champs en plus (celle-ci ne contient que la cla primaire ID_NUM_NATIONAL) et cela fonctionne.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 16h17   #8
Membre éclairé
 
Avatar de bouvda
 
Inscription : octobre 2005
Messages : 252
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2005
Messages : 252
Points : 312
Points : 312
Envoyer un message via MSN à bouvda
Quels sont les différents paramètres (Action on data, ...) du ou des composants tMySqlOutput qui ne fonctionnent pas?
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 17h24   #9
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
J'ai un petit peu avancé aujourd'hui.
A priori, ce qui lui gêne c'est de dupliquer une valeur (comme si il l'insérait en même temps).
J'ai trouvé une parade : dans le tMap, côté Output, je rajoute la condition !=0 via l'expression editor.

Je ne marque pas le topic comme résolu étant donné que je n'ai pas testé cette technique à fond.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 18h12   #10
Invité régulier
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 8
Points : 8
Il s'agit bien d'un bug du tMap qui est corrigé depuis peu pour la 2.2M1.

Voir le bug http://www.talendforge.org/bugs/view.php?id=1562.
axlmnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h53.


 
 
 
 
Partenaires

Hébergement Web