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 01/08/2007, 17h11   #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] Stockage temporaire

Bonjour,

Est-il possible de rediriger la sortie d'un tMap dans un espace temporaire (sans passer par un fichier) ?
Car je dois faire plusieurs liens en entrée et agréger les données en sortie, et je ne vois pas d'autres méthode.

merci.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 08h14   #2
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, il y a des composants qui permettent de remplir et de lire un tableau en mémoire, je ne les ai jamais testés mais je pense que tu pourras faire ce que tu veux avec.
Par défaut, il sont cachés et ne sont donc pas accessibles par défaut dans la palette. Pour les afficher, il faut aller dans Window -> Preferences -> Talend -> Designer et cocher Display hidden components(need restart) et comme indiqué il faut ensuite redémarrer Talend.
Tu verras alors dans la catégorie Misc de la palette deux nouveaux composants :
- tArray : remplit un tableau
- tArrayIn : lit un tableau

Cependant, je pense qu'il faut faire attention car s'il y a énormément de données il faut beaucoup de mémoire. Enfin il y a le temps de voir venir quand même.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 08h59   #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
Je viens de tester et j'ai rencontré un problème. Les classes utilisées pour les lignes des tableaux ne sont pas les mêmes pour tArray et tArrayIn.
J'ai donc modifié rapidement le composant tArrayIn : il faut donc maintenant lui ajouter le nom de la classe. Le nom de la classe pour tArrayIn doit être le nom du lien entrant de tArray suivi de Struct.
Par exemple :

Code :
1
2
3
4
5
6
7
8
9
 
tRowGenerator--------------->tArray
         |             row1
         |
         |ThenRun
         |
         v
     tArrayIn--------------->tLogRow
                        row2
ici la propriété Class de tArrayIn doit prendre : row1Struct

(Le lien pour télécharger le composant se situe un peu plus loin dans la discussion)
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 10h39   #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
Merci de ta réponse et de tes modifs .
Maintenant je n'arrive aps à faire marcher le tdenormalize pour concaténer mes champs :il me dit qu'in ne peut pas convertir un entier en string et inversement.
Je ne comprends pas trop quel schéma il faut mettre en entrée et en sortie...
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 11h37   #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
Citation:
Envoyé par SebastienM
Merci de ta réponse et de tes modifs .
De rien, ce n'est pas grand chose comme modifs .

Citation:
Envoyé par SebastienM
Maintenant je n'arrive aps à faire marcher le tdenormalize pour concaténer mes champs :il me dit qu'il ne peut pas convertir un entier en string et inversement.
Je ne comprends pas trop quel schéma il faut mettre en entrée et en sortie...
Dans ce cas, il faut se débrouiller pour avoir des String en entrée du tDenormalize en passant par un tMap ou un tJavaRow par exemple où les champs de la table en sortie seraient de la forme :
Code :
output.champ1 = input.champ1.toString();
si input.champ1 est un objet mais n'est pas de type String.

En ce qui concerne le schéma de sortie, il s'agit du même que le schéma en entrée (donc il ne contient que des champs de type String) sauf que dans les champs agrégés (ceux qui ne sont pas utilisés dans la propriété Group By) il y a une concaténation des valeurs de tous les enregistrements.

Par exemple :
- si en entrée on a:
Code :
1
2
3
4
 
ID | CHAMP1 | CHAMP2
1  |    3   |    2
1  |    5   |    2
- en sortie on aura :
Code :
1
2
3
 
ID | CHAMP1 | CHAMP2
1  |   3;5  |   2;2
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 11h53   #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
Effectivement c'etait un problème de type.

J'obtiens le contenu suivant :
ID_NUM_NATIONAL;ID_SERVICE;ID_SERVICE_PRO;ID_SERVICE_GEST
12549;15;0;15
12548;15;0;15
12523;15;0,5;10,16
12524;15;0;15
12525;15;0;15

mais je voudrais avoir juste cela :
ID_NUM_NATIONAL;SORTIE
12549;15,0,15
12548;15,0,15
12523;15,0,5,10,16

Est-ce possible ?

Merci.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 12h00   #7
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:
Envoyé par SebastienM
J'obtiens le contenu suivant :
ID_NUM_NATIONAL;ID_SERVICE;ID_SERVICE_PRO;ID_SERVICE_GEST
12549;15;0;15
12548;15;0;15
12523;15;0,5;10,16
12524;15;0;15
12525;15;0;15

mais je voudrais avoir juste cela :
ID_NUM_NATIONAL;SORTIE
12549;15,0,15
12548;15,0,15
12523;15,0,5,10,16

Est-ce possible ?
En enchaînant sur un tMap ou tJavaRow c'est possible :
Code :
1
2
3
 
output.ID_NUM_NATIONAL = input.ID_NUM_NATIONAL;
output.SORTIE = input.ID_SERVICE +","+ input.ID_SERVICE_PRO +","+ input.ID_SERVICE_GEST;
Par contre tu risques d'avoir des problèmes avec les nombres à virgule (enfin à mon avis tu n'as que des entiers mais on sait jamais) si tu mets des virgules comme séparateurs.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 12h44   #8
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
c'est justement ce que j'etais en train de faire ^^ tJavRow power
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 08h52   #9
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,

le composant tArrayIn par défaut de Talend est utilisé dans les tAggregateRow. Par conséquent les modifications que j'ai apportées à ce composant causent une dysfonctionnement des tAggregateRow. Pour éviter ce désagrément, j'ai renommé le composant afin qu'il puisse cohabiter avec le tArrayIn par défaut. Voici la nouvelle version :my_tArrayIn.zip
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 14h57   #10
Membre à l'essai
 
Inscription : avril 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 24
Points : 24
Points : 24
Bonjour,

Bouvda, le composant tArray modifié est un bon moyen.

Je me permet simplement de signaler qu'il existe également les composants tHashInput / tHashOutput dans les composants cachés qui peuvent certainement répondre à cette problématique.

Michaël.
mhirt 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 04h07.


 
 
 
 
Partenaires

Hébergement Web