|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() |
Bonjour à tous,
J'ai un problème lors que j'essaye d'executer une alimentation d'un fichier CSV contenant 600 000 lignes vers une table Oracle. Le traitement s'arrete au bout de 3 min avec l'erreur suivante: Code :
Avec moins de ligne ca marchait tres bien (100 000 lignes). De plus ce qui est bizarre c est que j'ai configuré pour faire des commit toutes les 300 000 lignes ( car il plantait au bout de la 369000 eme ligne) mais il ne commit rien Merci pour votre aide |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 816 ![]() |
On pourrait avoir un screenshot du job svp ?
car là j'ai du mal à comprendre où est-ce qu'il charge les données en mémoire. En mettant le commit a 10 000 ?
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() |
alors en mettant un comit à 10 000 il plante aussi avec une autre erreur mais il insere bien les 10 000 ligne en bases mais apres il arrete
voilà le screen copy en PJ et la nouvelle erreur avec un commit tous les 10 000 est celle-ci: Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 816 ![]() |
Bug connu chez Talend http://jira.talendforge.org/browse/TDI-17987
il faut désactiver l'exécution parallèle dans les paramètres avancés du composant. Ca fonctionne maintenant ?
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() |
de quel composant? et il faut aller ou ?
Merci encore il y a une copie d ecran avec les paramètre avancés du composant Oracle en PJ |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Nicolas Inscription : janvier 2011 Messages : 378 ![]() |
C'est au niveau du job dans le 1er onglet en bas, dans le menu extra.
Une remarque pour ton job tu devrais essayer d'utiliser le composant tOracleOutupBulkExec qui devrait mieux adapté au vue de ton job. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 816 ![]() |
Cette option n'est pas dans la version gratuite de Talend en effet.
Dans le JIRA, il y a "when I change commit every from 10000 to 1000,the job can work, but it isn't a solution". vous pouvez essayer de passer le commit à 1000 mais c'est moche.
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Et en diminuant la valeur Batch Size de l'option Use Batch Size, est-ce que cela résout le problème ?
|
|
|
00
|
|
|
#9 | ||
|
Candidat au titre de Membre du Club
![]() |
salut Benoit
J'ai suivi tes conseils et j ai modifié la target en OracleOutputBulkExec et là effectivement ca plante plus d'ailleurs je peux les 647000 ligne affichés dans le Worflow, sans la moindre erreur en revanche il m a rien inséré en base! j'ai regardé les options avancées du composant mais je vois pas pourqupoi il m a rien inséré tu trouveras une screen copy en PJ Code :
|
||
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() |
salyut Dev Nico
je vois ouu se trouve l'option Batch Size? j ai été partout dans le menu "Préférence" mais je vois pas |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 816 ![]() |
En remplaçant le tOracleOutput par un tOracleOutputBulkExec le fonctionnement est très différent. Il faudrait voir si le sql loader n'a pas des logs de rejet.
Le job doit pouvoir fonctionner avec un simple tOracleOutput, avez-vous essayé avec ce composant et un commit à 1000 ? Si vous n'utilisez pas les rejets, n'oubliez pas de cocher la case "terminer en cas d'erreur" dans le composant.
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#12 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
|
|
|
00
|
|
|
#13 | ||
|
Candidat au titre de Membre du Club
![]() |
Je viens de faire comme tu m'as dit:
j'ai modfié le composant pour remettre un OracleOutput classique en mettant commit tous les 1000 (il m a inséré 2000 ligne en base et boum erreur: Code :
|
||
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() |
DevNico,
je vois pas cette option car j'ai la version gratuite de TALEND je pense |
|
|
00
|
|
|
#15 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Non, elle est bien disponible dans le TOS.
En français, ça doit être dans l'onglet Propriétés avancées du component, vers le bas. C'est 'Taille du lot', à coté de 'Définir la taille des lots'. Nicolas |
|
|
10
|
|
|
#16 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 816 ![]() |
C'est clairement un bug de Talend, visiblement avec la version 10g d'Oracle.
Ils sont au courant du problème mais n'ont pas l'air très réactifs. En plus du jira cité plus haut il y a des messages sur le forum : http://www.talendforge.org/forum/viewtopic.php?id=5931 http://www.talendforge.org/forum/viewtopic.php?id=17966 Mais pour le contourner je ne vois que la solution proposée par Nicol_, utiliser le bulk. Par contre c'est limité comme solution de contournement. Ou tester avec un commit every très gros genre 1000000.
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() |
oui tu as raison Nico il y a bien ce paramètre de taille de lot
et je dois l'augmenter c'est ca? Je vais tester apres, là j'ai mis un cimmit tous les 1 ligne et ca tourne mais c est pas rapide sachant qu il ya 647000 ligne |
|
|
00
|
|
|
#18 |
|
Membre expérimenté
![]() Nicolas Inscription : janvier 2011 Messages : 378 ![]() |
Personnellement je n'ai pas rencontré ce problème et j'utilise oracle 10g. Sinon le bulk vu la simplicité de ton job doit fonctionner sans problème, par contre ce composant nécessite une configuration plus poussée. Comme tout est écrit dans un fichier il faut que le séparateur utilisé ne rentre pas en concurrence avec du contenu...
Bref il faut regarder les log qui sont dans le répertoire du fichier tampon. |
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() |
SUPER NICO !!!
Ca marche nikel !! j ai mis une taille de lot à 1000 000 et tous est passé et inséré avec des commit tous les 100 000 Merci !!!! |
|
|
00
|
|
|
#20 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Ah... Etrange.
Je pensais que tu allais le diminuer en fait |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com