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 28/06/2007, 08h43   #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] exportation

Bonjour,

j'aurais voulu avoir confirmation que les scripts perl/java exportés avec talend sont compatibles linux.

Merci.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 09h41   #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,

les scripts perl/java exportés avec Talend sont compatibles Linux, il suffit juste d'avoir perl ou une machine virtuelle Java pas trop vieille installés.
D'ailleurs, dans la boîte de dialogue d'export d'un job, il est possible de choisir pour quel type d'OS générer les scripts : Windows et/ou Unix.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 09h55   #3
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
Génial ! (c'est d'ailleurs tout l'intérêt de java). Merci.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 10h04   #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
J'ai une autre petite question :
Je voudrais copier le contenu d'une table dans une autre (même structure).
Pour cela, j'ai 3 composants : tMySQLInput, tMap, tMysqlOutput

le problème et que je n'arrive à lister les champs uniquement dans le composant tMySQLInput, donc impossible de faire les liens.

J'ai raté quelque chose ?

J'ai déjà travaillé sur DataStage, et Talend semble être un excellent produit OpenSource.
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 10h25   #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
Si les champs peuvent être listés dans le composant tMySQLInput alors avec la démarche suivante, cela devrait fonctionner :
->éditer le schéma du tMySQLInput
->éditer la requête du MySQLInput
->clic droit sur tMySQLInput -> Row -> Main
->relier au composant tMap
->clic droit sur tMap -> Row -> New Output
->nommer cette liaison
->relier au composant tMySQLOutput
->double clic sur le composant tMap pour ouvrir l'éditeur
->glisser déposer les champs de l'entrée vers la sortie

Si la table de destination a exactement la même structure que la table source(même nom de colonnes et dans le même ordre) alors le composant tMap est ici inutile.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 10h31   #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
[edit] c'est bon en fait je n'avais aps créé de metadata ^^

Merci de votre réponse, mais il y a un truc que je ne comprends pas : Il fait saisir à la main tous les champs / clés primaires / types ???
parce que j'ai plus de 600 champs au total...
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 10h41   #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
J'en ai bien peur si toutes les propriétés sont du type Built-In mais je n'en suis pas certain à 100%.
Enfin pour la requête il y a l'éditeur graphique qui permet de le faire assez vite par contre pour le schéma je pense qu'il faudra le faire tout seul manuellement.
Par contre en Repository il n'y a pas besoin de tout saisir manuellement car Talend peut détecter les tables et leurs champs d'une base de données automatiquement.
Pour cela il faut aller dans Metadata, Db Connections et créer une connexion à la base souhaitée. Une fois la connexion créée, il faut faire un clic droit dessus puis Retrieve Schema.
Ainsi, en mettant les propriétés sur Repository, il n'y aura pas besoin de saisir le schéma manuellement.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 11h24   #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
Merci beaucoup de votre réponse.
j'ai réussi et pour l'instant tout va bien
Maintenant je voudrais transférer uniquement les ID > 3
J'ai ajouté dabs le tMap un "filter condition" et j'ai saisis à l'intérieur row1.ID_SOURCE=3
Il m'affiche alors : Error on row1.ID_SOURCE : Type mismatch. cannot convert from Int to boolean.

Mais je ne veux pas le convertir en booléen moi ! ^^

Je n'ai rien trouvé à ce sujet dans la doc, mis à part qu'il fallait respecter la syntaxe du langage choisi (ici java).
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 11h39   #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
Je ne sais pas si le problème vient de cela mais en tout cas il y a une erreur de syntaxe car l'opérateur d'égalité n'est pas '=' mais '=='.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 14h17   #10
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
Super, j'ai bien avancé.

En revanche, est-on obligé de créer un tMySQLInput par table ?
Peut-on sauvegarder la configuration, pour la réutiliser dans ce cas ? (car si on a 50 tables et que le mot de passe change, il faut refaire tous les tMySQL Input / output)

Merci.


EDIT : J'ai répondu tout seul à ma question ^^ possible via le repisotory
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 15h47   #11
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
Est-il possible de faire un rollback en cas d'erreur ?
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 15h58   #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
Très bonne question car c'est une fonctionnalité des plus importantes à mon sens.
je cherche également à le faire malheureusement je ne pense pas que dans la version actuelle de Talend cela soit possible à moins de tenter de développer soi-même un composant le permettant, ce qui risque d'être assez ardu vu que les développeurs ne l'ont toujours pas fait et qu'ils ne l'avaient déjà pas fait dans la version 1 car c'était difficile à implémenter (cf le forum officiel).
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 11h43   #13
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
Existe-t-il d'autres outils ETL OpenSource qui permettraient de réaliser cette opération ?

Je suis en train de créer un tableau comparatif des différents outils ETL OpenSource (pour l'instant Octopuss, Talend, Clover.ETL)
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 12h02   #14
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
J'ai également testé Kettle mais je ne me souviens pas qu'il permet de le faire. Je ne pense pas qu'il existe beaucoup d'outils ETL Open Source le permettant .
Vous devriez peut-être poser la question dans un nouveau post avec un titre évocateur pour obtenir plus de réponses.

[EDIT]
Une bidouille consisterait à mettre un nombre de lignes très grand dans la propriété Commit every (dans Talend ou dans Kettle). Mais ce n'est pas très élégant et il faut être sûr d'avoir moins de lignes à transférer que la valeur affectée à la propriété.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 14h26   #15
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
D'après la doccumentation Fr, voici ce que j'ai pu retirer du "Commit every" :

Citation:
Commit every : Nombre de lignes à inclure dans le lot avant de
commencer l’écriture de la base. Cette option garantit
la qualité de transaction (cependant pas de rollback) et
surtout une meilleure performance des exécutions
Donc visiblement impossible de faire un rollback. J'ai créé un topic dédié mais je n'ai pas encore beaucoup de réponse
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 00h51   #16
co2
Membre émérite
 
Avatar de co2
 
Inscription : mai 2002
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 182
Points : 823
Points : 823
Envoyer un message via Skype™ à co2
Citation:
Envoyé par SebastienM
D'après la doccumentation Fr, voici ce que j'ai pu retirer du "Commit every" :



Donc visiblement impossible de faire un rollback. J'ai créé un topic dédié mais je n'ai pas encore beaucoup de réponse
En TOS 2.1.0 tu peux gérer via des composants dédiés (cf. screenshot) tes commit et rollback

co2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 14h46   #17
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
Est-il possible de vider les tables MySQL dans un job (truncate), mais sans insertion ?
J'ai réussi à la faire via un script sql et un launcher bat, mais ce n'est pas très pratique (nécessite la présence des binaries MySQL).
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 15h09   #18
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
Il faut utiliser le composant tMySqlRow avec lequel on peut saisir n'importe quelle requête (non paramétrée cependant, bien qu'il est très facile de modifier un tel composant pour pouvoir faire des requêtes paramétrées).
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 15h30   #19
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 e votre réponse, effectivement cela fonctionne bien, mais est-il possible de vider plusieurs tables avec un seul composant ?
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 16h06   #20
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 n'ai jamais essayé mais peut-être qu'en enchaînant les requêtes dans la propriétés Query du composant on pourrait vider plusieurs tables. Avez-vous essayé ?
bouvda 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 16h47.


 
 
 
 
Partenaires

Hébergement Web