MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Native MongoDB-Maskierung (3. Methode)

Hinweis:Dieser Artikel behandelt die dritte verfügbare IRI-Kundenmethode zum statischen Maskieren oder Verschlüsseln von PII in strukturierten MongoDB-Sammlungen über das IRI FieldShield-Produkt oder die IRI Voracity-Plattform (beide mit IRI CoSort v10 und seiner Unterstützung des nativen MongoDB-Treibers). Eine vierte Methode ist jetzt verfügbar, um über IRI DarkShield schwebende PII in unstrukturierten MongoDB-Sammlungen zu finden und zu maskieren.

In diesem Artikel wird erläutert, wie die neue, native MongoDB-Erfassungsunterstützung in den Datenbearbeitungsprodukten von IRI die schnelle Leistung und Konsolidierung mehrerer datenzentrierter Funktionen ermöglicht, darunter:

  • Datenprofilerstellung und -bereinigung
  • Datenmaskierung und Re-ID-Risikobewertung
  • Datenintegration (ETL) &CDC
  • Datenmigration und -replikation
  • Generierung von benutzerdefinierten Berichten und Testdaten

Die Unterstützung auf API-Ebene für MongoDB-Daten wird im Kernprogramm SortCL angeboten, das die standardmäßige Verarbeitungs-Engine der Datenverwaltungsplattform IRI Voracity ist, sowie in seinen Teilprodukten:CoSort, NextForm, FieldShield und RowGen. Diese Verbindungsmethode ist die dritte und schnellste Methode, mit der IRI-Kunden Daten in MongoDB-Sammlungen erfassen und bearbeiten können. Die erste erfolgt über Flatfiles, wie hier 2014 beschrieben. Der zweite ist mit ODBC- und JDBC-Treibern, die 2016 hier beschrieben wurden.

Über MongoDB

MongoDB ist eine „NoSQL“, dokumentenorientierte Datenbank, die auf dem Konzept von Sammlungen und JSON-ähnlichen Dokumenten mit Schemas basiert. Eine Sammlung enthält wie eine relationale Datenbanktabelle ein oder mehrere Dokumente.

Ein Dokument ist ein Satz von Schlüssel-Wert-Paaren. Dokumente haben ein dynamisches Schema, was bedeutet, dass Dokumente in derselben Sammlung nicht denselben Satz von Feldern oder dieselbe Struktur haben müssen. Gemeinsame Felder in den Dokumenten einer Sammlung können unterschiedliche Arten von Daten enthalten.

Das folgende Diagramm vergleicht die Terminologie eines RDBMS und MongoDB:

Oracle MongoDB
Datenbank Datenbank
Tabelle Sammlung
Zeile Dokument
Spalte Feld
Primärschlüssel Objekt-ID bereitgestellt von MongoDB

Vorführung

Mein Beispiel unten führt eine einfache Sortierung, Maskierung und Verschiebung einer MongoDB-Sammlung namens „chiefs“ in eine andere Sammlung und auch in eine eigenständige JSON-Datei aus. JSON-Dateien sind eine weitere neue IRI-Datenquelle, die in der Version von CoSort v10 unterstützt wird.

Datenbankverbindung

Der erste Schritt besteht darin, eine Verbindung mit Ihrer MongoDB-Instanz in IRI Workbench herzustellen. IRI Workbench basiert auf Eclipse und ist die gemeinsame Entwicklungs- und Bereitstellungs-IDE für die gesamte oben aufgeführte IRI-Software. Hier können Sie auch eine Verbindung zu anderen DBs, HDFS und zusätzlichen Datenquellen in lokalen oder Remote-Dateisystemen herstellen.

Wählen Sie im IRI-Menü (Strudelsymbol) in der Workbench-Symbolleiste IRI-Einstellungen> IRI> URL-Verbindungsregistrierung> Hinzufügen . Geben Sie eine vorhandene MongoDB aus dem Schema und dem Server-Hostnamen an. Der Name meiner DB ist cmitra, erstellt auf dem ‚mongodbu‘-Host:

Der Einfachheit halber habe ich das kostenlose MonjaDB-Plug-in für Eclipse installiert, um mit der Datenbank in meiner Workbench-Perspektive zu interagieren. Meine Sammlung enthält US-Präsidenten mit Namen, Partei, Staat und ihren Amtszeitdaten. MongoDB hat jedem Dokument eine eindeutige ID zugewiesen:

Metadatendefinition

