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 :

Lecture BDD ET Fichier


Sujet :

Développement de jobs

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut Lecture BDD ET Fichier
    Salut tous le monde !

    Bon c'est encore moi... Dur pour vous héhé

    Cette fois-ci je voulais savoir si il était possible de lire une table d'une BDD et un fichier Excel en même temps. Ceux-ci pour comparer si les données correspondent.

    J'ai essayé, lecture de la table OK et envoie des données dans un TMAP ou je reçois de même les données lu dans le fichier Excel. Et du coup il plante après avec le TMAP... Ou en même temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    	at java.util.Arrays.copyOf(Unknown Source)
    	at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
    	at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
    	at java.lang.AbstractStringBuilder.append(Unknown Source)
    	at java.lang.StringBuilder.append(Unknown Source)
    	at projecttest1.job3_0_1.Job3$1Util_tLogRow_3.format(Job3.java:1462)
    	at projecttest1.job3_0_1.Job3.tAccessInput_1Process(Job3.java:2237)
    	at projecttest1.job3_0_1.Job3.tAccessConnection_1Process(Job3.java:557)
    	at projecttest1.job3_0_1.Job3.runJobInTOS(Job3.java:4577)
    	at projecttest1.job3_0_1.Job3.main(Job3.java:4424)
    il y a une boucle ou autre qu'il a pas aimé. Parce que, peut-être, les données ne sont pas lu en même temps ??

    Merci

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Cette erreur est liée à l'espace mémoire, Java à une limite sur sa mémoire, le tMap stocke en mémoire le lookup (placer le flux le plus petit ici et le plus important en main), s'il est trop gros, un 'Java heap space' arrive.

    1) Augmenter le xms et xmx. (Fenêtre->Préférences->Talend->Run/Debug : -Xms256M et -Xmx1024M par exemple)

    2) Dans le tMap, à droite il est possible de dire : stocker sur disque (store temp data -> true), ça soulage la mémoire.

    3) Le traitement n'est pas optimisé, il faut le revoir.

    4) Faire un traitement par lot.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Merci pour les infos !

    Oui il traite trop de ligne, et plante... Mais il faut que je compare 2 listes ( La BDD et le fichier ) donc comment faire un traitement par lot ??!

    Merci bien

    Edit: il y a maximum 1500 lignes à traiter, de chaque côté (BDD/Fichier)

  4. #4
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    As-tu regardé le store temp data du tMap?

    Si la base fait 100.000 et un fichier 80.000 (Talend gère bien ces quantités ^^, c'est pour l'exemple) et que ça plante malgré le paramétrage. Il y a plusieurs options, l'une d'elle est de faire une boucle qui prend 20.000 lignes du fichier en lookup du tMap qui compare à la base et ainsi de suite jusqu’à épuiser les données du fichier
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    La taille maximale initiale de la mémoire est de 2 000 000 de ligne, du TMap. C'est cela le store temp data ?

    Il sort quand même un chiffre de ligne de sortie : ~1 800 000 lignes. Alors qu'il y en a 1500 max. C'est peut-être ma façon de faire qu'il faut que je change. J'ai, d'un côté la lecture des données dans la base, et de l'autre la lecture des données dans le fichier. Le tous regrouper dans un TMap pour une comparaison des données dans le constructeur d'expression. En sortie un TLogRow, pour voir ce qu'il sort...

    J'ai mis des TLogRow après la lecture des données de la BDD et fichier et il sort bien les bonne données. C'est donc au niveau du TMap qu'il faut que ça change ?

    Merci bien pour vos réflexions.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Je relance un peu mon sujet. En faite j'ai 2 listes DIFFERENTES et je voudrais comparer l'une, à l'autre.

    Savoir si A de la liste 2 est dans la liste 1 et si oui la stocker ou non ensuite B de la liste 2 est dans la liste 1 et ainsi de suite. Quelqu'un aurait une idée ? Se sont 2 listes Excel.

    Merci

  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
    quelle est la structure de la ligne ?
    Ce n'est pas normal que ça plante avec 1500 lignes, vous comparez tous les champs entre eux ?
    Est-ce qu'il y a une clé pour identifier les lignes ?
    Pensez à la fonction Recherche

  8. #8
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par Guignon Voir le message
    Je relance un peu mon sujet. En faite j'ai 2 listes DIFFERENTES et je voudrais comparer l'une, à l'autre.

    Savoir si A de la liste 2 est dans la liste 1 et si oui la stocker ou non ensuite B de la liste 2 est dans la liste 1 et ainsi de suite. Quelqu'un aurait une idée ? Se sont 2 listes Excel.

    Merci
    Hello, tu peux utiliser les options "rejects" des jointures de ton tMap pour rediriger les correspondances / non-correspondances entre tes 2 flux

    Nom : A.JPG
Affichages : 91
Taille : 23,6 Ko
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2003
    Messages : 151
    Points : 252
    Points
    252
    Par défaut
    une idée, peut-être bête, mais as tu vérifié que ton fichier Excel ne contenait pas de ligne vide , genre 1500 lignes de data en 1 000 000 de ligne vide ?
    Pour palier ce genre de pb, je passe mes fichiers Excel au format CSV pour être sur de leur taille en colonne et ligne.
    Si la réponse vous a aidé, pensez à cliquer sur .

Discussions similaires

  1. [SimpleXML] Lecture d'un fichier pour une intégration dans une BDD
    Par nerick dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 07/11/2006, 14h40
  2. Réponses: 6
    Dernier message: 02/09/2003, 15h12
  3. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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