1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : mars 2017
    Messages : 3
    Points : 2
    Points
    2

    Par défaut Loguer une données en erreur

    Bonjour,
    Je viens vers vous suite à un probleme de dev que je rencontre actuellement.
    En effet, Je fais un chargement de données dans une base oracle via talend et dans mes données sources sur 500 mille lignes je peut avoir par exemple 3 valeurs qui ne sont pas bonnes;
    Mon Objectif est de pouvoir identifier ces trois valeurs et les loguées dans une table en base de données et charger correctement le reste des données qui elles sont correctes.
    sachant que j'ai utiliser tLogCatcher qui lui ne me donne que des logs javas.
    Pouvez vous m'aider svp

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : septembre 2013
    Messages : 16
    Points : 14
    Points
    14

    Par défaut Log en base de données

    Bonsoir,

    le composant tLogCatcher permet de récupérer les erreurs java.

    Si j'ai bien compris, tu souhaites conserver les données qui ne sont pas conformes à tes attentes.

    Si tu utilises le composant tMap tu peux activer un filtre au niveau de ta sortie (créer une seconde sortie pour les données erronées), activer l'option " Catch output reject" puis renvoyer ce flux vers ta table de logs en base de données.

    N'hésite pas à mettre un screenshot de ton job afin que l'on puisse t'aider au mieux.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : mars 2017
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    Bonjour,
    Merci bcp de ton aide je vais essayer ça.

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : mars 2017
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    Bjr Stabillo,
    J'ai essayer ta solution mais l'erreur ne va pas dans ma table de rejet.
    J'ai fait le test sur ptit job dont voici le screemshoot

    source/ c'est la derniere ligne qui n'est pas correcte:
    Images attachées Images attachées    

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : septembre 2013
    Messages : 16
    Points : 14
    Points
    14

    Par défaut

    Bonsoir,

    ton filtre ne peut pas fonctionner car il porte sur la condition que ton ID soit null or ici il contient "toto". C'est pour ça que le filtre ne fonctionne pas.

    Si tu remplaces par row1.id.equals("toto") ça fonctionnera mais d'après ton exemple je comprends que c'est le typage de ta donnée qui ne serait pas bonne en entrée ?

    Est-il possible que le champ ID soit un String plutôt qu'un Integer ?

    Si c'est le cas tu peux faire un filtre sur la condition que le champ ID contienne bien des nombres pour cela il faut s'appuyer sur des regex Java.

    PS : Pour tester si une valeur est nulle ou non, utilise plutôt la fonction Relational.ISNULL() à la place de == null car si tes valeurs sont de type Integer tu rencontra une erreur.

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/07/2009, 15h55
  2. Réponses: 3
    Dernier message: 07/01/2009, 19h03
  3. [AS/400] Erreur dans une donnée décimale
    Par mehdi501 dans le forum Cobol
    Réponses: 40
    Dernier message: 21/05/2008, 15h51
  4. Réponses: 2
    Dernier message: 28/12/2007, 11h23
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 25/11/2003, 10h12

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