7.18. Transformations avancées

7.18.1. Découper un tableau

Avec cette transformation, l’enregistrement présent dans le tableau d’entrée, sera découpé en trois enregistrements :

  • tableau d’entrée :

    A

    B1,B2,B3

    C

  • tableau de sortie :

    A

    B1

    C

    A

    B2

    C

    A

    B3

    C

  • La transformation s’applique sur un unique champ.

  • La transformation utilise le ou les filtres actifs.

7.18.2. Ensemble de Règles Métier

Note

Un tutoriel vidéo complet sur les règles métier est disponible ici.

Un ensemble de règles métier permet, sans écrire de code :

  • D’effectuer des calculs sur l’enregistrement courant.

  • De rajouter de nouveaux champs dont la valeur sera calculée à partir des champs existants dans l’enregistrement courant.

Les règles métier de calcul ont la structure suivante :

  • IF : <Ajouter les conditions séparées par AND/OR>.

  • Then : <Ajouter les calculs à effectuer si la condition IF est satisfaite>.

  • Else : <Ajouter les calculs à effectuer si la condition IF n’est pas satisfaite>.

Cliquez sur le bouton Ajouter pour créer une nouvelle règle de calcul :

image454

L” *éditeur de règles métier* présente les zones suivantes :

image455

  • Zone de création de nouveaux champs calculés image456 .

  • Zone de définition de la condition IF image457 .

  • Zone de définition des calculs à effectuer dans la clause THEN image458.

  • Zone de définition des calculs à effectuer dans la clause ELSE image459.

  • Zone de prévisualisation des résultats du calcul image460 .

Pour ajouter une condition, cliquez sur le label « Add an Expression » dans la zone image461. Une fenêtre de dialogue s’ouvre :

image462

En partie gauche d’une condition, vous pouvez ajouter au choix :

  • Un champ image463. Il suffit de double-cliquer sur le nom du champ.

  • Une expression arithmétique image464, par exemple : champ1 + champ2.

  • Une fonction image465, par exemple « contient », « commence par », …

Comme indiqué sur la capture d’écran ci-dessous, vous devez ensuite ajouter la partie droite de la condition en cliquant sur le label « Add an Expression » image466 à droite de l’opérateur :

image467

En partie droite d’une condition, vous pouvez spécifier au choix :

  • Un littéral (un nombre, un texte, une date, …).

  • La valeur d’un autre champ (e.g. IF champ1 = champ2).

  • Le résultat d’une fonction.

Pour ajouter un calcul dans la clause THEN ou ELSE, cliquez sur le + dans la zone image468 ou image469. Une fenêtre de dialogue similaire à la fenêtre d’édition des conditions vous permet alors d’assigner à des champs le résultat d’un calcul. Ce calcul peut être :

  • Un littéral (e.g. champ1 = 12).

  • La valeur d’un autre champ (e.g. champ1 = champ2).

  • Le résultat d’une fonction (e.g. champ1 = 3 premiers caractères du champ2).

  • Une expression arithmétique (e.g. champ1 = champ2 * champ3 + 10).

7.18.3. Générer des identifiants uniques

Génèrer un identifiant unique (UUID) pour chaque enregistrement du jeu de données courant dans un nouveau champ.

  • La transformation ne s’applique sur aucun champ.

  • La transformation n’utilise pas le ou les filtres actifs.

7.18.4. Inverser les valeurs booléennes

Inverser les valeurs booléennes (vrai, faux) des champs sélectionnés :

  • La valeur vrai devient faux.

  • La valeur faux devient vrai.

  • Les autres valeurs restent inchangées.

  • La transformation s’applique sur un ou plusieurs champs.

  • La transformation utilise le ou les filtres actifs.

7.18.5. Réconcilier / Enrichir avec des données référentielles

Se reporter à la section Utilisation des référentiels.

7.18.6. Transformations à base de script

7.18.6.1. Description

Un langage de script ouvert (Groovy [16]) permet d’accéder en lecture ou en écriture à l’ensemble des cellules d’un enregistrement.

