Fonctions et données sensibles fréquentes - 7.0

Data privacy

author
Talend Documentation Team
EnrichVersion
7.0
EnrichProdName
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Data Quality > Composants de protection des données sensibles
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de protection des données sensibles
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de protection des données sensibles
EnrichPlatform
Studio Talend

Différentes fonctions dans le composant tDataMasking peuvent varier selon le type de la colonne de données.

Il est recommandé d'utiliser les fonctions prédéfinies dans le composant avec des colonnes contenant des informations personnelles, comme des noms et prénoms, des adresses e-mail, des adresses, des numéros de Sécurité Sociale, des numéros de cartes de crédit, des numéros de comptes bancaires, la race, le genre, la date de naissance et le salaire.

Les fonctions ne s'expliquant pas d'elles-mêmes sont présentées dans le tableau ci-dessous :

Fonction

Description

Set to null

Cette fonction retourne null. Elle ne requiert aucun paramètre.

Date Variance

Cette fonction s'applique uniquement aux valeurs de type Date. Elle utilise un paramètre devant être un nombre. Ce paramètre représente un nombre de jours. Elle modifie la date d'entrée en ajoutant ou en récupérant un nombre de jours inférieur à celui du paramètre.

Par exemple, si la date d'entrée est 15-02-1992 et que le paramètre est 10, alors la date générée est aléatoirement sélectionnée entre 05-02-1992 (15 - 10) et 25-02-1992 (15 + 10).

Si la date d'entrée est nulle, la fonction retourne la date courante.

