Gérer les indicateurs personnalisés

Talend Open Studio for Data Quality Guide utilisateur

EnrichVersion
6.2
EnrichProdName
Talend Open Studio for Data Quality
task
Qualité et préparation de données
EnrichPlatform
Studio Talend

Les indicateurs personnalisés, sont, comme leur nom l'indique, des indicateurs créés par l'utilisateur. Vous pouvez utiliser ces indicateurs pour analyser des colonnes via une simple opération de glisser-déposer de la vue DQ Repository dans les colonnes listées dans l'éditeur.

Les options de gestion disponibles pour les indicateurs personnalisés comprennent : la création, l'export et l'import, l'édition et la duplication. Pour des informations plus détaillées, consultez les sections suivantes.

Créer des indicateurs SQL personnalisés

Vous pouvez créer vos indicateurs personnalisés dans votre studio.

Note

Les processus de gestion des indicateurs personnalisés sont les mêmes que pour les indicateurs système.

Définir l'indicateur

  1. Dans la vue DQ Repository, développez successivement les nœuds Libraries et Indicators.

  2. Cliquez-droit sur User Defined Indicators.

  3. Sélectionnez New Indicator dans le menu contextuel.

    L'assistant [New Indicator] s'ouvre.

  4. Dans le champ Name, saisissez un nom pour l'indicateur que vous souhaitez créer.

    Note

    Il est recommandé de ne pas utiliser les caractères spéciaux suivants dans le nom de l'élément, notamment :

    "~", "!", "`", "#", "^", "&", "*", "\\", "/", "?", ":", ";", "\"", ".", "(", ")", "'", "¥", "'", """, "«", "»", "<", ">".

    Ces caractères seront remplacés par un "_" dans le système de fichiers. Vous risquez ainsi de créer des éléments en doublon.

    Définissez les autres métadonnées : Purpose, Description et Author (objectif, description et nom de l'auteur) dans les champs correspondants, puis cliquez sur Finish.

L'éditeur d'indicateur s'ouvre et affiche les métadonnées de l'indicateur personnalisé.

Configurer la définition et la catégorie de l'indicateur

  1. Cliquez sur Indicator Category et sélectionnez dans la liste une catégorie pour l'indicateur.

    La catégorie sélectionnée détermine les colonnes attendues dans l'ensemble de résultats de l'analyse utilisant cet indicateur personnalisé.

    Le tableau ci-dessous présente les catégories disponibles.

    Catégorie de l'indicateur

    Description

    Résultats attendus de la requête

    User Defined Match

    Évalue le nombre de données répondant à une condition.

    L'ensemble de résultats doit contenir une ligne et deux colonnes. La première colonne contient le nombre de valeurs répondant à la condition. La seconde colonne contient le nombre total de valeurs.

    User Defined Frequency

    Évalue la fréquence des enregistrements utilisant les indicateurs personnalisés pour chaque enregistrement distinct.

    L'ensemble de résultats doit contenir au moins zéro ligne et deux colonnes. La première colonne contient une valeur et la seconde contient la fréquence (nombre) de cette valeur.

    User Defined Real Value

    Évalue la fonction réelle des données.

    L'ensemble de résultats doit contenir une ligne et une colonne contenant une valeur réelle.

    User Defined Count (catégorie par défaut)

    Analyse la quantité d'enregistrements et retourne le nombre de lignes.

    L'ensemble de résultats doit contenir une ligne et une colonne contenant le nombre de lignes.
  2. Cliquez sur Indicator Definition puis cliquez sur le bouton [+].

  3. Dans la liste Database, sélectionnez une base de données sur laquelle utiliser l'indicateur.

    Si l'indicateur est assez simple pour être utilisé dans toutes les bases de données, sélectionnez Default dans la liste.

  4. Saisissez la version de la base de données que vous utilisez, dans le champ Version.

  5. Configurez l'instruction SQL pour l'indicateur que vous souhaitez créer :

    • Cliquez sur le bouton Edit... à côté du champ SQL Template.

      La boîte de dialogue [Edit Expression] s'ouvre.

    • Dans la vue Indicator Definition, saisissez l'expression (les expressions) SQL à utiliser pour mettre en correspondance des données et les analyser. Vous pouvez déposer des modèles de la liste templates afin de compléter l'expression.

      Par exemple, paramétrez l'expression permettant de mesurer la longueur maximale des valeurs dans une colonne, comme dans la capture d'écran ci-dessus.

      Cette vue contient plusieurs champs d'entrée, un pour chaque colonne attendue par la catégorie de l'indicateur. Par exemple, si vous sélectionnez la catégorie User Defined Count, un seul champ Where Expression apparaît. Si vous sélectionnez la catégorie User Defined Match, deux champs apparaissent : Matching Expression et Where Expression.

      Les expressions SQL sont automatiquement transformées en un modèle SQL complet dans la vue Full SQL Template.

      Les expressions SQL sont automatiquement transformées en modèles pour voir les lignes/valeurs. Différents onglets sont disponibles dans la boîte de dialogue selon la catégorie d'indicateur sélectionnée.

      Si vous éditez l'expression SQL dans la vue Indicator Definition, les modèles seront mis à jour dans les autres onglets.

    • Utilisez le bouton Reset pour annuler les modifications de tous les modèles, comme défini dans l'onglet Indicator Definition.

    • Cliquez sur OK.

      La boîte de dialogue se ferme et le modèle SQL s'affiche dans l'éditeur d'indicateur.

    • Utilisez le bouton [+] et suivez les mêmes étapes pour ajouter autant de définitions d'indicateur que nécessaire.

      Note

      Vous n'avez pas besoin de définir les paramètres dans la vue Indicator Parameters lorsque l'indicateur personnalisé contient uniquement des modèles SQL. Ces paramètres sont utilisés uniquement lorsque les indicateurs possèdent une implémentation Java. Pour plus d'informations, consultez Définir des indicateurs Java personnalisés.

  6. Cliquez sur l'icône de sauvegarde en haut de l'éditeur.

    L'indicateur s'affiche sous le nœud User Defined Indicators dans la vue DQ Repository. Vous pouvez utiliser cet indicateur sur des colonnes analysées via un simple glisser-déposer de la vue DQ Repository dans les colonnes listées dans l'éditeur.

    Si une analyse contenant un indicateur personnalisé est exécutée avec succès au moins une fois, et que, ultérieurement, le modèle de définition de l'indicateur pour la base de données est supprimé, l'analyse n'échoue pas. Elle continue à s'exécuter avec succès car elle utilise la requête SQL précédemment générée.

Définir des indicateurs Java personnalisés

Vous pouvez créer vos indicateurs Java dans votre studio. Les processus de gestion des indicateurs personnalisés Java sont les mêmes que ceux des indicateurs système.

Note

Vous pouvez également importer un indicateur Java personnalisé prêt à l'emploi du dossier Exchange dans la vue DQ Repository. Cet indicateur java personnalisé se connecte à un serveur d'e-mails et vérifie si un e-mail existe. Pour plus d'informations concernant l'import d'indicateurs depuis Talend Exchange, consultez Importer des indicateurs personnalisés à partir de Talend Exchange.

Les deux sections ci-dessous détaillent les procédures de création d'indicateurs personnalisés Java.

Créer des indicateurs Java personnalisés

Définir l'indicateur

  1. Dans la vue DQ Repository, développez successivement les nœuds Libraries et Indicators.

  2. Cliquez-droit sur User Defined Indicators.

  3. Sélectionnez New Indicator dans le menu contextuel.

    L'assistant [New Indicator] s'ouvre.

  4. Dans le champ Name, saisissez un nom pour l'indicateur Java que vous souhaitez créer.

    Note

    Il est recommandé de ne pas utiliser les caractères spéciaux suivants dans le nom de l'élément, notamment :

    "~", "!", "`", "#", "^", "&", "*", "\\", "/", "?", ":", ";", "\"", ".", "(", ")", "'", "¥", "'", """, "«", "»", "<", ">".

    Ces caractères seront remplacés par un "_" dans le système de fichiers. Vous risquez ainsi de créer des éléments en doublon.

  5. Définissez les autres métadonnées : Purpose, Description et Author (objectif, description et nom de l'auteur) dans les champs correspondants puis cliquez sur Finish.

    L'éditeur d'indicateur s'ouvre et affiche les métadonnées de l'indicateur personnalisé.

Configurer la définition et la catégorie de l'indicateur

  1. Dans la liste Indicator Category, sélectionnez une catégorie pour l'indicateur Java créé.

    La catégorie sélectionnée déterminera les colonnes attendues dans le résultat de l'analyse utilisant cet indicateur.

    Le tableau ci-dessous présente les catégories disponibles.

    Catégorie de l'indicateur

    Description

    Résultats attendus de la requête

    User Defined Match

    Evalue le nombre de données répondant à une condition.

    L'ensemble de résultats doit contenir une ligne et deux colonnes. La première colonne contient le nombre de valeurs répondant à la condition. La seconde colonne contient le nombre total de valeurs.

    User Defined Frequency

    Evalue la fréquence des enregistrements utilisant les indicateurs personnalisés pour chaque enregistrement distinct.

    L'ensemble de résultats doit contenir au moins zéro ligne et deux colonnes. La première colonne contient une valeur et la seconde contient la fréquence (nombre) de cette valeur.

    User Defined Real Value

    Evalue la fonction réelle des données.

    L'ensemble de résultats doit contenir une ligne et une colonne contenant une valeur réelle.

    User Defined Count (catégorie par défaut)

    Analyse la quantité d'enregistrements et retourne le nombre de lignes.

    L'ensemble de résultats doit contenir une ligne et une colonne contenant le nombre de lignes.
  2. Cliquez sur Indicator Definition puis sur le bouton [+].

  3. Dans la liste Database, sélectionnez Java.

  4. Saisissez la classe Java dans le champ Java Class.

    Note

    Vérifiez que le nom de la classe inclut le chemin d'accès au package. Si cette chaîne de caractères n'a pas été correctement spécifiée, un message d'erreur s'affichera lorsque vous essayerez de sauvegarder l'indicateur personnalisé Java.

  5. Sélectionnez l'archive Java contenant la classe Java :

    • Cliquez sur le bouton Edit....

      La boîte de dialogue [UDI Selector] s'ouvre.

    • Dans la vue Select libraries, cochez la case de l'archive contenant la classe Java et sélectionnez la classe dans le panneau inférieur de l'assistant.

    • Cliquez sur OK.

      La boîte de dialogue se fermer et l'archive Java s'ouvre dans l'éditeur d'indicateur.

      Vous pouvez ajouter ou supprimer des archives Java depuis la vue Manage Libraries de cette boîte de dialogue.

      Pour plus d'informations concernant la création d'une archive Java, consultez Créer une archive Java pour un indicateur personnalisé.

  6. Cliquez sur Indicator Parameters pour ouvrir la vue dans laquelle vous pouvez définir les paramètres afin de récupérer les valeurs des paramètres lors du codage de l'indicateur Java.

    Vous pouvez récupérer la valeur des paramètres avec un code similaire à celui-ci, récupérant le paramètre EMAIL_PARAM :

    // Check prerequisite
            IndicatorParameters param = this.getParameters();
            if (param == null) {
                log.error("No parameter set in the user defined indicator " + this.getName()); //$NON-NLS-1$
                return false;
            }
            Domain indicatorValidDomain = param.getIndicatorValidDomain();
            if (indicatorValidDomain == null) {
                log.error("No parameter set in the user defined indicator " + this.getName()); //$NON-NLS-1$
                return false;
            }
    
            // else retrieve email from parameter
            EList<JavaUDIIndicatorParameter> javaUDIIndicatorParameter = indicatorValidDomain.getJavaUDIIndicatorParameter();
            for (JavaUDIIndicatorParameter p : javaUDIIndicatorParameter) {
                if (EMAIL_PARAM.equalsIgnoreCase(p.getKey())) {

    Pour un exemple de code complet pour utiliser les paramètres dans un indicateur Java personnalisé, consultez la page http://talendforge.org/svn/top/trunk/test.myudi/src/main/java/org/talend/dataquality/indicator/userdefine/email/EMailValidationIndicator.java.

  7. Cliquez sur le bouton [+] au bas de la table et définissez, dans la nouvelle ligne, les champs Parameters Key et Parameters Value, en cliquant dans chaque champ.

    Vous pouvez éditer ces paramètres par défaut ou ajouter de nouveaux paramètres à tout moment, lorsque vous utilisez cet indicateur dans une analyse de colonne. Pour ce faire, cliquez sur l'icône d'option d'indicateur dans l'éditeur d'analyse afin d'ouvrir une boîte de dialogue dans laquelle vous pouvez éditer les paramètres par défaut selon vos besoins, ou ajouter de nouveaux paramètres.

  8. Cliquez sur l'icône de sauvegarde en haut de l'éditeur.

    L'indicateur s'affiche sous le nœud User Defined Indicators, dans la vue DQ Repository. Vous pouvez utiliser cet indicateur dans des colonnes analysées via un simple glisser-déposer de la vue DQ Repository dans les colonnes listées dans l'éditeur.

Créer une archive Java pour un indicateur personnalisé

Avant de créer une archive Java pour l'indicateur personnalisé, vous devez définir, dans Eclipse, la plateforme cible par rapport à laquelle les plug-ins du répertoire workspace seront compilés et testés.

Pour définir la plateforme cible, procédez comme suit :

  1. Dans le menu Eclipse, sélectionnez Preferences pour afficher la boîte de dialogue [Preferences].

  2. Développez le nœud Plug-in Development et sélectionnez Target Platform, puis cliquez sur Add... afin d'ouvrir une vue dans laquelle vous pourrez définir la cible.

  3. Sélectionnez l'option Nothing: Start with an empty target definition puis cliquez sur Next.

  4. Dans le champ Name, saisissez un nom pour la nouvelle définition de la cible, puis cliquez sur le bouton Add....

  5. Sélectionnez Installation dans la liste Add Content puis cliquez sur Next.

  6. Cliquez sur le bouton Browse... pour définir le chemin d'accès au répertoire d'installation puis cliquez sur Next.

    La nouvelle définition de la cible s'affiche dans la liste Locations.

  7. Cliquez sur Finish pour fermer la boîte de dialogue.

    Pour créer une archive Java pour l'indicateur personnalisé, procédez comme suit :

  1. Dans Eclipse, vous pouvez vérifier votre projet SVN en consultant : http://talendforge.org/svn/top/branches/branch-4_0/test.myudi .

    Dans ce projet Java, vous pouvez trouver quatre classes Java correspondant aux quatre catégories d'indicateurs listées dans la vue Indicator Category dans l'éditeur d'indicateur.

    Chacune de ces classes Java étend l'indicateur UserDefIndicatorImpl. La capture d'écran ci-dessous montre un exemple d'utilisation de la classe Java MyAvgLength.

    package test.udi;
    
    import org.talend.dataquality.indicators.sql.impl.UserDefIndicatorImpl;
    
    /**
     * @author mzhao
     * 
     * A very simple example of a java implementation of a user defined indicator. This indicator returns a user defined
     * real value. It implements the minimum number of required methods.
     */
    public class MyAvgLength extends UserDefIndicatorImpl {
    
        private double length = 0;
    
        @Override
        public boolean reset() {
            super.reset();
            length = 0;
            return true;
        }
    
        @Override
        public boolean handle(Object data) {
            super.handle(data);
            // an indicator which computes the average text length on data which are more than 2 characters (this means that
            // text values with less than 2 characters are not taken into account).
            int dataLength = (data != null) ? data.toString().length() : 0;
            if (dataLength > 2) {
                length += dataLength;
            }
            return true;
        }
    
        /*
         * (non-Javadoc)
         * 
         * @see org.talend.dataquality.indicators.impl.IndicatorImpl#finalizeComputation()
         */
        @Override
        public boolean finalizeComputation() {
            value = String.valueOf(this.length / (this.getCount() - this.getNullCount()));
            return super.finalizeComputation();
        }
    
    }
  2. Modifiez le code des méthodes suivant chaque @Override selon vos besoins.

  3. Utilisez les méthodes suivantes dans votre code pour retrouver les paramètres de l'indicateur :

  4. utilisez Indicator.getParameter() qui retourne un objet IndicatorParameters.

  5. appelez IndicatorParameters.getIndicatorValidDomain()qui retourne un objet Domain.

  6. appelez Domain.getJavaUDIIndicatorParameter() qui retourne une liste de paramètres d'indicateurs Java personnalisés JavaUDIIndicatorParameter qui stocke chaque pair clé/valeur définissant le paramètre.

  7. Sauvegardez vos modifications.

  8. En utilisant Eclipse, exportez cette nouvelle archive Java.

L'archive Java est maintenant prête à être jointe à tout indicateur Java que vous souhaitez créer dans la perspective Profiling du studio.

Exporter des indicateurs personnalisés

Vous pouvez exporter des indicateurs personnalisés vers des fichiers archive ou vers Talend Exchange pour être partagé avec d'autres utilisateurs.

Exporter des indicateurs personnalisés vers un fichier archive

Vous pouvez exporter des indicateurs personnalisés et les stocker localement dans un fichier archive, à l'aide de l'option Export Item dans la barre d'outils du studio. Pour plus d'informations concernant l'export d'indicateurs, consultez Export d'éléments de profiling de données.

Exporter des indicateurs personnalisés vers Talend Exchange

Vous pouvez exporter des indicateurs personnalisés à partir de votre version du studio vers Talend Exchange, où vous pouvez les partager avec d'autres utilisateurs.

Les indicateurs exportés sont sauvegardés en tant que fichiers .xmi sur le serveur Exchange.

Prérequis : Au moins un indicateur personnalisé doit avoir été créé dans la perspective Profiling du studio.

Pour exporter des indicateurs personnalisés vers Talend Exchange, procédez comme suit :

  1. Dans la vue DQ Repository, développez successivement les nœuds Libraries et Indicators.

  2. Cliquez-droit sur le dossier User Defined Indicator et sélectionnez Export for Talend Exchange.

    L'assistant [Export for Talend Exchange] s'affiche.