Bevor ich MongoDB-Daten in diesem Modus verarbeiten kann, muss ich eine DDF-Datei (Data Definition Format) erstellen, die meine Sammlungsdokumente in /FIELD-Anweisungen zur Verwendung in SortCL-kompatiblen Jobs wie FieldShield anordnet. Wie bei anderen in Workbench unterstützten Datenquellen erledigt dies ein Assistent automatisch für mich.

Erstellen (oder wählen Sie einen vorhandenen) Projektordner in Workbench, um die Job-Assets wie Quellmetadaten, SortCL-Skript/Diagramm, gespeicherte Maskierungsregeln, Datenklassen usw. zu speichern. Wenn dieser Ordner aktiv (hervorgehoben) ist und der Speicherort meiner MongoDB-Sammlung bekannt ist, Ich kann jetzt Discover Metadata ausführen Assistent aus dem IRI-Menü in der oberen Symbolleiste.

In diesem Schritt zur Identifizierung der Datenquelle kann ich eine ODBC-Verbindung, eine Dateisuche oder eine URL auswählen. In diesem Fall erreiche ich MongoDB über eine URL, also wähle ich diese und MongoDB für mein Format. Nachdem ich nach dem Datenbankregistrierungseintrag gesucht habe, den ich zuvor hinzugefügt habe, gebe ich den Sammlungsnamen ein. Der Assistent stellt dies der standardmäßigen MongoDB-Verbindungszeichenfolge voran.

Die Seite „Datenbetrachter und Feldeditor“ stellt eine Verbindung zur Sammlung her und zeigt eine Vorschau ihrer Spalteninhalte und Spalten als SortCL-Feldnamen an:

Wenn ich auf Fertig stellen klicke , meine DDF-Datei wird erstellt und wie folgt angezeigt:

/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")

Diese DDF-Metadaten können in jedem Job (oder Jobs) verwendet werden, die diese Sammlung betreffen, einschließlich dem in diesem Beispiel, wie unten gezeigt. Die Spalte _id wird für meine Zwecke nicht benötigt wurde weggelassen.

Beachten Sie die Verwendung der Punktnotation im „MDEF“-Attribut, das eine erforderliche Pfaddefinition für die Bearbeitung von SortCL-Jobs mit diskreten, flachen Elementen ist. Mehrwertige und Unterdokument-Array-Elemente werden nacheinander generiert, beginnend mit 0 in der Reihenfolge ihres Erscheinens.

Führen Sie den Job Design Wizard aus

Workbench enthält viele verschiedene zweckdienliche Assistenten zum Generieren der Metadaten zum Ausführen diskreter Aufgaben (.*cl-Skripts) oder Batch-gesteuerter Jobs (.flow- und .bat/.sh-Dateien) auf der Befehlszeile, über Workbench, Ihre Programme usw.

Ich habe mich für einen grundlegenden Assistenten für die Sortiertransformation entschieden, da ich darin mehrere Ziele hinzufügen, Ausgabefelder maskieren usw. kann. Dieser Assistent wird über das Symbol der CoSort-Menügruppe (Stoppuhr) in der Symbolleiste ausgeführt. Ich wähle Neuer Sortierauftrag und spezifizierte chiefsout.scl als Name meines Jobs:

Im nächsten Schritt identifiziere ich den Namen meiner MongoDB-Quellsammlung und wo sie sich befindet, indem ich dieselbe Locator-URL verwende, die während der Metadatendefinition für „Chiefs“ verwendet wurde:

Der nächste Schritt besteht darin, die Generierung oder Verwendung vorhandener Metadaten für die Sammlung im Datendefinitionsformat (DDF) festzulegen, das in allen SortCL-kompatiblen Programmen erforderlich ist. In diesem Fall verwende ich die DDF-Datei, die ich oben in Schritt 2 erstellt habe. Ich wähle Vorhandene Metadaten hinzufügen aus um diese Layouts direkt als Eingabespezifikationen in mein Jobskript einzufügen, und sie werden dann im folgenden Dialog widergespiegelt:

Auf der nächsten Seite gebe ich ein Sortierschlüsselfeld an, um die Reihenfolge der Daten in meinen Zielen zu definieren. In diesem Fall gehe ich von der standardmäßigen chronologischen Reihenfolge der Präsidenten aus und sortiere sie nach Namen:

Nachdem Sie auf Weiter geklickt haben , wird die Seite Datenziele angezeigt. Wie bei meinen Quelloptionen gibt es mehrere verschiedene Arten von Zielen, die ich über diesen Assistenten und auch später in einem anderen Jobdesignmodus (z. B. Skripteditor) erstellen und formatieren kann.

