Créer une analyse de table avec une règle métier SQL comprenant une condition de jointure - 7.0

Guide utilisateur de Talend Data Management Platform Studio

author
Talend Documentation Team
EnrichVersion
7.0
EnrichProdName
Talend Data Management Platform
task
Création et développement
EnrichPlatform
Studio Talend

Dans certains cas, vous devez analyser des tables ou des vues de bases de données à l'aide d'une règle métier SQL comprenant une clause de jointure combinant des enregistrements de deux tables d'une base de données. Cette clause de jointure compare les valeurs communes à deux colonnes et donne un ensemble de données de résultat. Ces données sont ensuite analysées par rapport à la règle métier.

Selon les données analysées et la clause de jointure, différents résultats de jointure sont possibles, par exemple #match + #no match > #row count,  #match + #no match < #row count ou #match + #no match = #row count.

L'exemple ci-dessous explique en détails un cas où l'ensemble de données dans le résultat de la jointure est plus volumineux que le nombre de lignes (#match + #no match > #row count), ce qui indique que les données traitées contiennent des doublons.

Prérequis :
  • Au moins une règle métier SQL doit avoir été créée dans la perspective Profiling du Studio. Pour plus d'informations concernant la création de règles métier SQL, consultez . Créer une règle métier SQL

  • Au moins une connexion à une base de données doit avoir été définie dans la perspective Profiling du Studio. Pour plus d'informations, consultez Se connecter à une base de données.

Dans cet exemple, ajoutez la règle métier SQL créée dans la Créer une règle métier SQL à une table Person contenant les colonnes age et name. Cette règle métier SQL va mettre en correspondance l'âge des clients afin de définir ceux dont l'âge est supérieur à 18. La règle métier possède également une condition de jointure comparant la valeur "name" des tables Person et Person_Ref en analysant la colonne name commune.

Voici une capture d'écran des deux tables :
Voici une capture d'écran du résultat de la condition de jointure entre les deux tables :

L'ensemble de résultats peut présenter des lignes en doublon, comme c'est le cas dans cet exemple. Dans ce cas, les résultats de l'analyse sont plus difficiles à comprendre. L'analyse n'analyse pas les lignes de la table répondant à la règle métier mais est exécutée sur l'ensemble de résultats donnés par la règle métier.

  1. Configurez l'analyse de table et sélectionnez la table que vous souhaitez analyser, comme décrit dans Créer une analyse de table avec une règle métier SQL simple.

    La table sélectionnée s'affiche dans la vue Analyzed Tables.

  2. Ajoutez la règle métier contenant la condition de jointure à la table sélectionnée, en cliquant sur l'icône à côté du nom de la table.

    Cette règle métier possède une condition de jointure comparant la valeur du nom ("name") de deux tables différentes en analysant une colonne commune. Pour plus d'informations concernant les règles métier SQL, consultez Créer une règle métier SQL.

  3. Sauvegardez l'analyse et appuyez sur F6 pour l'exécuter.

    L'éditeur d'analyse passe à la vue Analysis Results.

    Tous les enregistrements d'âges de la table sélectionnée sont évalués par rapport à la règle métier SQL définie. Les résultats d'analyse comprennent deux diagrammes en barres : le premier est un indicateur de compte de lignes affichant le nombre de lignes dans la table analysée et le second est un indicateur de correspondance et non correspondance indiquant les enregistrements d'âge de l'ensemble de résultats analysés ne correspondant pas aux critères (âge inférieur à 18).

    Remarque : Si une condition de jointure est utilisée dans la règle métier SQL, le nombre de lignes de la jointure (#Match + #No Match) peut être différent du nombre des lignes analysées (Row Count). Pour plus d'informations, consultez Créer une analyse de table avec une règle métier SQL comprenant une condition de jointure.
  4. Cliquez-droit sur la ligne Row Count de la première table et sélectionnez View rows.

    L'éditeur SQL s'ouvre dans le Studio pour afficher une liste de lignes analysées.

  5. Cliquez-droit sur les résultats de la règle métier dans la seconde table, ou cliquez-droit sur la barre du diagramme et sélectionnez :

    Ci-dessous se trouve la liste des lignes invalides dans la table analysée.

  6. Dans l'éditeur SQL, cliquez sur l'icône de sauvegarde dans la barre d'outils afin de sauvegarder la requête exécutée sur la règle métier SQL et la lister dans le dossier Libraries > Source Files de la vue DQ Repository.

    Pour plus d'informations, consultez Sauvegarder les requêtes exécutées sur les indicateurs.

Afin de mieux comprendre le diagramme en barre Business Rule Statistics dans les résultats d'analyse, procédez comme suit :

  1. Dans l'éditeur d'analyse, cliquez-droit sur la règle métier et sélectionnez View executed query.

    L'éditeur SQL s'ouvre dans le Studio.

  2. Modifiez la requête dans la partie supérieure de l'éditeur afin d'obtenir : SELECT * FROM `my_person_joins`.`person` Person JOIN `my_person_joins`.`Person_ref` Person_ref ON (Person.`name`=Person_ref.`Name`).

    Cela permet de lister l'ensemble des données de résultat de la condition de jointure dans l'éditeur.

  3. Dans le coin supérieur gauche de l'éditeur, cliquez sur l'icône pour exécuter la requête.

    Le résultat de la requête, l'ensemble des résultats analysés, est listé dans la partie inférieure de l'éditeur.

  4. Retournez dans l'éditeur d'analyse, cliquez sur l'onglet Analysis Results au bas de l'éditeur pour ouvrir une vue détaillée des résultats d'analyse.

    L'ensemble des résultats analysés peut contenir plus ou moins de lignes que la table analysée. Dans cet exemple, le nombre d'enregistrements correspondant et ne correspondant pas (5 + 2 = 7) dépasse le nombre d'enregistrements analysés (6) car la jointure des deux tables génère plus de lignes que prévu.

    Ici, cinq lignes (71.43%) correspondent à la règle métier et deux ne correspondent pas. Comme la jointure génère des lignes en doublon, ce résultat ne signifie pas que cinq lignes de la table analysée correspondent à la règle métier. Cela signifie que cinq lignes parmi les sept de l'ensemble de résultats correspondent à la règle métier. Certaines lignes des tables analysées peuvent même ne pas avoir été analysées par rapport à la règle métier. Cela arrive lorsque la jointure exclut ces lignes. Ainsi, il est recommandé de rechercher les doublons dans les colonnes utilisées pour la jointure de la règle métier, afin de vous assurer que la jointure ne supprime pas de ligne ou n'en ajoute pas dans l'ensemble de résultats analysés. Sinon, l'interprétation des résultats peut s'avérer plus complexe.

    Dans la vue Analysis Results, si le nombre d'enregistrements correspondant et ne correspondant pas dépasse le nombre d'enregistrements analysés, vous pouvez générer une analyse prête à l'emploi pour analyser les doublons dans la table sélectionnée.