Il est possible de créer de nouveaux champs.

Pour cela cliquer sur le bouton « New Column » image471 afin de spécifier le nom et le type du champ à ajouter :

image472

Toutes les opérations arithmétiques de base sont disponibles ainsi que des centaines de fonctions pour manipuler du texte, des nombres ou des dates (le langage de script permet donc de créer des règles métier potentiellement complexes sur vos données).

L’intégralité de « Groovy » est accessible : boucles, structures de contrôles, manipulation des collections, création de variables, etc. (http://www.groovy-lang.org/groovy-dev-kit.html).

image473

  • Zone d’aide image474 : vous y trouverez les informations de syntaxe pour lire, écrire dans des champs existants ou bien créer de nouveaux champs.

  • Informations à fournir sur le script image475 : nom, commentaire, etc.

  • Deux onglets supplémentaires image476 : un sélecteur de champs et un sélecteur de fonctions (plus de précision dans la suite de ce chapitre).

  • Zone de saisie du texte de script image477.

  • Complétion automatique image478 (tapez Ctrl + Espace).

  • Aide sur l’option de complétion sélectionnée image479.

7.18.6.2. Onglet Sélecteur de champs

image480

  • Sélectionner l’onglet Column Selector image481.

  • Double-cliquer sur un champ image482 .

  • … pour l’injecter avec la syntaxe idoine dans la zone de script image483.

7.18.6.3. Onglet Sélecteur de fonctions (alternative à la complétion automatique)

image484

  • Sélectionner l’onglet Function Selector image485.

  • Double-cliquer sur une fonction image486 .

  • … pour l’injecter avec la syntaxe idoine dans la zone de script image487.

  • Une aide image488 sur la fonction sélectionnée est disponible dans cette zone.

7.18.6.4. Validation de la syntaxe, Prévisualisation de l’exécution et Exécution

image489

  • Cliquer sur le bouton Check Script image490 pour s’assurer de la validité de la syntaxe (indispensable pour pouvoir exécuter le script).

  • Cliquer sur le bouton Preview image491 pour prévisualiser l’exécution du script (à ce stade la transformation de type « script » n’est toujours pas appliquée).

  • Les zones en couleur image492 image493 de la table de prévisualisation montrent les champs dont la valeur est lue par le script.

  • Les zones en couleur image494 image495 de la table de prévisualisation montrent les champs dont la valeur est modifiée par le script.

  • Bouton Appliquer image496 : appliquer le script sur le jeu de données.

Exemple :

Le script suivant crée un champ nommé C et affecte à ce champ la somme du contenu du champ A et du contenu du champ B :

\_row['C'] = \_row['A'] + \_row['B'] ou bien \_row.C = \_row.A + \_row.C

La seconde syntaxe n’est possible que lorsque les noms des champs ne contiennent pas d’espaces.

_row est un mot réservé pour accéder à une cellule existante (en lecture ou en écriture).

  • La transformation s’applique sur un ou plusieurs champs.

  • La transformation utilise le ou les filtres actifs.

7.18.7. Transformation à la souris (Point & Click)

image497

  • image498 Sélectionner un fragment de texte : faire un premier clic dans la cellule qui vous intéresse (bouton gauche de la souris, presser puis relâcher instantanément). Ensuite, une fois la cellule (et la ligne) sélectionnées faire glisser (drag) la souris en maintenant le bouton gauche pressé afin de sélectionner le texte qui vous intéresse.

  • image499 Tale of Data vous propose alors plusieurs options en fonction de la portion de texte que vous avez sélectionnée.

  • image500 Une ou plusieurs colonnes sur fond bleu apparaissent pour montrer quel serait le résultat de la transformation si vous décidiez de l’appliquer (prévisualisation).

  • Bouton Appliquer image501 : appliquer la transformation choisie.

Appelée aussi Smart Selection, cette fonctionnalité permet, en sélectionnant tout ou partie du contenu d’une cellule, de laisser le système proposer une ou plusieurs actions possibles.

Par exemple :

  • En sélectionnant l’année d’une date, l’utilisateur se verra proposé d’extraire le nombre correspondant à l’année dans un nouveau champ.

  • En sélectionnant un caractère (e.g. ‘,” ou « ; », etc.), le système propose de séparer le contenu de la cellule sur plusieurs champs en utilisant comme séparateur le ou les caractères sélectionnés.

  • En sélectionnant un mot dans une phrase, le système propose de créer un champ indiquant si le mot est présent ou non dans la cellule (vrai / faux).

  • La transformation s’applique sur un unique champ.

  • La transformation utilise le ou les filtres actifs.

7.18.8. Ajouter un indicateur de qualité

Créer un indicateur de qualité sur plusieurs critères : valeurs manquantes ou invalides, lignes invalides (violations de règles de validation de colonnes et / ou de lignes).

image502

  • image503 Choisir le nom de l’indicateur : ce nom sera utilisé pour créer la ou les colonnes qui contiendront les informations sur la qualité de chaque enregistrement (ligne).

  • image504 Choisir la méthode de calcul de l’indicateur. Six options sont proposées :

    • Booléen : “vrai” signifie qu’il y a un problème de qualité pour la ligne (au regard des types de contrôles spécifiés dans les zones tabulaires image505 et image506).

    • Booléen : “vrai” signifie qu’il n’y a aucun problème de qualité.

    • Entier (0 ou 1) : 1 signifie qu’il y a un problème de qualité.

    • Entier (0 or 1) : 1 signifie qu’il n’y a aucun problème de qualité.

    • Nombre de contrôles en échec (0 signifie OK). Pour chaque ligne, la valeur de l’indicateur correspond au nombre total d’échecs aux contrôle spécifiés dans les zones tabulaires image507 et image508.

    • Nombre de contrôles en échec par type d’anomalies. Le calcul est identique au précédent, mais ici, 5 colonnes (une colonne par type d’anomalie) sont ajoutées en plus de la colonne total (qui porte le nom de l’indicateur) :

      • valeurs vides

      • valeurs mal formées (= échec de la vérification du type)

      • natures invalides (ex : téléphone ou email non valide)

      • valeurs ne respectant pas une règle de validation de colonne

      • enregistrement ne respectant pas une règle de validation de lignes

image509

Méthode de calcul Nombre de contrôles en échec par type d’anomalies : six colonnes supplémentaires. Cinq colonnes sont préfixées par le nom de l’indicateur (KPI_1_XXX). La colonne portant le nom de l’indicateur contient le nombre total des anomalies pour une ligne donnée.

Deux types de contrôle peuvent être effectués pour le calcul de l’indicateur qualité :

  • Le contrôle par champ (onglet Règles de validation de champs image510). On effectue pour chaque champ sélectionné :

    • Une vérification du type :

      dans un champ de type date par exemple, toutes les cellules contenant une valeur non reconnue comme une date valide seront considérées, dans le calcul de l’indicateur, comme étant en erreur.

    • Une vérification de la nature :

      dans un champ identifié comme contenant des e-mails par exemple, toutes les cellules contenant une valeur non reconnue comme un e-mail valide seront considérées, dans le calcul de l’indicateur, comme étant en erreur.

    • Une vérification de la présence :

      toutes les cellules ne contenant pas de valeur seront considérées, dans le calcul de l’indicateur, comme étant en erreur.

    • Une vérification des règles de validation de champ apposée dans un nœud de préparation en amont.

      Dans le champ spécifié, toutes les cellules contenant une valeur non valide au sens de la règle (ex : liste de valeurs admises ou intervalle de validité) seront considérées, dans le calcul de l’indicateur, comme étant en erreur.

  • Le contrôle par enregistrement (onglet « Règles de validation de lignes » image511). Pour chaque règle cochée, on effectue une vérification de la validité de l’enregistrement. Tout enregistrement non valide sera considéré, dans le calcul de l’indicateur, comme étant en erreur.