Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL
ETL Le Forum d'entraide ETL (Extract Transform Load) et Datawarehouse : DataStage, SunOpsis, Data Integrator, Informatica, OWB, Data Manager, Talend Open Studio,...
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 02/05/2008, 16h20   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Par défaut Paramétrages des bases de données à l'éxécution pour Talend et Pentaho

Bonjour,

Je réalise actuellement un comparatif entre Talend et Pentaho et je voulais avoir quelques précisions.
Je dois réaliser un Datamart pour un client dont je ne connais pas le type de DB (MySQL, Oracle ...) , l'url de la DB ... car le produit qu'on lui livre est paramétrable et multibase. Je veux donc savoir comment peut se gérer ce problème sous Talend et Pentaho.
Sous Pentaho j'ai l'impression que c'est assez simple et qu'il suffit juste de remplacer les bonnes valeurs dans les balises correspondant à la connexion. ça peut être un programme qui demandera aux clients les paramètres et les complétera dans le fichier au format XML. Pensez-vous que ce soit une bonne idée ?
Pour Talend je ne vois pas d'autres solutions que de modifier le code généré ce qui m'a l'air plus couteux et compliqu".
Pensez-vous qu'il y ait une solution plus simple pour ce cas ?

J'espère avoir été le plus clair possible et vous pourrez m'aider.
Merci d'avance pour vos réponses.
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 17h18   #2
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 819
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 : 819
Points : 1 093
Points : 1 093
Pour talend le plus simple doit être de mettre tous tes donnes de connexion dans un fichier de conf. Et au début de tes jobs maitre tu lis ces fichiers de conf et chage ces paramètres dans des variables de contexte que tu transmets ensuites a tes jobs fils.

Il y a d'autres méthode en stockant les données dans une table de paramétrages....
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 17h51   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Merci pour ta réponse.
Mais comment tu lirais les données de ton fichier de conf grâce à un tJava ?
Je n'ai pas trop compris ce que tu veux dire par tables de paramétrages ?

Sinon personne n'a une idée pour Pentaho Kettle ?
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 10h52   #4
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 819
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 : 819
Points : 1 093
Points : 1 093
Tu lis le fichier avec un tDelimitedFileInput ave ":" pour separator
le fichier doit être sous la forme :

server : 172.92.80.23
port : 1569
...

Tu envois le contenu de ce fichier directement dans un tContextLoad

Pour la table de paramétrage en bd c'est strictement la même chose sauf que tu mets les données dans une table au lieu d'un fichier.
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 22h02   #5
Membre habitué
 
Inscription : avril 2007
Messages : 107
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : avril 2007
Messages : 107
Points : 108
Points : 108
Envoyer un message via AIM à MattCasters Envoyer un message via MSN à MattCasters Envoyer un message via Yahoo à MattCasters Envoyer un message via Skype™ à MattCasters
Citation:
Sous Pentaho j'ai l'impression que c'est assez simple et qu'il suffit juste de remplacer les bonnes valeurs dans les balises correspondant à la connexion. ça peut être un programme qui demandera aux clients les paramètres et les complétera dans le fichier au format XML. Pensez-vous que ce soit une bonne idée ?
Mieux c'est de créer des boucles dans un job. (samples/jobs/run_all/)
Comme ça on peut utiliser des variables, crées dans un job.
Les connections seront complètement dynamique.

Matt
MattCasters est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2008, 10h16   #6
Membre habitué
 
Inscription : mai 2006
Messages : 97
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 97
Points : 118
Points : 118
Envoyer un message via Skype™ à smallet
J'avais fait un petit post expliquant comment charger les contexts depuis un fichier dans Talend.
http://stefeclipse.free.fr/blog/?p=21

Par contre, tu dois déjà savoir quelle type de base de données tu vas utiliser car les composants sont par exemple tMysqlInput, tOracleInput, etc...
De toute façon, les requêtes d'entrée ne sont pas forcement identiques d'une base à l'autre.

