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 :
L” *éditeur de règles métier* présente les zones suivantes :
Pour ajouter une condition, cliquez sur le label « Add an Expression » dans la zone . Une fenêtre de dialogue s’ouvre :
En partie gauche d’une condition, vous pouvez ajouter au choix :
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 » à droite de l’opérateur :
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 ou . 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 » afin de spécifier le nom et le type du champ à ajouter :
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).
Zone d’aide : 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 : nom, commentaire, etc.
Deux onglets supplémentaires : un sélecteur de champs et un sélecteur de fonctions (plus de précision dans la suite de ce chapitre).
7.18.6.2. Onglet Sélecteur de champs
7.18.6.3. Onglet Sélecteur de fonctions (alternative à la complétion automatique)
7.18.6.4. Validation de la syntaxe, Prévisualisation de l’exécution et Exécution
Cliquer sur le bouton Check Script pour s’assurer de la validité de la syntaxe (indispensable pour pouvoir exécuter le script).
Cliquer sur le bouton Preview 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 de la table de prévisualisation montrent les champs dont la valeur est lue par le script.
Les zones en couleur de la table de prévisualisation montrent les champs dont la valeur est modifiée par le script.
Bouton Appliquer : 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)
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.
Tale of Data vous propose alors plusieurs options en fonction de la portion de texte que vous avez sélectionnée.
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).
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).
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).
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 et ).
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 et .
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
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 ). 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 » ). 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.