Mit diesem und anderen Workbench-Wizards kann ich weiterhin Ziele hinzufügen und deren Inhalt granular definieren. Zu den zielspezifischen Attributen gehören:Format (z. B. CSV, MongoDB, MFVL), Formatierung (z. B. Kopf- und Fußzeilen, zu überspringende Zeilen usw.), Filterbedingungen, Layouts auf Feldebene und angewendete Funktionen/Regeln (z. B. new Datentypen, Masken, Ausdruckslogik, Aggregation).

Auf der Seite „Datenziele“ weiß ich, dass ich zwei Ziele möchte:eine eigenständige JSON-Datei und eine Remote-MongoDB-Sammlung. Daher klicke ich auf Datenziel hinzufügen und beginnen Sie mit der Angabe des ersten. Wenn ich die Zieloptionen oder das Layout des Zielfelds nicht bearbeite, enthält meine Ausgabe nur die sortierte Version der Eingabedaten wie sie sind. Das ist, was meine JSON-Zieldatei enthalten wird, indem ich sie einfach benenne..

Wenn ich erneut auf Datenziel hinzufügen klicke Die zweite definiere ich als MongoDB-Sammlung per URL. Meine neue Häuptlingsmaske Die Sammlung wird automatisch erstellt und gefüllt, wenn ich den Job ausführe. Innerhalb dieses Ziels möchte ich, dass eines der Felder aus Datenschutzgründen maskiert wird, in diesem Fall die Namen des Präsidenten. Ich klicke auf Zielfeldlayout um eine Top-to-Bottom-Mapping-Seite für meine Quelle und Ziele zu öffnen:

Diese Seite zeigt auch meine bereits definierte Maskierungsregel. Ich hatte das definiert, indem ich im Ziel mit der rechten Maustaste auf PRESIDENT geklickt und auf Regel erstellen geklickt hatte (anstatt zu einem vorhandenen zu navigieren). Dadurch wurde eine Liste mit Schutzassistenten auf Feldebene geöffnet, die unten gezeigt wird. Beachten Sie, dass weitere statische Datenmaskierungsfunktionen verfügbar sind.

Ich habe Maskierung (Zeichenschwärzung) ausgewählt. Auf dieser Seite habe ich den Vollfeld-Standard verwendet, um den gesamten Namen des Präsidenten in der Zielsammlung zu maskieren:

Nachdem ich diese Auswahl beendet habe, kehre ich zum Mapping-Dialog zurück. Ich klicke auf OK und kehren Sie zur Seite Datenziele zurück. Am Ende meiner Änderungen werde ich mit den folgenden Details abschließen:

Ich klicke auf OK um den Assistenten zu beenden und den Job zu erstellen.

Überprüfen Sie den Job

Mit der chiefsout.scl Job, der jetzt in mein aktives Projekt eingebaut ist und automatisch für mich im Bearbeitungsfenster geöffnet wird, kann ich ihn von dort aus oder über verfügbare Dialogseiten im Kontext sehen und ändern. Hier erfahren Sie mehr über die Optionen zur Skriptbearbeitung.

Ich kann auch mit der rechten Maustaste in das Skript oder seinen Dateinamen im Projektfenster klicken und aus einem IRI-Menü mit Optionen ein Flussdiagramm erstellen, um die Aufgabe innerhalb eines Projekts zu visualisieren. Innerhalb des Flussdiagramms doppelklicke ich auf den braunen Aufgabenblock, um ein Transformationszuordnungsdiagramm zu öffnen, das die von mir definierte Quelle-zu-Ziel-Feldbewegung zeigt, diesmal von links nach rechts:

Die chiefsout.scl script und chiefsout.flow -Datei sind beide offene, im Team gemeinsam nutzbare Metadaten-Assets, die ein gemeinsames Datenmodell verwenden.

Job ausführen

Es gibt auch mehrere Möglichkeiten, den von mir erstellten Job auszuführen, sowohl von als auch außerhalb von Workbench.

Unten ist die Quellensammlung und meine gleiche Arbeit in Skript- und Gliederungsform dargestellt. Nachdem ich den Job ausgeführt hatte, öffnete ich eine MonjaDB-Ansicht des sortierten und maskierten Sammlungsziels und mein sortiertes JSON-Dateiziel rechts daneben:

Wie bereits erwähnt, sind in dieser Umgebung jetzt viele andere Permutationen und schnellere Datenverwaltungsjobs mit MongoDB-Daten möglich. Benutzer von IRI Voracity können jetzt aus drei Verbindungsmethoden zu MongoDB und Dutzenden von funktionalen Fähigkeiten wählen.

Wenn Sie Fragen haben oder Hilfe benötigen, wenden Sie sich hier an Ihren IRI-Vertreter.