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 22/05/2007, 15h39   #1
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Par défaut Talend - Insérer des données si inexistantes - tUniqRow

Bonjour,

J'ai crée un job qui permet d'inserer dans des tables oracle des données provenant d'un fichier texte.

Le job prend en compte 1 tFileDelimited, 1 tMap (pour les transformations et la repartition des données dans les différentes tables) et plusieurs tOracleOutput.

Mon problème est que dans mon fichier il y a des doublons. J'aimerais faire une requete qui permet d'inserer les données si elles sont inexistantes sinon mettre dans une autre table ou dans un fichier les données existantes (temporairement pour voir si le job fonctionne correctement) .

Qui aurait une ébauche de solutions?

Merci d'avance.
szoubir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 00h04   #2
Membre à l'essai
 
Inscription : avril 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 24
Points : 24
Points : 24
Bonjour,

Différentes options permettent de répondre à votre question.
En voici quelques unes que vous pourrez adapter en fonction de votre contexte.
Vous pouvez, par exemple, insérer un tUniqueRow entre votre tFileInputDelimited et votre tMap.
Une autre idée peut être d'utiliser l'option l'action sur la table Update / Update Or Insert dans le tOracleOutput.


Cordialement,
Michaël.


.
mhirt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 15h19   #3
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Merci je vais essayer ca

Quelle est la différence entre insert or update et update or insert ?

J'ai aussi depuis peu un message d'erreur qui s'affiche :
Code :
1
2
3
4
 
java.sql.SQLException: Listener refused the connection WITH the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used BY the client was: IP:port:base
A quoi ca correspond? J'ai remarqué que des fois ce message n'apparait plus lorsque je ferme la base oracle (TOAD) alors qu'avant je pouvais tester en ayant toad ouvert et ca me faisait rien. QUi a deja eu ce type de probleme?

Merci d'avance
szoubir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 16h22   #4
Membre habitué
 
Avatar de GGGGG
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 143
Points : 143
C'est un probleme de Classpath il me semble.

Pour l'update/update et insert
soit mise a jour seulement
soit mise a jour et insertion des nouvelles lignes

GGGGG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 17h53   #5
Membre à l'essai
 
Inscription : avril 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 24
Points : 24
Points : 24
En fait l'ordre
"insert or update" ou
"update or insert" est une facilité qui permet principalement d'accélérer la performance de son job.

Si on a 1000 nouvelles lignes et 100 à updater, le insert or update sera plus performant, et inversement.

Michaël.
mhirt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 18h05   #6
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Ok je comprend mieux.
C'est à dire un probleme de classpath ?
szoubir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 14h40   #7
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Je reviens vers vous pour avoir plus de précisions sur le composant tUniqRow.

Peut on utiliser plusieurs tUniqRow relié à un seul tMap?

Je m'explique, j'ai une table qui contient un certain nombre de ligne et de colonne. Je souhaite repartir les informations dans plusieurs autres tables. Par exemple, les colonnes 2 et 3 dans la table A, les colonnes 4 et 5 dans la table B les colonnes 6 et 7 dans la table C et ainsi de suite.

Jusque la j'ai pas de problème ca marche bien. J'ai utilisé un composant tInputOracle relié à un tMap et le tMap relié à plusieurs tOutputOracle.

Ce job me rempli bien mes tables mais il y a beaucoup de doublons. Ce qui est normal (vu qu'on parcours la table et on repartit les informations).

Donc j'ai testé les 2 solutions possibles proposées ci-dessus mais avec quelques soucis.

J'ai essayé de changer la propriété "Action on Data". J'ai testé Insert & Update et Update & Insert. Mais dans l'un rien n'est ecris et dans l'autre aucun doublon n'est supprimé!

Ensuite j'ai testé la 2e possibilité en utilisant le composant tUniqRow. Mais la encore un problème.

Quand je crée un job avec un seul tUniqRow, ca marche nickel mais lorsque j'en met 2 ou 3 ca marche plus ou moins bien. C'est à dire si dans le premier tUniqRow qui est executé il trouve 3 enregistrements meme si il y en a plus, dans les autres tUniqRow il ne va ecrire que 3 enregistrements. Est-ce que c'est normal? SI oui pourquoi?

Sinon comment faire pour bien supprimer les doublons? Je dois obligatoirement le mettre apres le tMap je ne peux pas le mettre entre mon tInputOracle et le tMap (vu qu'il y a plusieurs tables de sorties).

Merci d'avance (en esperant m'être bien expliqué)
szoubir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 15h37   #8
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Pour illustrer mes questions précédentes, quelques copies d'ecran
J'ai executé trois fois le job en changeant l'ordre des tUniqRow
Images attachées
Type de fichier : jpg 1.JPG (30,6 Ko, 41 affichages)
Type de fichier : jpg 2.JPG (30,3 Ko, 35 affichages)
Type de fichier : jpg 3.JPG (32,5 Ko, 32 affichages)
szoubir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 16h01   #9
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Quelqu'un aurait il eu et resolu le même problème?
Merci d'avance
szoubir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2010, 12h22   #10
Membre du Club
 
Homme Slim
Analyste Programmeur
Inscription : janvier 2008
Messages : 108
Détails du profil
Informations personnelles :
Nom : Homme Slim
Localisation : Congo-Kinshasa

Informations professionnelles :
Activité : Analyste Programmeur

Informations forums :
Inscription : janvier 2008
Messages : 108
Points : 50
Points : 50
Bonjour
"pour cette partie J'ai essayé de changer la propriété "Action on Data". J'ai testé Insert & Update et Update & Insert. Mais dans l'un rien n'est ecris et dans l'autre aucun doublon n'est supprimé!"
"Insert & Update" ou Update & Insert: s'il ne trouve pas d'enregistrement il va les inséré, s'il en trouve il va les 'update', coe ils sont inchangé tu ne verras pas le changements! A aucun moment tu ne lui demande de supprimer les doubons

Pour ne plus avoir les doublons, éssaie d'abord de supprimée puis des les re-inséré!
slimlus 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 21h44.


 
 
 
 
Partenaires

Hébergement Web