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 24/07/2007, 09h44   #1
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 817
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 817
Points : 1 091
Points : 1 091
Par défaut [Talend] Chargement qui gèle

Bonjour à tous,
J'essaye de charger les données retournées par une requête faite sur une base Oracle. Le problème est qu'à partir du 20ème enregistrement Talend ne fait plus rien : il ne charge plus de ligne et els secondes s'écoulent sans que j'ai d'erreurs.
J'ai essayé de créé un autre job avec la même requête mais le problème subsiste.
Ci-joint un screenshot du job, l'avertissement est un "schema is different from the query" généralement ça ne pose aps de problème et pour cette requête je n'arrive pas à faire la correspondance.

SVP, auriez vous des pistes pour m'aider à comprendre ce problème ?

J'utilise TOS v2.1.0 avec du code java.

Merci d'avance

Cordialement

Ben

edit : pas de problème avec les autres jobs
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 15h09   #2
Invité régulier
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 8
Points : 8
Pourriez-vous indiquer la requête que vous exécutez ?

Avez-vous essayé d'écrire dans un fichier ?
axlmnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 15h50   #3
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 817
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 817
Points : 1 091
Points : 1 091
Quand je remplace l'affichage de log par un fichier ça n'écrit rien (peut être car le job ne se termine pas...)par contre si je met une table avec commit every = 1 ça me fait les insertion dedans.

la requête est là :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
"select /*+rule*/
l.sigtie as SIGTIE, l.idtrn as IDTRN,  l.datexpprv as DATEXPPRV, 
l.codscl as CODSCL, l.camion as CAMION,  1 as COUNT,
l.codsoc as CODSOC,l.sigtra as SIGTRA,c.idobjcol as IDOBJCOL,
c.sigliv as SIGLIV,c.valzn2 as VALZN2,
   (select count(*)
 from   lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst = '5') as NB_PAL_COMPL,
(select count(*)
 from   lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst != '5') as NB_PAL_DETAIL,   
(select /*+ CHOOSE */ sum(qteunt/decode(qteunt3,0,qteunt,qteunt3))
 from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst != '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobjpere = lcol.idobj) as NB_COLIS_DETAIL_CAMION,
(select /*+ CHOOSE */ sum(qteunt/decode(qteunt3,0,qteunt,qteunt3))
 from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst = '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobj = lcol.idobj) as NB_COLIS_COMPL_CAMION,
(select /*+ CHOOSE */ sum(poids)
 from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst != '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobjpere = lcol.idobj) POIDS_DETAIL,
(select /*+ CHOOSE */ sum(poids)
 from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst = '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobj = lcol.idobj) POIDS_COMPL,
(select /*+ CHOOSE */ sum(lobjstk.volume)
 from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst != '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobjpere = lcol.idobj) VOLUME_DETAIL,
(select /*+ CHOOSE */ sum(lobjstk.volume)
 from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst = '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobj = lcol.idobj) VOLUME_COMPL,
   (select /*+ CHOOSE */ sum ( decode (QTEUNT5, QTEUNT, decode (QTEUNT3, 0,0, (QTEUNT/ QTEUNT3)))) 
   from   lobjstk, lcol
 where  lcol.codsoc = l.codsoc
   and  lcol.typtie = l.typtie
   and  lcol.sigtie = l.sigtie
   and  lcol.idtrn = l.idtrn
   and  lcol.codlnst != '5'
   and  lobjstk.codsoc = lcol.codsoc
   and  lobjstk.typtie = lcol.typtie
   and  lobjstk.sigtie = lcol.sigtie 
   and  lobjstk.idobjpere = lcol.idobj) NB_BOX
from ltrn l,
     (select l.codsoc, l.typtie, l.datexpprv, l.statut, l.codscl, l.codplntrn, l.camion, count(*) nbtrn
      from ltrn l
      where codsoc ='"+context.getProperty("soc")+"'
        and typtie = 'DEP'
        and statut = '8'
        and datmod='"+context.getProperty("datecharge")+"'
      group by l.codsoc, l.typtie, l.datexpprv, l.statut, l.codscl, l.codplntrn, l.camion
     ) ltrn_p,lcol c,lobjstk o
where l.codsoc = ltrn_p.codsoc
  and l.typtie = ltrn_p.typtie
  and l.statut = ltrn_p.statut
  and l.datexpprv = ltrn_p.datexpprv
  and l.codscl = ltrn_p.codscl
  and l.codplntrn = ltrn_p.codplntrn
  and l.camion = ltrn_p.camion
  and c.codsoc = l.codsoc
   and  c.typtie = l.typtie
   and  c.sigtie = l.sigtie
   and  c.idtrn = l.idtrn
   and  o.codsoc = c.codsoc
   and  o.typtie = c.typtie
   and  o.sigtie = c.sigtie 
   and  o.idobj = c.idobj
   and(l.datmod='"+context.getProperty("datecharge")+"' or c.datmod='"+context.getProperty("datecharge")+"' 
or o.datmod='"+context.getProperty("datecharge")+"')  
"
Malgrés les apparences elle s'exécute très rapidement (0.2 sec ^^) et si je fais un :
select count(*) from (la_requete), le log m'affiche bien 210 ce qui est le nombre d'enregistrements que je devrais charger.

Voici le contenu des lignes 20 et 21 :
40;13688;20070712;7; ;1;12;LECASUD;57200004011094300;584; ;0;8;654;(null);2134,355;(null);7,442867222;(null);(null)
40;13688;20070712;7; ;1;12;LECASUD;57200004011100300;584; ;0;8;654;(null);2134,355;(null);7,442867222;(null);(null)

grand merci pour votre aide

cordialement
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 10h19   #4
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 817
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 817
Points : 1 091
Points : 1 091
J'ai une piste !!
la même requête mais sans le bout
Code :
1
2
3
4
5
6
7
8
9
10
11
   (SELECT /*+ CHOOSE */ sum ( decode (QTEUNT5, QTEUNT, decode (QTEUNT3, 0,0, (QTEUNT/ QTEUNT3)))) 
   FROM   lobjstk, lcol
 WHERE  lcol.codsoc = l.codsoc
   AND  lcol.typtie = l.typtie
   AND  lcol.sigtie = l.sigtie
   AND  lcol.idtrn = l.idtrn
   AND  lcol.codlnst != '5'
   AND  lobjstk.codsoc = lcol.codsoc
   AND  lobjstk.typtie = lcol.typtie
   AND  lobjstk.sigtie = lcol.sigtie 
   AND  lobjstk.idobjpere = lcol.idobj) NB_BOX
fonctionne très bien.
Mais pourquoi ce bout fait planter Talend et pourquoi à la ligne 21 ? Là j'ai du mal :S

edit :
Si je remplace
sum ( decode (QTEUNT5, QTEUNT, decode (QTEUNT3, 0,0, (QTEUNT/ QTEUNT3))))
par
sum ( case when QTEUNT5=QTEUNT Then ( case when (QTEUNT3=0 or QTEUNT3 is null) Then 0 Else QTEUNT/ QTEUNT3 end) else 0 end)

Ca fonctionne nickel.

Désolé d'avoir créé ce post pour pas grand chose au final.

Problème signalé sur le forum officiel.
Benoit_Durand 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 12h35.


 
 
 
 
Partenaires

Hébergement Web