De manière générale je déconseille de modifier le code généré par Talend. Pour la bonne raison que comme il n'a pas de reverse, ce n'est vraiment idéal en terme de maintenance.
smallet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h35   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Merci pour vos explications, à moi maintenant de tester tout ça.
Je vous tiendrais au courant.
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 15h37   #8
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Citation:
Envoyé par smallet Voir le message

Par contre, tu dois déjà savoir quelle type de base de données tu vas utiliser car les composants sont par exemple tMysqlInput, tOracleInput, etc...
De toute façon, les requêtes d'entrée ne sont pas forcement identiques d'une base à l'autre.
Mais si j'utilise des tJDBCInput , est-ce-que je règle le problème que tu soulèves ?
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 17h27   #9
Membre habitué
 
Inscription : mai 2006
Messages : 97
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 97
Points : 118
Points : 118
Envoyer un message via Skype™ à smallet
Le JDBCInput n'est pas l'idéal. Pour plusieurs raisons :
-perf
-syntaxe un peu différentes d'un bd à l'autre (exemple : limit en mysql, where numrows>? en oracle)
-les types ne sont pas les mêmes (ce qui te privent des fonctionnalités de création de tables dans les composants d'output)

Ce que tu peux faire avec Talend c'est aussi utiliser les joblets.
C'est un moyen de factoriser les traitements dans plusieurs jobs. Par exemple tu factorise le traitement et chaque job récupère les données à ca façon (mysql , oracle ou autre) et les envois à la joblet.

N'hésite pas si je ne suis pas très clair.
smallet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 12h06   #10
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Citation:
Envoyé par smallet Voir le message
N'hésite pas si je ne suis pas très clair.
Merci

En gros ce que tu me dis c'est que le mieux c'est de connaitre quel type de connexion je vais utiliser et que le tJDBCInput/Output me limite dans la création de table.
C'est un problème car en fonction du client je ne sais pas si celui utilise Oracle, MSSql ou autre.

Avec la factorisation dont tu parles, tu veux dire que je dois prévoire tout les cas de base de données possibles ?
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 09h28   #11
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
En gros avec ce que vous me dites j'ai l'impression que je ne peux pas avoir un code multibase avec talend. Et que donc il me faut savoir forcément le type de la base.
Est-ce la même chose avec Pentaho ?
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 18h27   #12
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Encore une question
Je vois qu'avec Kettle on peut aussi utiliser le "generic database". Ai-je les même problèmes que vous citez avec Talend avec le tJDBC ou bien est-ce meilleur ?
Merci de vos réponses.
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2008, 11h57   #13
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 819
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 : 819
Points : 1 093
Points : 1 093
Citation:
Envoyé par Scorpio85 Voir le message
En gros avec ce que vous me dites j'ai l'impression que je ne peux pas avoir un code multibase avec talend. Et que donc il me faut savoir forcément le type de la base.
Est-ce la même chose avec Pentaho ?
Il doit y avoir un moyen d'y arriver en utilisant les composants DB Generic et DB JDBC de Talend et en ne faisant que du sql générque accepté par tous les SGBD (ce qui ne va pas loin) de plus les fonctionalités de ces composants sont limitées.

Je ne connais pas Kettle
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2008, 14h52   #14
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Merci pour ta réponse.
Pour avoir essayer le composant générique que propose Pentaho , c'est vrai que l'on se retrouve aussi vite limiter avec les scripts SQL. Il faut donc trouver une parade.
Scorpio85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 11h13   #15
Membre habitué
 
Inscription : avril 2007
Messages : 107
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : avril 2007
Messages : 107
Points : 108
Points : 108
Envoyer un message via AIM à MattCasters Envoyer un message via MSN à MattCasters Envoyer un message via Yahoo à MattCasters Envoyer un message via Skype™ à MattCasters
C'est a dire, quand on utilise ANSI SQL, on aura typiquements pas des problèmes dans Kettle.
MattCasters est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 14h29   #16
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 37
Points : 10
Points : 10
Merci pour la précision
Scorpio85 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 00h29.


 
 
 
 
Partenaires

Hébergement Web