AttributeValidator
Valide des attributs selon des conditions de tests définies par l'utilisateur puis dirige les entités selon le résultat du (ou des) test(s) et identifie les tests ayant échoué.
Utilisations typiques
- Effectuer un test de qualité de données
- Améliorer l'intégrité des données en testant des attributs contre un ensemble de conditions
- Assure que les attributs répondent aux prérequis des contraintes et domaines des bases de données de destination.
Comment fonctionne-t-il ?
AttributeValidator reçoit des entités avec attributs destinés à être testés selon les Règles de validation définies par l'utilisateur.
Une grande variété de types de règles de validation est disponible. Les règles sont créées dans un tableau, et chaque ligne comprend l'attribut ou les attributs à valider, le type de test à effectuer et toute configuration requise. Un attribut peut être testé par rapport à un nombre quelconque de règles, et une règle peut être appliquée à un nombre quelconque d'attributs.
Il y a deux ports de sortie : Passed (réussi) et Failed (échoué).
Les entités sortant par le port Passed sont celles dont les attributs ont réussi toutes les tests définis.
Si un test échoue, les entités ressortiront par le port Failed avec la description des échecs :
- Le premier test échoué sera documenté dans le nouvel attribut _fme_validation_message.
- Le premier test échouant et tout test postérieur seront documentés dans un nouvel attribut de liste _fme_validation_message_list{}.
Les tests sont évalués dans l'ordre dans lequel ils sont listés dans la table Règles de validation des Paramètres du Transformer.
Création des règles de validation
Chaque règle se compose des attributs à tester et du test à effectuer. Les tests suivants sont disponibles.
Règle de validation |
Description |
Configuration |
||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Méthode |
Teste si la valeur est compatible avec le Type choisi. Vous pouvez tester plusieurs types en ajoutant des Règles de validation additionnelles. |
Sélection du type à tester.
|
||||||||||||||||||||||||||
Dans la plage |
Teste si la valeur tombe dans une plage numérique spécifiée. Les plages semi-bornées peuvent être définies en laissant la limite soit basse soit haute vierge. |
Les valeurs de plage sont séparées par une virgule et incluses entre accolades. Les accolades - [ ] - indiquent des limites inclusives (supérieur ou égal à, inférieur ou égal à). Les accolades - ( ) - indiquent des limites exclusives (supérieur ou inférieur à). Exemples de plages valides : (1,9) Supérieur à 1 et inférieur à 9 [1,9] Supérieur ou égal à 1 et inférieur ou égal à 9 (1,9] Supérieur à 1 et inférieur ou égal à 9 (1,) Supérieur à 1 [,9] Inférieur ou égal à 9 |
||||||||||||||||||||||||||
Casse | Teste si la valeur correspond au motif de casse sélectionné. |
Sélectionner un motif de casse.
|
||||||||||||||||||||||||||
Longueur minimum |
Teste si le nombre de caractères dans la valeur est plus grande ou égale à la Longueur minimum. Toutes les valeurs sont évaluées en tant que chaînes de caractères. |
Entrer un entier. Exemple : Si la longueur minimum = 4 Bvd: Echoué Blvd: Réussi Boulevard: Réussi |
||||||||||||||||||||||||||
Longueur maximum |
Teste si le nombre de caractères dans la valeur est inférieure ou égale à la Longueur maximum. Toutes les valeurs sont évaluées en tant que chaînes de caractères. |
Entrer un entier. Exemple : Si Longueur maximum = 4 123: Réussi 1234: Réussi 999999: Echoué |
||||||||||||||||||||||||||
In (dans) | Teste si la valeur peut être trouvée dans la liste de plages et valeurs possibles fournie. |
Entrer une combinaison de chaînes séparées par des virgules, valeurs numériques et/ou plages (sous la forme de x-y). Exemple de configuration valide : 1,10,100 1-99 cat cat,dog,cats and dogs dogs,1-9,7 |
||||||||||||||||||||||||||
Encodé en | Teste si la valeur est encodable dans l'encodage spécifié sans perte de données. |
Sélectionner dans une liste d'encodages standard. Exemples d'encodages :
|
||||||||||||||||||||||||||
Non Nul | Teste que l'attribut existe dans l'entité et n'est pas nul. | <Inutilisé> | ||||||||||||||||||||||||||
Unique |
Teste si une valeur est unique (utilisée une seule fois) au sein du jeu d'entités. La première occurrence d'une valeur réussira et toute occurrence suivante échouera. |
<Inutilisé> | ||||||||||||||||||||||||||
A une valeur | Teste que l'attribut a une valeur et n'est ni nul, ni absent, ni vide. | <Inutilisé> | ||||||||||||||||||||||||||
Contient une expression régulière | Teste si la valeur contient une chaîne de caractères qui correspond au motif décrit par l'expression régulière. |
Entrer une expression régulière. L'Editeur Expression régulière est disponible via le bouton (...) et peut être utilisé pour construire et tester des expressions. La regex à tester peut représenter une chaîne de caractères à trouver n'importe où dans la valeur, ou peut représenter la valeur entière (en créant une regex assez longue pour représenter la portée de la valeur souhaitée). Exemple : Si regex est \d chats: Echoué 9 : Réussi chats82 : Réussi |
Exemples
Dans cet exemple, nous avons une feuille de calcul de restaurateurs qu'il faut tester pour un contrôle qualité.
Les entités sont dirigées vers AttributeValidator.
Dans les Paramètres, nous construisons trois tests à effectuer :
- A une valeur : tous les attributs sont testés pour l'existence de n'importe quelle valeur, ce qui identifiera toute donnée manquante.
- Dans : L'attribut DESCRIPTION est testé pour vérifier si ses valeurs se trouvent dans une liste d'options valides. La liste est saisie, les éléments étant séparés par des virgules. Les éléments qui échouent à ce test peuvent contenir des informations erronées ou des erreurs de saisie, comme une casse ou une orthographe incorrectes.
- Type : Les attributs LAT et LON sont testés pour voir s'ils contiennent des décimales. Comme ils contiennent l'emplacement des vendeurs, les éléments qui échouent à ce test peuvent avoir des coordonnées invalides.
Les entités qui échouent à l'un des tests sont publiées via le port Failed. Un nouvel attribut - _fme_validation_message - a été ajouté et contient les détails du premier test échoué pour chaque entité. Notez que les tests sont appliqués dans l'ordre où ils apparaissent dans le tableau des règles de validation.
Un nouvel attribut de liste a également été ajouté (qui n'est pas visible dans la vue Tableau) - _fme_validation_message_list{} . Tous les tests échoués sont ajoutés à l'attribut de liste.
Notez que cette entité a échoué deux tests - le BUSINESS_NAME (nom d'entreprise) n'a pas de valeur et la DESCRIPTION a échoué parce que la casse de la valeur est fausse (tout en majuscules).
Notes
- L'ordre des entités peut être contrôlé avec le paramètre Avancé > Préserver l'ordre des entités.
Configuration
Ports d'entrée
Entités avec attributs à valider.
Ports de sortie
Si l'entité remplit les conditions du test, elle ressort du Transformer par le port Passed (succès).
Si n'importe quel test échoue, les entités ressortent par le port Failed avec des attributs additionnels décrivant l'échec.
Paramètres
Voir Création de règles de validation ci-dessus pour plus de détails.
Attributs à valider | Sélectionner le (ou les) attribut(s) à tester. |
Règle de validation |
Sélectionnez le type de test à effectuer. Les options comprennent :
|
Configuration de la règle | Entrer une information de configuration supplémentaire pour le test sélectionné. |
Conserver l'ordre des entités |
Ce paramètre contrôle l'ordre dans lequel les entités quittent un Transformer. Lorsqu'un Transformer a plus d'un port de sortie, les entités sortent généralement d'un port à la fois. Parfois, il peut être utile de garder l'ordre dans lequel les entités sont arrivées, en passant d'un port à l'autre si nécessaire. Cela permet de préserver l'ordre des entités, mais au prix d'une perte potentielle d'efficacité du traitement. Sélectionner une méthode pour l'ordre des entités :
|
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments du traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres d'espace de travail. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au projet peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
Références
Comportement |
|
Stockage des entités |
Non |
Dépendances | Aucun |
Alias | AttributeClassifier, StringClassifier |
Historique | Ce Transformer remplace AttributeClassifier. |
FME Community
FME Community iest l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Rechercher tous les résultats sur ce Transformer sur FME Community.
Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.