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

ODI (ex-Sunopsis) Discussion :

gestion des lignes incorrectes avec ODI


Sujet :

ODI (ex-Sunopsis)

  1. #1
    Membre régulier
    Homme Profil pro
    à la recherche d'un stage de fin de formation dans le décisionnel
    Inscrit en
    Juillet 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : à la recherche d'un stage de fin de formation dans le décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 154
    Points : 85
    Points
    85
    Par défaut gestion des lignes incorrectes avec ODI
    Bonjour à tous

    Je viens poser une question pas trop technique mais plutot méthodologique,
    ayant pris l'habitude de travailler sur TALEND avec la possibilité d'alimenter plusieurs cibles à la fois notamment pour ce qui concerne les lignes "défectueuses" : table des lignes incorrect et table des lignes correct.

    Je me demande qu'elle est la meilleure façon sur ODI de gérer les lignes avec des erreurs vu qu'on ne peut alimenter qu'une seule cible à la fois

    Merci à vous

  2. #2
    Membre habitué
    Profil pro
    Consultant informatique
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Points : 199
    Points
    199
    Par défaut
    Moi aussi j'ai commencer avec Talend et ca m'a fait bizzare de passer sur ODI,

    Pour le contrôle des données on ne peut pas (on ne veut pas d'ailleur) faire du ligne par ligne. ODI a un mécanisme de table de rejet gérer par des KM (CKM).

    1) importe un CKM dans ton projet
    2) double clique sur ton modèle et choisit dans l'onglet contrôle le CKM que tu vient d'importer
    3) pour chaque datastore cible tu défini les contraintes
    4) dans l'interface qui alimente ton datastore tu met le flow control à Yes et dans l'onglet Controle tu paramètre les controle que tu veux effectué.
    5) execute
    6) Regarde dans l'operator le suivit d'execution
    7) Une table E$_NOMDETATABLE a été crée en base, cet table contient toutes les lignes rejeté (les lignes ne repondant pas a ta contrainte)

  3. #3
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    c'est un des avantages d'ODI, la gestion des rejets est transparente et il n'y a rien à faire, il faut juste définir les contraintes.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  4. #4
    Membre régulier
    Homme Profil pro
    à la recherche d'un stage de fin de formation dans le décisionnel
    Inscrit en
    Juillet 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : à la recherche d'un stage de fin de formation dans le décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 154
    Points : 85
    Points
    85
    Par défaut
    Bonjour à vous deux ( merci de vos réponses )

    je comprends très bien pour la table e$_ que ODI génère automatiquement, j'imagine que c'est cette table qu'il faut utiliser si on veut faire un rapport ( log ) à la fin de l'exécution d'une interface.

    Pour le CKM, j'ai déjà CKM Oralce qui est ajouté à mon projet, mais j'arrive pas à ajouter des contraintes.

    Pour être plus explicite, le genre de contrainte que je veux utiliser est ( pour le moment ) un teste de la validité d'une date avant de la maper ( dans la table source les dates sont en varchar ( merci les anciens :p ) du coup il y a des mois 13, 14, et des jour 45, 44

    Merci pour les éclaircissements.

  5. #5
    Membre habitué
    Profil pro
    Consultant informatique
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Points : 199
    Points
    199
    Par défaut
    Bonjour,
    Alors pour ajouter une contrainte à une table il faut aller dans les modèle, tu ouvre le menu du datastore sur lequel tu veux ajouter une contrainte, tu verra un menu contrainte ^^
    Ensuite clique droit ajouter contrainte.
    Dans ton cas pour valider le format d'une date, je ferais une fonction sur oracle qui te renvoie 1 si la valeur est une date et 0 si non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create or replace
    FUNCTION IsDate( p_str IN VARCHAR2, p_format IN VARCHAR2 ) RETURN NUMBER AS
    V_date DATE;
    BEGIN
        V_Date := TO_DATE( p_str, p_format );
        RETURN 1;
    EXCEPTION
       WHEN OTHERS THEN
          RETURN 0;
    END;
    Et dans ta contrainte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsDate(CHAMP,'YYYYMMDD')=1
    Ça ne me choque pas une date dans un varchar.
    Pour bien des cas c plus facile à gérer qu'un type date

  6. #6
    Membre régulier
    Homme Profil pro
    à la recherche d'un stage de fin de formation dans le décisionnel
    Inscrit en
    Juillet 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : à la recherche d'un stage de fin de formation dans le décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 154
    Points : 85
    Points
    85
    Par défaut
    Bonjour

    Merci pour les explications,
    j'avais pensé aussi à ajouter une fonction oracle pour la date mais je me demandais si y avait pas un truc propre à ODI.

    encore une fois, merci pour l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 07/09/2007, 22h45
  2. Gestion des lignes vides avant/après une liste
    Par 84mickael dans le forum Mise en forme
    Réponses: 4
    Dernier message: 28/08/2007, 16h25
  3. [Formulaire][VBA] Gestions des lignes du formulaire
    Par Oberown dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 21h44
  4. Réponses: 3
    Dernier message: 13/08/2004, 18h52
  5. [TP]Gestion des images bmp avec BMP.TPU
    Par Gabi dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 14/05/2004, 23h20

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