MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Masquage MongoDB natif (3ème méthode)

Remarque :Cet article couvre la troisième méthode client IRI disponible pour le masquage ou le chiffrement statique des informations personnelles dans les collections MongoDB structurées via le produit IRI FieldShield ou la plate-forme IRI Voracity (tous deux alimentés par IRI CoSort v10 et sa prise en charge du pilote MongoDB natif). Une quatrième méthode est désormais disponible pour rechercher et masquer les PII flottant dans les collections MongoDB non structurées via IRI DarkShield.

Cet article explique comment la nouvelle prise en charge native de la collecte MongoDB dans les produits de manipulation de données d'IRI permet la performance et la consolidation rapides de plusieurs fonctions centrées sur les données, notamment :

  • profilage et nettoyage des données
  • Masquage des données et notation des risques de réidentification
  • intégration de données (ETL) et CDC
  • migration et réplication des données
  • rapport personnalisé et génération de données de test

La prise en charge au niveau de l'API des données MongoDB est proposée dans le programme principal SortCL, qui est le moteur de traitement par défaut de la plate-forme de gestion de données IRI Voracity, ainsi que ses sous-produits :CoSort, NextForm, FieldShield et RowGen. Cette méthode de connexion est le troisième moyen, et le plus rapide, pour les clients IRI d'acquérir et de manipuler des données dans les collections MongoDB. Le premier est via des fichiers plats comme décrit en 2014 ici. La seconde concerne les pilotes ODBC et JDBC décrits en 2016 ici.

À propos de MongoDB

MongoDB est une base de données orientée document "NoSQL" qui fonctionne sur le concept de collections et de documents de type JSON avec des schémas. Une collection, comme une table de base de données relationnelle, contient un ou plusieurs documents.

Un document est un ensemble de paires clé-valeur. Les documents ont un schéma dynamique, ce qui signifie que les documents d'une même collection n'ont pas besoin d'avoir le même ensemble de champs ou la même structure. Les champs communs dans les documents d'une collection peuvent contenir différents types de données.

Le tableau suivant compare la terminologie d'un SGBDR et de MongoDB :

Oracle MongoDB
Base de données Base de données
Tableau Collection
Ligne Document
Colonne Champ
Clé primaire ID d'objet fourni par MongoDB

Démonstration

Mon exemple ci-dessous effectue un simple tri, masque et déplacement d'une collection MongoDB appelée "chefs" dans une autre collection, ainsi que dans un fichier JSON autonome. Les fichiers JSON sont une autre nouvelle source de données IRI prise en charge dans la version de CoSort v10.

Connexion à la base de données

La première étape consiste à établir la connectivité avec votre instance MongoDB dans IRI Workbench. Construit sur Eclipse, IRI Workbench est l'IDE commun de conception et de déploiement de tâches pour tous les logiciels IRI répertoriés ci-dessus. C'est également là que vous pouvez vous connecter à d'autres bases de données, HDFS et à des sources de données supplémentaires dans des systèmes de fichiers locaux ou distants.

Dans le menu IRI (icône tourbillon) de la barre d'outils du Workbench, sélectionnez Préférences IRI> IRI> Registre de connexion URL> Ajouter . Spécifiez un MongoDB existant à partir du schéma et du nom d'hôte du serveur. Le nom de ma base de données est cmitra, créé sur l'hôte 'mongodbu' :

Pour plus de commodité, j'ai installé le plug-in gratuit MonjaDB pour Eclipse afin d'interagir avec la base de données dans ma perspective Workbench. Ma collection contient les présidents américains par nom, parti, état et leurs dates de mandat. MongoDB a attribué un identifiant unique pour chaque document :

Définition des métadonnées

Avant de pouvoir traiter les données MongoDB dans ce mode, je dois créer un fichier au format de définition de données (DDF) qui présente mes documents de collection dans des instructions /FIELD à utiliser dans des travaux compatibles SortCL comme FieldShield. Comme pour les autres sources de données prises en charge dans Workbench, un assistant le fait automatiquement pour moi.

