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

Développement de jobs Discussion :

tMap et lookup sans charger toute la table ?


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut tMap et lookup sans charger toute la table ?
    Bonjour à tous,

    Tout d'abord, j'espère ne pas être passé à côté de quelque chose en cherchant la réponse à mon problème. Soyez indulgent si la réponse a été déjà apportée dans ce forum et que je ne l'ai pas trouvée. Je vous assure avoir cherché (peut-être mal).

    Voici mon problème :

    J'ai, en entrée d'un tMap, une table d'une base de données Oracle et un LDAP. En sortie, un webservice. Mon problème se situe au niveau de la jointure entre la table et le LDAP. Je fais une jointure externe de ma table sur le LDAP qui est en lookup. Malheureusement, je ne peux pas lister les 100 000 personnes présentes dans le LDAP car il me l'interdit. Ce que je voudrais c'est faire la jointure pour chaque enregistrement récupéré de la table, sans avoir à charger tout le LDAP. Est-ce possible ?

    Merci pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2011
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2011
    Messages : 201
    Points : 352
    Points
    352
    Par défaut
    Bonjour,

    j'ai été confronté à la même problématique. Je l'ai contournée en récupérant les données du LDAP dans un fichier texte temporaire, en faisant 10 appels au LDAP (afin de ne pas dépasser la limite du LDAP). Je lie ensuite ce fichier temporaire à mon TMap pour faire la jointure avec ma table.

    Je n'ai pas de souci de performance en faisant de la sorte.

    Si quelqu'un a testé l'interrogation ligne à ligne du LDAP, je suis également intéressé.

    Bonne journée,

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci Nicolas pour ta réponse.
    En effet ça fonctionne sur mon système de test, mais la DSI ne veut pas de fichiers temporaires supplémentaires pour la prod... Du coup, je suis toujours bloqué.
    Est-ce que quelqu'un sait comment faire une interrogation ligne à ligne d'un LDAP avec un tMap ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 110
    Points
    110
    Par défaut
    Salut,

    Le tMap permet d'effectuer une requête à chaque ligne si tu le souhaites.
    Tu trouveras plus d'infos dans la doc. Fonctionnalité 'reload at each row'.
    Tu peux également utiliser les composant de buffer ou hash comme stockage temporaire en mémoire si tu ne souhaite pas écrire sur le disque.

    boubsy

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par boubsy Voir le message
    Salut,

    Le tMap permet d'effectuer une requête à chaque ligne si tu le souhaites.
    Tu trouveras plus d'infos dans la doc. Fonctionnalité 'reload at each row'.
    Tu peux également utiliser les composant de buffer ou hash comme stockage temporaire en mémoire si tu ne souhaite pas écrire sur le disque.

    boubsy
    Bonjour,

    J'ai presque le même souci que vous, j'ai besoin d'utiliser la fonctionnalité 'reload at each row' du tMap pour recharger une table d'une base de donnée PostgreSQL reliée avec le tMap à travers un lien lookup, par contre j'ai pas une idée et je trouve pas ça sur la doc.

    Merci de m'expliquer d'avantage.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par rabah033040 Voir le message
    Bonjour,

    J'ai presque le même souci que vous, j'ai besoin d'utiliser la fonctionnalité 'reload at each row' du tMap pour recharger une table d'une base de donnée PostgreSQL reliée avec le tMap à travers un lien lookup, par contre j'ai pas une idée et je trouve pas ça sur la doc.

    Merci de m'expliquer d'avantage.

    Voila je reviens vers vous une autre fois, mon souci annoncé si dessus est réglé.
    En faite, dans les propriétés de lookup y a l'attribut lookup modul mis a "charge une fois" par défaut, il suffit seulement de changer ça valeur en "Recharge chaque fois".

    Maintenant, j'ai un autre souci, je viens de découvrir que l’insertion des données envoyées ligne par ligne par le tMap dans la table de sortie ne prend effet qu'à la fait de tous le flux en entrée, ce qui veux dire l'option "Recharger chaque fois" ne me règle pas le problème.


    Merci pour toute aide

  7. #7
    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
    "qu'à la fait" = "qu'à la fin" ?
    Est ce que le composant output commit à chaque ligne ?
    Pensez à la fonction Recherche

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Avec un composant tLogRow, le rendu est affiché pour chaque ligne, par contre quand j'utilise un composant tPostgresqlOutput pour l’insertion dans la base de donnée, j'ai remarqué que l'insertion se faite à la fin de tous le flux en entrée.


    Par exemple si je j'utilise un fichier De 20 000 ligne comme flux d'entrée et je fait arrêter le job à la ligne 10 000, aucune entrée ne sera créée dans la base

    Dans mon cas l'insertion se fait à la fin de tous le flux en entrée, par conséquent le rechargement de la table de jointure à chaque ligne ne rajoute rien.

  9. #9
    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
    Il faudrait faire un commit à chaque ligne (dans les paramètres avancés du composant)
    Pensez à la fonction Recherche

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup Benoit_Durand pour la réponse

Discussions similaires

  1. Charger toutes les tables d'une base en cache ?
    Par kdjerrah dans le forum Administration
    Réponses: 4
    Dernier message: 29/10/2012, 17h19
  2. Réponses: 12
    Dernier message: 26/11/2008, 10h50
  3. envoyer un formulaire sans charger toute la page
    Par kiranis dans le forum Langage
    Réponses: 1
    Dernier message: 10/06/2008, 15h26
  4. Réponses: 2
    Dernier message: 12/12/2007, 18h44
  5. comment charger toutes les tables dans DataSet
    Par keletigui dans le forum Accès aux données
    Réponses: 1
    Dernier message: 21/02/2007, 20h44

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