sql >> Databasteknik >  >> NoSQL >> MongoDB

Native MongoDB-maskering (tredje metoden)

Obs! Den här artikeln täcker den tredje tillgängliga IRI-kundmetoden för att statiskt maskera eller kryptera PII i strukturerade MongoDB-samlingar via IRI FieldShield-produkten eller IRI Voracity-plattformen (båda drivs av IRI CoSort v10 och dess stöd för den inbyggda MongoDB-drivrutinen). En fjärde metod är nu tillgänglig för att hitta och maskera PII som flyter i ostrukturerade MongoDB-samlingar genom IRI DarkShield.

Den här artikeln förklarar hur nya, inbyggda MongoDB-insamlingsstöd i IRI:s datamanipuleringsprodukter möjliggör snabb prestanda och konsolidering av flera datacentrerade funktioner, inklusive:

  • dataprofilering och rensning
  • datamaskering och re-ID riskpoäng
  • dataintegration (ETL) &CDC
  • datamigrering och replikering
  • anpassad rapport och generering av testdata

Stödet på API-nivå för MongoDB-data erbjuds i det centrala SortCL-programmet, som är standardbearbetningsmotorn för IRI Voracity-datahanteringsplattformen, såväl som dess undergruppsprodukter:CoSort, NextForm, FieldShield och RowGen. Denna anslutningsmetod är det tredje och snabbaste sättet som IRI-kunder kan skaffa och manipulera data i MongoDB-samlingar. Den första är via platta filer som beskrivs 2014 här. Den andra är med ODBC- och JDBC-drivrutiner som beskrivs 2016 här.

Om MongoDB

MongoDB är en "NoSQL", dokumentorienterad databas som arbetar med konceptet samlingar och JSON-liknande dokument med scheman. En samling, som en relationsdatabastabell, innehåller ett eller flera dokument.

Ett dokument är en uppsättning nyckel-värdepar. Dokument har ett dynamiskt schema, vilket innebär att dokument i samma samling inte behöver ha samma uppsättning fält eller struktur. Vanliga fält i en samlings dokument kan innehålla olika typer av data.

Följande diagram jämför terminologin för en RDBMS och MongoDB:

Oracle MongoDB
Databas Databas
Tabell Samling
Rad Dokument
Kolumn Fält
Primärnyckel Objekt-ID från MongoDB

Demonstration

Mitt exempel nedan gör en enkel sortering, mask och förflyttning av en MongoDB-samling som kallas "chefer" till en annan samling, och även ut till en fristående JSON-fil. JSON-filer är en annan ny IRI-datakälla som stöds i utgåvan av CoSort v10.

Databasanslutning

Det första steget är att upprätta anslutning till din MongoDB-instans i IRI Workbench. Byggd på Eclipse, IRI Workbench är den vanliga jobbdesign- och distributions-IDE för all IRI-programvara som listas ovan. Det är också där du kan ansluta till andra DB:er, HDFS och ytterligare datakällor i lokala eller fjärranslutna filsystem.

Från IRI-menyn (virvelikon) i Workbench-verktygsfältet, välj IRI-inställningar> IRI> URL-anslutningsregister> Lägg till . Ange en befintlig MongoDB från schemat och serverns värdnamn. Min DB:s namn är cmitra, skapad på 'mongodbu'-värden:

För enkelhetens skull installerade jag det kostnadsfria MonjaDB-plugin-programmet för Eclipse för att interagera med databasen inom mitt Workbench-perspektiv. Min samling innehåller amerikanska presidenter efter namn, parti, stat och deras mandatdatum. MongoDB tilldelade ett unikt ID för varje dokument:

Metadatadefinition

Innan jag kan bearbeta MongoDB-data i det här läget måste jag skapa en DDF-fil (Data Definition Format) som lägger upp mina samlingsdokument i /FIELD-satser för användning i SortCL-kompatibla jobb som FieldShield. Som med andra datakällor som stöds i Workbench, gör en guide detta åt mig automatiskt.

Skapa (eller välj en befintlig) projektmapp i Workbench för att lagra jobbtillgångarna som källmetadata, SortCL-skript/diagram, sparade maskeringsregler, dataklasser, etc. Med den mappen aktiv (markerad) och kunskap om min MongoDB-samlings plats, Jag kan nu köra Upptäck metadata guiden från IRI-menyn i det övre verktygsfältet.

I det här steget för identifiering av datakälla kan jag välja en ODBC-anslutning, filbläddring eller URL. I det här fallet når jag MongoDB via URL, så jag väljer det och MongoDB för mitt format. Efter att ha letat efter databasregistret som jag tidigare lagt till anger jag samlingens namn. Guiden lägger detta till standard MongoDB-anslutningssträngen.

Sidan Data Viewer och Field Editor ansluter till samlingen och förhandsgranskar dess kolumninnehåll och kolumner som SortCL-fältnamn:

När jag klickar på Slutför , skapas min DDF-fil och visas enligt följande:

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

Denna DDF-metadata kan användas i alla jobb (eller jobb) som påverkar denna samling, inklusive den i detta exempel som visas nedan. Kolumnen _id är onödig för mina syften utelämnades.

Notera användningen av punktnotation i "MDEF"-attributet, vilket är en nödvändig sökvägsdefinition för att diskreta, platta element SortCL-jobb bearbeta. Flervärdes- och underdokumentmatriselement genereras i ordningsföljd som börjar med 0 i deras utseende.

Kör Jobbdesignguiden

Workbench innehåller många olika lämpliga guider för att generera metadata för att köra diskreta uppgifter (.*cl-skript) eller batchdrivna jobb (.flow- och .bat/.sh-filer) på kommandoraden, genom Workbench, dina program , etc.

Jag valde en grundläggande sorteringstransformeringsguide eftersom jag inom den kan lägga till flera mål, maskera utdatafält, etc. Den här guiden körs från CoSort-menygruppsikonen (stoppur) från verktygsfältet. Jag väljer Nytt sorteringsjobb och specificerade chiefsout.scl som namnet på mitt jobb:

I nästa steg identifierar jag namnet på min MongoDB-källsamling och var den är, med samma lokaliserings-URL som användes under metadatadefinitionen för "chefer":

Nästa steg är att specificera genereringen eller användningen av befintlig metadata för insamlingen i det datadefinitionsformat (DDF) som krävs i alla SortCL-kompatibla program. I det här fallet kommer jag att använda DDF-filen som jag skapade i steg 2 ovan. Jag väljer Lägg till befintlig metadata att lägga in dessa layouter direkt i mitt jobbskript som indataspecifikationer, och de återspeglas sedan i dialogrutan nedan:

På nästa sida anger jag ett sorteringsnyckelfält för att definiera ordningen på data i mina mål. I det här fallet kommer jag att gå från den kronologiska standardordningen för presidenter och sortera dem efter namn:

Efter att ha klickat på Nästa , visas sidan Datamål. Precis som med mina källalternativ finns det flera olika typer av mål jag kan skapa och formatera genom den här guiden och även senare i ett annat jobbdesignläge (t.ex. skriptredigerare).

Den här och andra Workbench-guider låter mig fortsätta lägga till mål och detaljerat definiera innehållet i var och en. Målspecifika attribut inkluderar:format (t.ex. CSV, MongoDB, MFVL), formatering (t.ex. sidhuvuden och sidfötter, rader att hoppa över, etc.), filtervillkor, layouter på fältnivå och tillämpade funktioner/regler (t.ex. nya datatyper, masker, uttryckslogik, aggregering).

På sidan Datamål vet jag att jag vill ha två mål:en fristående JSON-fil och en fjärransluten MongoDB-samling. Därför klickar jag på Lägg till datamål och börja ange den första. Såvida jag inte redigerar målalternativen eller målfältslayouten kommer min utdata bara att innehålla den sorterade versionen av indata som den är. Det är vad min JSON-målfil kommer att innehålla genom att jag bara namnger den...

När jag klickar på Lägg till datamål igen Jag definierar den andra som en MongoDB-samling via URL. Min nya chefsmask samling kommer automatiskt att byggas och fyllas i när jag kör jobbet. Det är inom det målet som jag vill ha ett av fälten maskerat för privatlivet, presidentens namn i det här fallet. Jag klickar på Target Field Layout för att öppna en kartsida från topp till botten för min källa och mina mål:

Den här sidan visar också min maskeringsregel som redan är definierad. Jag hade definierat det genom att högerklicka på PRESIDENT i målet och klicka på Skapa regel (istället för att bläddra till en befintlig). Det öppnade en lista med skyddsguider på fältnivå, som visas nedan. Observera att fler statiska datamaskeringsfunktioner är tillgängliga.

Jag valde Maskering (teckenredigering). På den sidan använde jag full-field standard för att maskera hela presidentens namn i målsamlingen:

Efter att ha avslutat dessa val återgår jag till kartläggningsdialogrutan. Jag klickar på OK och återgå till sidan Datamål. I slutet av mina ändringar kommer jag att avsluta med informationen nedan:

Jag klickar på OK för att avsluta guiden och bygga jobbet.

Granska jobbet

Med chiefsout.scl jobb nu inbyggt i mitt aktiva projekt och öppnas för mig i redigeringsfönstret automatiskt, jag kan se och ändra det därifrån, eller genom tillgängliga dialogsidor i sammanhanget. Läs mer om skriptredigeringsalternativ här.

Jag kan också högerklicka inuti skriptet eller dess filnamn i projektfönstret, och från en IRI-meny med alternativ, bygga ett flödesdiagram för att visualisera uppgiften inom ett projekt. Inifrån flödesdiagrammet dubbelklickar jag på det bruna uppgiftsblocket för att öppna ett transformmappningsdiagram som visar fältförflyttningen från källa till mål som jag har definierat, denna gång från vänster till höger:

chiefsout.scl script och chiefsout.flow fil är båda öppna, team-delbara metadatatillgångar som delar en gemensam datamodell.

Kör jobbet

Det finns också flera sätt att utföra jobbet jag byggde, både från och utanför Workbench.

Nedan visas källsamlingen och mitt jobb representerat i manus och disposition. Efter att ha kört jobbet öppnade jag en MonjaDB-vy av det sorterade och maskerade samlingsmålet och mitt sorterade JSON-filmål till höger:

Som nämnts är många andra permutationer av och snabbare datahanteringsjobb som använder MongoDB-data nu möjliga i denna miljö. IRI Voracity-användare kan nu välja mellan tre anslutningsmetoder till MongoDB och dussintals funktionella funktioner.

Om du har några frågor eller behöver hjälp, kontakta din IRI-representant här.


  1. Redis och frågevärden

  2. Slaget om NoSQL-databaserna - Jämför MongoDB och CouchDB

  3. ImportError:Ingen modul med namnet objectid

  4. Viktiga saker att övervaka i MongoDB