IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Alimentation Discussion :

Paramétrages des bases de données à l'éxécution pour Talend et Pentaho


Sujet :

Alimentation

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    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.

  2. #2
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    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....
    Pensez à la fonction Recherche

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    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 ?

  4. #4
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    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.
    Pensez à la fonction Recherche

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    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

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 101
    Points : 127
    Points
    127
    Par défaut
    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.

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Merci pour vos explications, à moi maintenant de tester tout ça.
    Je vous tiendrais au courant.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    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 ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 101
    Points : 127
    Points
    127
    Par défaut
    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.

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    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 ?

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    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 ?

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    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.

  13. #13
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    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
    Pensez à la fonction Recherche

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    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.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    C'est a dire, quand on utilise ANSI SQL, on aura typiquements pas des problèmes dans Kettle.

  16. #16
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Merci pour la précision

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/01/2009, 18h14
  2. Réponses: 2
    Dernier message: 14/01/2009, 09h48
  3. Réponses: 6
    Dernier message: 14/11/2007, 16h38
  4. Menu principal pour des bases de données différentes ?
    Par Kareg dans le forum Modélisation
    Réponses: 30
    Dernier message: 20/08/2007, 16h10
  5. Réponses: 11
    Dernier message: 16/06/2006, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo