Types de règles - 7.1

Standardization

author
Talend Documentation Team
EnrichVersion
7.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Data Quality > Composants de standardisation
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de standardisation
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de standardisation
EnrichPlatform
Studio Talend

Les types de règles fournies sont divisées en deux groupes : les types de règles simples et les types de règles avancées.

  • Les types de règles simples sont : Enumeration, Format et Combination. Les règles de ce type se composent de certains symboles ANTLR donnés.

  • Les types de règles avancées sont : Regex, Index et Shape. Les règles de ce type correspondent aux données segmentées et standardisent ces données si nécessaire.

Les règles de type avancé sont toujours exécutées après les règles spécifiques ANTLR. Aucun compte n'est tenu de leur ordre. Pour plus d'informations concernant les règles simples et avancées, consultez Différents types de règles pour différents niveaux de parsing et Utiliser deux niveaux de parsing pour extraire des informations de données non structurées.

Pour créer les règles de tout type, Talend fournit les éléments suivants prédéfinis et sensibles à la casse (éléments ANTLR) pour définir la composition d'une chaîne de caractères à mettre en correspondance :

  • INT : entier ;

  • WORD : mot ;

  • WORD+ : groupe de plusieurs mots ;

  • CAPWORD : mots en majuscules ;

  • DECIMAL : float décimal ;

  • FRACTION : float fraction ;

  • CURRENCY : devises ;

  • ROMAN_NUMERAL : chiffres romains ;

  • ALPHANUM : nombres alphanumériques (combinaison de caractères alphabétiques et numériques) ;

  • WHITESPACE : espace ;

  • UNDEFINED : chaînes de caractères non attendues, comme les codes ASCII qui ne sont reconnus par aucun autre élément.

Les trois tableaux suivants présentent successivement les informations détaillées concernant les types de règles simples, les types de règles avancées et les symboles ANTLR utilisés par les types de règles simples. Ces trois tableaux vous aident à compléter le tableau Conversion rules dans l'onglet Basic settings de ce composant.

Pour les types de règles simples :

Type de règle simple

Utilisation

Exemple

Conditions de composition de règles

Enumeration

Une règle de ce type fournit une liste de correspondances facultatives.

RuleName : LengthUnit

RuleValue :" 'inch' | 'cm' "

- Chaque option doit être écrite dans une paire de guillemets simples, sauf si cette option est un élément prédéfini.

- Les options définies doivent être séparées par le symbole |.

Format

(Le nom de la règle commence par une majuscule.)

Une règle de ce type utilise les éléments prédéfinis, avec les règles personnalisées Enumeration, Format ou Combination afin de définir la composition d'une chaîne de caractères.

RuleName : Length

RuleValue : "DECIMAL WHITESPACE LengthUnit"

Cette règle signifie qu'un espace entre les décimaux et les unités de longueur est requis. Il correspond donc à des chaînes de caractères telles que 1.4 cm, mais ne correspond pas à une chaîne de caractères comme 1.4cm. Pour que ces deux exemples correspondent, vous devez définir cette règle comme, par exemple, suit : "DECIMAL WHITESPACE* LengthUnit".

LengthUnit est une règle de type Enumeration qui définit " 'inch' | 'cm' ".

- Lorsque le nom d'une règle Format commence par une majuscule, cette règle nécessite un résultat de correspondance parfaite. Cela signifie que vous devez définir exactement tout élément simple d'une chaîne de caractères, même un espace.

Format (Le nom de la règle commence par une minuscule)

Une règle de ce type est presque identique à une règle Format, dont le nom commence par une majuscule. La différence est qu'une règle Format avec une minuscule en début de mot ne requiert pas de correspondance exacte.

RuleName : length

RuleValue : "DECIMAL LengthUnit"

Cette règle correspond aux chaînes telles que 1.4 cm ou 1.4cm, etc. où Decimal est un des types d'éléments pré-définis et où LengthUnit est une règle Enumeration défnissant " 'inch' | 'cm' ".

n/a

Combination

