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 20/08/2007, 16h42   #1
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
Par défaut [Talend]-Utilisation de tPostgresqlRollback

Bonjour,

Je viens de découvrir dans la dernière version java de talend le composant tPostgresqlRollback qui devrait bien me servir.

Par contre je ne comprend pas comment il marche...

Est ce que quelqu'un saurait ce qu'il vaut mettre dans la "component list" ?
Est ce qu'on peut le mettre derrière un tPostgresqlOutput et le relier avec un "runiferror"?


Merci
lolotte35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 08h27   #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
Citation:
Envoyé par lolotte35 Voir le message
Bonjour,

Je viens de découvrir dans la dernière version java de talend le composant tPostgresqlRollback qui devrait bien me servir.

Par contre je ne comprend pas comment il marche...

Est ce que quelqu'un saurait ce qu'il vaut mettre dans la "component list" ?
Dans component list il faut sélectionner le composant tPostgresqlConnection pour lequel le rollback doit être effectué. Il faut donc au préalable utiliser un tPostgresqlConnection puis dans les différents composants utilisés par la suite bien indiqué que c'est cette connexion qu'il faut utiliser (par exemple pour un tPostgresqlOutput il faut cocher Use an existing connection).

Citation:
Envoyé par lolotte35 Voir le message
Est ce qu'on peut le mettre derrière un tPostgresqlOutput et le relier avec un "runiferror"?
Oui je pense qu'il peut être utilisé de la sorte.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 09h31   #3
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
Bonjour,

et le tPostgresqlConnection il fait quoi?
il vérifie juste la connection ou alors il vérifie qu'il y a eu une erreur lors de l'utilisation de cette connection par exemple dans une insertion?
lolotte35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 09h39   #4
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 lolotte35 Voir le message
Bonjour,

et le tPostgresqlConnection il fait quoi?
il vérifie juste la connection ou alors il vérifie qu'il y a eu une erreur lors de l'utilisation de cette connection par exemple dans une insertion?
Le composant tPostgresqlConnection établit une connexion à une base de données. Il permet de "factoriser" la connexion. En effet si ce composant n'est pas utilisé, chaque tPostgresqlInput, tPostgresqlOutput ou encore tPostgresqlRow va établir à chaque fois une nouvelle connexion à la base.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 10h02   #5
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
C'est super bien comme composant!
car à chaque fois que je changeais de base de données il fallait que je le modifie dans mes 25 composant postgres!
lolotte35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 11h42   #6
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
En effet ces composants on l'air sympa.
Ils sont présents dans la version 2.2.0M1 ? car ils ne sont pas dans la 2.1.2 que je viens de télécharger

@Lolotte : Je te conseil de mettre tes données de connexions dans un fichier texte, puis de charger ce fichier au début de ton job et de mettre ces données dans un contexte. Dans tes composants de BD tu remplies les champs avec tes variables de contexte. Comme ça si tu changes de paramètres de connexion tu n'as qu'à modifier un fichier texte.
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 12h27   #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 Hebus_Beer Voir le message
En effet ces composants on l'air sympa.
Ils sont présents dans la version 2.2.0M1 ? car ils ne sont pas dans la 2.1.2 que je viens de télécharger
En effet ils sont dans la version 2.2.0M1.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 13h23   #8
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
J'ai fait un context de connexion pour mes bases oracle, mais pas pour mes bases postgres c'est vrai.

En même temps c'est tellement long de mettre :
((String)context.getProperty("host")) pour le host, le database, le serveur....


Alors que là avec le composant connexion je coche et c'est fini....
sinon je pourrai simplement faire un context m'en servir dans mon tPostgresqlConnection et dans les autres composants input et output cocher l'utilisaton de mon tPostgresqlConnection.

Je crois que je vais faire ça.
lolotte35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 13h32   #9
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
En fait, là j'ai 9 input et 10 output et 8 Row (dans lesquels je fais des update des index dans une table de référence, où il y a la prochaine valeur de l'index à utiliser) pour postgres.
Je voudrai commiter uniquement lorsque le dernier row s'est normalement executé.
Car sinon en cas de problème lors des insertions, j'ai des données partielle ou qui ne sont présente que dans certaine table.
En plus, puisque je ne mets les index à jour qu'à la fin dans la table de référence, si le programme plante avant la MAJ, au moment d'une nouvelle insertion il essaye d'attribué un index déjà utilisé. et ça fait pleins d'erreur!


Alors j'ai mis
tPostgresqlConnection suivi de mon premier input

où dois je mettre mes commit et rollback pour qu'il annule tout en cas d'erreur et qu'il commit tout si pas d'erreur?

Je pensais derrière le dernier row, mais je me dis que s'il n'est pas arrivé jusque là ça ne sert à rien....
lolotte35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 13h49   #10
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
Pour le Commit il faudrait le placer après le dernier Row, quant au Rollback je pense que chaque Input, Output et Row devraient y être reliés par un Run if error.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 15h27   #11
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
ça fonctionne super bien!

alors j'ai mis mon
tPostgresqlConnection --> tPostgresqlinput -->tmap -->
tPostgresqlOutput1->if error-->tPostgresqlRollback
-->tPostgresqlOutput2->if error-->tPostgresqlRollback
-->tPostgresqlOutput3->if error-->tPostgresqlRollback
-->tPostgresqlOutput4->if error-->tPostgresqlRollback
->if ok -->tPostgresqlCommit


Par contre j'ai mis 1 seul composant tPostgresqlRollback relié par plein de run if error, ça ne te choque pas? ou alors tu aurais mis 1 rollback par liaison?
lolotte35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 15h31   #12
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 lolotte35 Voir le message
Par contre j'ai mis 1 seul composant tPostgresqlRollback relié par plein de run if error, ça ne te choque pas? ou alors tu aurais mis 1 rollback par liaison?
Cela ne me choque pas, c'est même la meilleure façon de faire selon moi : cela évite de générer n fois le même code.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 15h36   #13
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 109
Points : 37
Points : 37
merci pour tout bouvda et Hebus_Beer
lolotte35 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 09h11.


 
 
 
 
Partenaires

Hébergement Web