Si le paramètre donné est 0 ou null, ou s'il n'est pas un nombre, le paramètre est alors remplacé par 31. Par exemple, si la date d'entrée est 05-11-2016, alors la date générée est aléatoirement sélectionnée entre 04-10-2016 (31 jours avant la date d'entrée) et 06-12-2016 (31 jours après la date d'entrée).

Keep year and set day and month to 01/01

Cette fonction s'applique uniquement aux valeurs de type Date. Elle ne requiert aucun paramètre. Cette fonction modifie le mois et l'année de la date d'entrée et retourne le premier janvier mais elle ne modifie pas l'année.

Par exemple, si la date d'entrée est 15-02-1992, la fonction retourne 01-01-1992. Si la date d'entrée est nulle, la fonction retourne le premier janvier de l'année courante, par exemple 01-01-2017.

Generate Account Number

Cette fonction génère un numéro de compte bancaire français valide. Elle ne requiert aucun paramètre et s'applique aux valeurs String.

Un numéro IBAN français est un code à 27 caractères. Les numéros sont générés aléatoirement par rapport à des algorithmes. Le dernier nombre de l'IBAN est connu comme clé du RIB et est généré avec un algorithme. Les troisième et quatrième de chiffres de l'IBAN sont également générés à l'aide d'un algorithme.

Generate Account Number and keep original country

Cette fonction se comporte comme Generate Account Number, elle génère un numéro de compte bancaire valide, pour le pays d'origine.

Si l'entrée est un numéro IBAN correct, la fonction génère un numéro IBAN du même pays, en entrée, prenant en compte l'IBAN, différent d'un pays à l'autre. Si l'entrée est un numéro de compte bancaire provenant des États-Unis, la fonction garde les neuf premiers chiffres et remplace les autres de manière aléatoire.

Generate credit card

Cette fonction génère un numéro de carte de crédit valide. Elle ne requiert aucun paramètre et peut être appliquée sur des valeurs de type String ou Long.

Trois types de cartes de crédit peuvent être générés : Visa, Master Card ou American Express. Un de ces types est choisi au hasard et un numéro de carte de crédit est généré. Ce numéro est généré aléatoirement et passe un algorithme détectant les faux numéros de cartes de crédit.

Generate credit card and keep original bank

Cette fonction se comporte comme Generate credit card, elle génère une numéro de carte de crédit valide, pour la banque d'origine.

Si l'entrée est un numéro de carte de crédit de type Visa, MasterCard ou American Express, la fonction génère un numéro de carte de crédit de même type et conserve le numéro d'identification bancaire. Autrement, la fonction se comporte comme Generate credit card.

Generate from Pattern

Cette fonction s'applique uniquement sur des chaînes de caractères (Strings) et nécessite un paramètre.

Il génère une valeur correspondant au modèle donné comme paramètre. Le modèle doit suivre les règles suivantes :

- le caractère A est remplacé par une lettre capitale au hasard.

- le caractère a est remplacé par une lettre minuscule aléatoire.

- le chiffre 9 est remplacé par un chiffre aléatoire.

- tous les autres caractères restent tels qu'ils sont.

Vous pouvez générer différentes chaînes de caractères avec le même argument (valeur) en utilisant \\1 dans le modèle.

Par exemple, si le modèle donné est Aaaaa.Aaaaa99\\1,@gmail.com, la fonction va générer quelque chose comme Dsdf.Ksknt12@gmail.com. La valeur @gmail.com reste inchangée.

Cette fonction ne fonctionne pas correctement si une virgule est utilisée dans le modèle.

Generate Phone Number

Cette fonction s'applique uniquement sur les types Strings et ne requiert pas de paramètre.

Elle génère un numéro de téléphone aléatoire de différents pays (France, Allemagne, Japon, Royaume-Uni et États-Unis).

Generate Social Security Number (SSN)

Cette fonction est utilisée uniquement sur des chaînes de caractères et ne nécessite pas de paramètre. Elle génère un numéro de Sécurité sociale aléatoire valide pour différents pays de votre choix (Chine, France, Allemagne, Inde, Japon, Royaume-Uni et États-Unis).

La fonction retourne un numéro de Sécurité sociale aléatoire valide, quelle que soit la valeur en entrée.

Generate unique SSN

Cette fonction ne s'utilise qu'avec des chaînes de caractères et ne nécessite aucun paramètre. Elle génère un numéro de Sécurité sociale aléatoire valide et unique associé à l'entrée de différents pays (Chine, France, Allemagne, Inde, Japon, Royaume-Uni et États-Unis).

C'est-à-dire, s'il y a des doublons dans les données d'entrée, vous obtiendrez les mêmes doublons dans les numéros de Sécurité sociale générés. De la même manière, s'il n'y a pas de doublon dans les données d’entrée, il n'y en aura pas dans les numéros de Sécurité sociale générés.

Si l'entrée est nulle ou n'est pas un numéro de Sécurité sociale valide, la fonction retourne une chaîne de caractères vides.

Generate Sequence

Remarque :

Cette fonction n'est pas compatible avec la version Spark de ce composant.

Cette fonction peut être appliquée à tout ce qui n'est pas une date (Integer, Long, String, etc.). Elle requiert un paramètre devant être un nombre. Cette fonction retourne le paramètre et, pour chaque ligne, ce nombre sera augmenté de 1. Si le paramètre n'est pas un nombre, il est configuré à 0.

Generate Uuid

Cette fonction s'applique uniquement aux valeurs de type String et ne nécessite aucun paramètre. Elle remplace la valeur d'entrée par un UUID généré aléatoirement.

Cette fonction utilise UUID.randomUUID() fournie par Java, signifiant qu'il n'y a pas de d'échantillon de données utilisé ici, ce qui implique que, si l'utilisateur exécute deux fois le même Job, les UUID générés seront différents.

Generate value between two values

Cette fonction génère une valeur aléatoire prise entre deux valeurs mentionnées comme argument. L'argument doit être une chaîne de caractères contenant les liens, séparés par une virgule, min et max.

Cette fonction peut être appliquée à n'importe quel type de champ. Cependant, si le champ est une date les dates de début et de fin doivent également être des dates et doivent avoir le même format dans le schéma, dd-MM-yyyy par exemple. Cependant, les dates de début et de fin doivent être des entiers.

Si l'entrée est de type Date, les fonctions retournent la date courante si les paramètres ne sont pas dans le bon format. Sinon, la fonction retourne une chaîne de caractères vide pour les valeurs des chaînes de caractères et 0 pour les valeurs numériques.

Keep characters between two positions

Cette fonction peut être utilisée sur des chaînes de caractères et nécessite deux paramètres séparés par une virgule.

Les deux premiers paramètres représentent les places de deux éléments d'entrée. La fonction retourne une nouvelle chaîne de caractères contenant seulement ces éléments et ce qui se trouve entre eux.

Si l'entrée est nulle ou si le paramètre est dans un mauvais format, la fonction retourne une chaîne de caractères vide. Si la limite inférieure est inférieure à 1, elle sera configurée à 1 et, si la limite supérieure est supérieure à la longueur de la chaîne de caractères, elle sera configurée à cette longueur. Les deux paramètres peuvent être donnés dans n'importe quel ordre. Si l'argument est 4, 2, il sera remplacé par 2, 4. Par exemple, si l'entrée est Steven et l'argument est 4, 2, le résultat sera tev.

Remove Characters between two positions

Cette fonction a le même comportement que Keep characters between two positions, mais avec une instruction de suppression.

Replace characters between two positions

Cette fonction a le même comportement que Keep characters between two positions, mais avec une instruction de remplacement.

Lorsque vous utilisez Replace characters between two positions, vous pouvez saisir un troisième paramètre qui est un caractère utilisé pour remplacer les éléments dans l'entrée. Si vous ne saisissez pas un troisième paramètre, chaque caractère est remplacé par un caractère sélectionné aléatoirement.

Par exemple, si l'entrée est Steven et l'argument est 2, 4, X, le résultat sera SXXXen.

Keep n first digits and replace following ones

Cette fonction est utilisée sur des valeurs de type String, Integer et Long et nécessitent un nombre en tant que paramètre.

Si le paramètre est n, la fonction garde les n premiers chiffres de l'entrée et remplace tous les chiffres qui suivent par d'autres chiffres. Les caractères qui ne sont pas des chiffres ne seront pas modifiés. Une entrée nulle fait retourner par la fonction une chaîne de caractères vide ou 0.

Si la valeur du paramètre est supérieure à la longueur de l'entrée, aucune modification n'est appliquée.

Keep n last digits and replace previous ones

Cette fonction est la contrepartie de Keep n first digits and replace following ones.

Mask Address

Cette fonction peut être utilisée uniquement sur des valeurs de type String. Elle remplace des chiffres par d'autres chiffres et le reste par X.

De plus, voici une liste de mots-clés qui ne seront pas transformés : Rue, rue, r., strasse, Strasse, Street, street, St., St, Strae, Strada, Rua, Calle, Ave., avenue, Av., Allée, all"e, alle, Avenue, Avenida, Bvd., Bd., Boulevard, boulevard, Blv., Viale, Avenida, Bulevar, Route, route, road, Road, Rd., Chemin, Way, Cour, Court, Ct., Place, place, Pl., Square, Impasse, Alle, Driveway, Auahrt, Viale, Esplanade, Esplanade, Promenade, Lungomare, Esplanada, Esplanada, Faubourg, faubourg, Suburb, Vorort, Periferia, Subrbio, Suburbio, Via, Via, industrial, area, zone, industrielle, Périphérique, Peripheral, Voie, voie, Track, Gleis, Carreggiata, Caminho, Pista, Forum, STREET, RUE, ST., AVENUE, BOULEVARD, BLV., BD, ROAD, ROUTE, RD., RTE, WAY, CHEMIN, COURT, CT., SQUARE, DRIVEWAY, ALLEE, DR., ESPLANADE, SUBURB, BANLIEUE, VIA, PERIPHERAL, PERIPHERIQUE, TRACK, VOIE, FORUM, INDUSTRIAL, AREA, ZONE, INDUSTRIELLE.

Vous pouvez ajouter un paramètre : soit une liste de mots-clés à ajouter à la liste ci-dessus (séparés par une virgule), soit un chemin d'accès à un fichier contenant les mots.

Mask email full domain by character

Cette fonction est utilisable uniquement sur des chaînes de caractères. Elle remplace tous les caractères suivant un caractère @ par le caractère que vous saisissez en tant que paramètre, ou par une série de X, si vous ne saisissez pas de paramètre.

Si vous saisissez un paramètre non autorisé, comme une chaîne de caractères, une liste, plusieurs caractères, un chiffre, etc. le domaine complet de l'e-mail sera masqué par une série de X, par défaut.

Par exemple, si l'adresse e-mail initiale est example@talend.com et le modèle donné est B, l'e-mail généré ressemble à ceci : example@BBBBBB.BBB.

Mask email full domain with consistent items

Cette fonction est utilisable uniquement sur des chaînes de caractères. Elle remplace tous les caractères suivant un caractère @ par un domaine de la liste donnée en tant que paramètre (peut également être chemin pointant vers un fichier contenant les domaines que vous souhaitez utiliser). Si vous ne saisissez pas un paramètre, tous les caractères suivant le caractère @ sont supprimés.

Par exemple, si l'adresse e-mail initiale est example@talend.com et le paramètre donné est google.com, yahoo.fr, hotmail.com, la fonction choisit aléatoirement un domaine de la liste et écrit en sortie example@google.com, example@yahoo.fr ou example@hotmail.com.

Mask email left part of domain by character

Cette fonction est utilisable uniquement sur des chaînes de caractères. Elle remplace la partie du domaine précédant le point par le caractère saisi en tant que paramètre ou par une série de X, si vous ne saisissez pas de paramètre.

Si vous saisissez un paramètre non autorisé, comme une chaîne de caractères, une liste, plusieurs caractères, un chiffre, etc. le domaine complet de l'e-mail sera masqué par une série de X, par défaut.

Par exemple, si l'adresse e-mail initiale est example@talend.com et le modèle donné est B, l'e-mail généré ressemble à ceci : example@BBBBBB.BBB.

Mask email left part of domain with consistent items

Cette fonction est utilisable uniquement sur des chaînes de caractères. Elle remplace la partie du domaine précédant le point par un nom de domaine de la liste donnée en tant que paramètre (peut également être chemin pointant vers un fichier contenant les domaines que vous souhaitez utiliser). Si vous ne saisissez pas un paramètre, la partie du domaine précédant le point est supprimée.

Par exemple, si l'adresse e-mail initiale est example@talend.com et le paramètre donné est google, yahoo.co, hotmail, la fonction choisit aléatoirement un domaine de la liste et écrit en sortie example@google.com, example@yahoo.co.com ou example@hotmail.com.

Mask email local part by character

Cette fonction est utilisable uniquement sur des chaînes de caractères. Elle remplace tous les caractères précédant un caractère @ par le caractère que vous saisissez en tant que paramètre, ou par une série de X, si vous ne saisissez pas de paramètre.

Si vous saisissez un paramètre non autorisé, comme une chaîne de caractères, une liste, plusieurs caractères, un chiffre, etc. la partie locale de l'adresse e-mail sera masquée par une série de X, par défaut.

Par exemple, si l'adresse e-mail initiale est example@talend.com et le modèle donné est B, l'e-mail généré ressemble à ceci : BBBBBBB@talend.com.

Mask email local part with consistent items

Cette fonction est utilisable uniquement sur des chaînes de caractères. Elle remplace tous les caractères précédant un caractère @ par une valeur de la liste donnée en tant que paramètre (peut également être chemin pointant vers un fichier contenant les domaines que vous souhaitez utiliser). Si vous ne saisissez pas de paramètre, tous les caractères précédant un caractère @ sont supprimés.

Par exemple, si l'adresse e-mail initiale est example@talend.com et le paramètre donné est jdoe, jsmith, pnewman, la fonction choisit aléatoirement une valeur de la liste et écrit en sortie jdoe@talend.com, jsmith@talend.com ou pnewman@talend.com.

Numeric Variance

Cette fonction s'applique uniquement aux types numériques (Integer, Long, Float et Double).

Elle prend un paramètre qui doit être un nombre. Ce paramètre représente un pourcentage de modification. La fonction modifie les données d'entrée en les multipliant par un nombre compris entre la valeur du paramètre et son opposé. Par exemple, si l'entrée est de 100 et le paramètre est de 10, la valeur générée est sélectionnée aléatoirement entre 90 (100 - 10 %) et 110 (100 + 10 %). Si l'entrée est nulle, la fonction retourne 0. Si le paramètre donné est 0, il sera remplacé par 10.

Replace all

Cette fonction peut être utilisée avec des chaînes de caractères et nécessite un caractère comme paramètre. Si vous ne saisissez aucun paramètre, chaque caractère est remplacé par un caractère sélectionné aléatoirement.

Si le paramètre est X, la fonction remplace tous les caractères de l'entrée par X. Si l'entrée est nulle, la fonction retourne une chaîne de caractères vide.

Replace all digits

Cette fonction peut être utilisée avec des chaînes de caractères et nécessite un caractère comme paramètre. Si vous ne saisissez aucun paramètre, chaque chiffre est remplacé par un chiffre sélectionné aléatoirement.

Tous les autres caractères ne seront pas modifiés. Si l'entrée est nulle, la fonction retourne une chaîne de caractères vide.

Replace all letters

Cette fonction peut être utilisée avec des chaînes de caractères et nécessite un caractère comme paramètre. Si vous ne saisissez aucun paramètre, toutes les lettres sont remplacées par un caractère sélectionné aléatoirement.

Tous les autres caractères ne seront pas modifiés. Si l'entrée est nulle, la fonction retourne une chaîne de caractères vide.

Replace by consistent items from input list (or file)

Cette fonction modifie la valeur d'entrée en sélectionnant aléatoirement une des valeurs données en paramètre. Les valeurs doivent êtres stockées dans une chaîne de caractères et séparées par une virgule, par exemple ("item1, item2, item3, etc."). Elle utilise la fonction hashCode() fournie par Java pour choisir un élément de la liste.

Elle est appliquée à des valeurs de type String ou des valeurs numériques et assure que deux entrées similaires produisent la même sortie. Elle retourne une chaîne de caractères vide ou 0 s'il n'y a aucun paramètre donné.

Par exemple, vous pouvez utiliser cette fonction pour générer des numéros de Sécurité Sociale. Cependant, cette fonction peut générer des doublons même si les données d'entrée n'en contiennent pas. Pour éviter que cela se produise, utilisez l'option Generate Unique SSN.

Lorsque vous utilisez l'option Replace by consistent items from input list (or file), la probabilité de générer des doublons peut être calculée à l'aide des formules suivantes :
  • P = 1 si K < N, ou

  • P = 1-K*(K-1)*(K-2)*…*(K-N+1) / K^N

P est la probabilité de générer des doublons, N la taille des données d'entrée et K la taille de la liste d'entrée donnée en paramètre.

Via cette approche, il est possible de calculer la probabilité de trouver une paire partageant la même valeur au sein d'un groupe.

Par exemple, la probabilité que, dans un groupe de n personnes, deux personnes fêtent leur anniversaire le même jour est de :
  • 2,7 % dans un groupe de cinq personnes,

  • 41,1 % dans un groupe de 20 personnes,

  • 100 % dans un groupe de 367 personnes, puisque 366 dates d'anniversaire sont possibles, en comptant le 29 février.

Replace by item from input list (or file)

Cette fonction se comporte comme Replace by consistent item from input list, mais sélectionne aléatoirement la valeur dans la liste (ou le fichier). La sortie sera donc différente.

Replace n first characters

Si le paramètre est n, la fonction remplace les premiers caractères n de l'entrée et conserve tous les caractères suivants. Si l'entrée est nulle, la fonction retourne une chaîne de caractères vide.

Si le paramètre est plus grand que la longueur de l'entrée, tous les caractères sont remplacés.

Vous pouvez saisir un second paramètre qui est le caractère de remplacement.

Par exemple, si l'entrée est Steven et que l'argument est 2, X, le résultat sera XXeven.

Replace n last characters

Cette fonction est l'équivalent de la fonction Replace n first characters pour les derniers caractères.