Une règle de ce type est utilisée lorsque vous devez créer plus règles du même nom.

RuleName : Size (ou size)

RuleValue : "length BY length"

La règle fait correspondre des chaînes de caractères telles que 1.4 cm by 1.4 cm, où length est une règle de type Format (commençant par une minuscule) et où BY est une règle de type Enumeration qui définit " 'By' | 'by' | 'x' | 'X' ".

- Le texte ou les caractères littéraux ne sont pas acceptés comme faisant partie de la valeur de la règle. Lorsque des textes ou caractères littéraux sont nécessaires, vous devez créer une règle Enumeration pour définir ces textes ou ces caractères et utiliser ensuite cette règle Enumeration à la place de la première.

- Lorsque plusieurs règles Combination utilise le même nom, elles sont exécutées en ordre décroissant dans la table Conversion rules de la vue Basic settings du tStandardizeRow. Il est donc conseillé de les classer correctement afin d'obtenir un résultat optimal. Pour un exemple, consultez le scénario suivant :

Avertissement :

Tous les caractères ou chaînes de caractères littéraux, s'ils ont acceptés par le type de la règle, doivent être placés entre guillemets simples. Autrement, ils seront traités comme des symboles grammaticaux ou des variables ANTLR et généreront des erreurs ou des résultats non souhaités lors de l'exécution.

Pour les types de règles avancées :

Type de règle avancée

Utilisation

Exemple

Avertissement

Regex

Une règle de ce type utilise des expressions régulières pour mettre en correspondance les données entrantes segmentées par ANTLR.

RuleName : ZipCode

RuleValue : "\\d{5}"

Cette règle correspond aux chaînes de caractères telles que "92150".

Les expressions régulières doivent être compatibles avec Java.

Index

Une règle de ce type utilise un index de synonymes comme référence pour rechercher les données entrantes mises en correspondance.

Pour plus d'informations concernant les index de synonymes disponibles, consultez l'annexe relative aux dictionnaires de synonymes de données, dans le Guide utilisateur du Studio Talend .

Un scénario est disponible dans Standardiser des adresses provenant de données non structurées.

- Sous Windows, les barres obliques inverses "\" doivent être remplacées par des barres obliques "/" si le chemin d'accès est copié à partir du fichier système.

- Avant le chemin complet à indexer, vous devez saisir le protocole : file://, même si vous exécutez le Job en mode local ou hdfs:// si l'index est dans un cluster.

- Lorsque vous traitez un enregistrement, une règle Index met en correspondance la première chaîne de caractères identifiée comme correspondante.

- Dans un Job Talend Map/Reduce, vous devez compresser chaque index de synonymes à utiliser en fichier Zip. Si vous utilisez Talend Oozie scheduler pour exécuter ce Job, vous devez placer le fichier .zip dans la distribution où le Job est exécuté.

Shape

Une règle de ce type utilise des segments pré-définis ainsi que des règles établies Regex ou Index ou les deux pour faire correspondre les données entrantes.

RuleName : Address

RuleValue : "<INT><WORD><StreetType>"

Cette règle correspond aux adresses telles que 12 main street, où INT et WORD sont des jetons prédéfinis (éléments de règle) et StreetType est une règle Index que vous devez définir avec cette règle d'exemple dans la vue Basic settings de ce composant.

Pour plus d'informations concernant le type de règle Shape, consultez Standardiser des adresses provenant de données non structurées.

Seul le contenu placé entre &lt; > est reconnu. Autrement, le contenu est considéré comme une erreur ou est omis.

Pour les symboles ANTLR donnés :

Symboles

Signification

|

alternative

's'

caractère littéral ou chaîne de caractères constante (string literal)

+

1 ou plus

*

0 ou plus

?

facultatif ou prédicat sémantique

~

ne correspond pas

Les scénarios suivants présentent des exemples d'utilisation de ces symboles, mais vous pouvez également trouver d'autres exemples en consultant ce site :

https://theantlrguy.atlassian.net/wiki/display/ANTLR3/ANTLR+Cheat+Sheet.