Créez (ou sélectionnez un dossier de projet existant) dans Workbench pour stocker les actifs du travail tels que les métadonnées source, le script/diagramme SortCL, les règles de masquage enregistrées, les classes de données, etc. Avec ce dossier actif (en surbrillance) et la connaissance de l'emplacement de ma collection MongoDB, Je peux maintenant exécuter la découvrir les métadonnées assistant dans le menu IRI de la barre d'outils supérieure.

Dans cette étape d'identification de la source de données, je peux sélectionner une connexion ODBC, un parcours de fichiers ou une URL. Dans ce cas, j'atteins MongoDB via URL, donc je choisis cela et MongoDB pour mon format. Après avoir recherché l'entrée de registre de la base de données que j'ai précédemment ajoutée, j'entre le nom de la collection. L'assistant l'ajoute à la chaîne de connexion MongoDB standard.

La page Visualiseur de données et éditeur de champs se connecte à la collection et prévisualise le contenu de ses colonnes et ses colonnes sous forme de noms de champs SortCL :

Lorsque je clique sur Terminer , mon fichier DDF est créé et s'affiche comme suit :

/FIELD=(PRESIDENT, TYPE=UTF8, POSITION=1, SEPARATOR="|", MDEF="president")
/FIELD=(PARTY, TYPE=UTF8, POSITION=2, SEPARATOR="|", MDEF="party")
/FIELD=(STATE, TYPE=UTF8, POSITION=3, SEPARATOR="|", MDEF="state")
/FIELD=(START, TYPE=NUMERIC, POSITION=4, SEPARATOR="|", MDEF="term.start")
/FIELD=(END, TYPE=NUMERIC, POSITION=5, SEPARATOR="|", MDEF="term.end")

Ces métadonnées DDF peuvent être utilisées dans n'importe quelle tâche (ou tâches) affectant cette collection, y compris celle de cet exemple, comme indiqué ci-dessous. La colonne _id est inutile pour mes besoins a été omise.

Notez l'utilisation de la notation par points dans l'attribut "MDEF", qui est une définition de chemin obligatoire pour le traitement des tâches SortCL d'éléments discrets et plats. Les éléments de tableau à plusieurs valeurs et sous-documents sont générés en séquence en commençant par 0 dans leur ordre d'apparition.

Exécuter l'assistant de conception de tâche

Workbench comprend de nombreux assistants différents adaptés à l'usage pour générer les métadonnées pour l'exécution de tâches discrètes (scripts .*cl) ou de travaux par lots (fichiers .flow et .bat/.sh) sur la ligne de commande, via Workbench, vos programmes , etc.

J'ai choisi un assistant de transformation de tri de base car je peux y ajouter plusieurs cibles, masquer les champs de sortie, etc. Cet assistant s'exécute à partir de l'icône du groupe de menus CoSort (chronomètre) de la barre d'outils. Je sélectionne Nouvelle tâche de tri et spécifié chiefsout.scl comme nom de mon travail :

À l'étape suivante, j'identifie le nom de ma collection MongoDB source et où elle se trouve, en utilisant la même URL de localisation utilisée lors de la définition des métadonnées pour les "chefs" :

L'étape suivante consiste à spécifier la génération ou l'utilisation de métadonnées existantes pour la collection au format de définition de données (DDF) requis dans tous les programmes compatibles SortCL. Dans ce cas, j'utiliserai le fichier DDF que j'ai créé à l'étape 2 ci-dessus. Je sélectionne Ajouter des métadonnées existantes pour mettre ces mises en page directement dans mon script de travail en tant que spécifications d'entrée, et elles sont ensuite reflétées dans la boîte de dialogue ci-dessous :

Sur la page suivante, je spécifie un champ de clé de tri pour définir l'ordre des données dans ma ou mes cibles. Dans ce cas, je vais partir de l'ordre chronologique par défaut des présidents et les trier par nom :

Après avoir cliqué sur Suivant , la page Cibles de données s'affiche. Comme pour mes options source, il existe plusieurs types de cibles que je peux créer et formater via cet assistant et également plus tard dans un autre mode de conception de travail (par exemple, éditeur de script).

Cet assistant et d'autres assistants Workbench me permettent de continuer à ajouter des cibles et de définir de manière granulaire le contenu de chacune. Les attributs spécifiques à la cible comprennent :le format (par exemple, CSV, MongoDB, MFVL), la mise en forme (par exemple, les en-têtes et les pieds de page, les lignes à ignorer, etc.), les conditions de filtre, les dispositions au niveau du champ et les fonctions/règles appliquées (par exemple, de nouvelles types de données, masques, logique d'expression, agrégation).

Dans la page Data Targets, je sais que je veux deux cibles :un fichier JSON autonome et une collection MongoDB distante. Ainsi, je clique sur Ajouter une cible de données et commencez à spécifier le premier. Sauf si je modifie les options cibles ou la disposition du champ cible, ma sortie ne contiendra que la version triée des données d'entrée telles quelles. C'est ce que mon fichier cible JSON contiendra en le nommant simplement..

Lorsque je clique à nouveau sur Ajouter une cible de données Je définis la seconde comme une collection MongoDB via URL. Mon nouveau masque de chef collection se construira et se remplira automatiquement lorsque j'exécuterai le travail. C'est dans cet objectif que je veux l'un des champs masqués pour la confidentialité, les noms du président dans ce cas. Je clique sur Mise en page du champ cible pour ouvrir une page de mappage de haut en bas pour ma source et mes cibles :

Cette page affiche également ma règle de masquage déjà définie. J'avais défini cela en cliquant avec le bouton droit sur PRESIDENT dans la cible et en cliquant sur Créer une règle (au lieu de naviguer vers un existant). Cela a ouvert une liste d'assistants de protection au niveau du champ, illustrés ci-dessous. Notez que davantage de fonctions de masquage de données statiques sont disponibles.

J'ai sélectionné Masking (masquage de caractères). Sur cette page, j'ai pris le plein champ par défaut pour masquer le nom entier du président dans la collection cible :

Après avoir terminé ces sélections, je reviens à la boîte de dialogue de mappage. Je clique sur OK et revenez à la page Cibles de données. À la fin de mes modifications, je me retrouverai avec les détails ci-dessous :

Je clique sur OK pour terminer l'assistant et créer le travail.

Vérifier la tâche

Avec le chiefsout.scl travail maintenant intégré dans mon projet actif et s'ouvre automatiquement pour moi dans la fenêtre d'édition, je peux le voir et le modifier à partir de là, ou via les pages de dialogue contextuelles disponibles. En savoir plus sur les options d'édition de script ici.

Je peux également cliquer avec le bouton droit de la souris à l'intérieur du script ou de son nom de fichier dans la fenêtre du projet, et à partir d'un menu d'options IRI, créer un organigramme pour visualiser la tâche dans un projet. Depuis l'intérieur du diagramme de flux, je double-clique sur le bloc de tâches marron pour ouvrir un diagramme de mappage de transformation montrant le mouvement de champ source à cible que j'ai défini, cette fois de gauche à droite :

Le chiefsout.scl script et chiefsout.flow sont tous deux des ressources de métadonnées ouvertes et partageables en équipe qui partagent un modèle de données commun.

Exécuter la tâche

Il existe également plusieurs façons d'exécuter le travail que j'ai créé, à la fois depuis et en dehors de Workbench.

Vous trouverez ci-dessous la collection source et mon même travail représenté sous forme de script et de plan. Après avoir exécuté le travail, j'ai ouvert une vue MonjaDB de la cible de collecte triée et masquée, et ma cible de fichier JSON triée à sa droite :

Comme mentionné, de nombreuses autres permutations et des tâches de gestion de données plus rapides utilisant les données MongoDB sont désormais possibles dans cet environnement. Les utilisateurs d'IRI Voracity peuvent désormais choisir parmi trois méthodes de connexion à MongoDB et des dizaines de fonctionnalités.

Si vous avez des questions ou avez besoin d'aide, contactez votre représentant IRI ici.