Data-mapping voor NoSQL-databases

NoSQL-databases zijn databases die gegevens opslaan op een andere manier dan traditionele databases, die bestaan uit relationele tabellen. Twee van de meest populaire NoSQL-databases, MongoDB en Apache CouchDB, slaan gegevens op als verzamelingen van BSON- (binair JSON) en JSON-documenten. Deze databases maken gebruik van flexibele JSON-schemas en zijn gemakkelijk op te schalen om grote hoeveelheden gegevens en een hoge gebruikersbelasting te verwerken.

Altova MapForce ondersteunt al lange tijd data mapping voor alle gangbare relationele databases, en biedt nu ook native ondersteuning voor data mapping van NoSQL-databases. MapForce bevat functionaliteit voor het invoegen, extraheren, filteren en ordenen van NoSQL-data. Laten we eens een voorbeeld bekijken.

Hieronder staat een complete datamapping van de NoSQL MongoDB sample_analytics database. Deze mapping haalt een deel van de binaire JSON (BSON) data uit verschillende collecties, combineert, filtert, transformeert en sorteert de data, en exporteert vervolgens het resultaat als één JSON-document.

De sample_analytics NoSQL-database is een voorbeeld dat gehost wordt op de publiekelijk toegankelijke MongoDB Atlas cloudserver. Deze database bevat trainingsgegevens voor een gesimuleerde financiële dienstverleningsapplicatie. De database omvat verzamelingen van BSON-documenten voor 500 klanten, 1.746 rekeningen en 1.746 koop- of verkooptransacties.

Het mappen van NoSQL-databases in MapForce begint met het selecteren van de NoSQL-database via de MapForce-wizard voor het toevoegen van een databaseverbinding en het invoeren van de verbindingsparameters. Vervolgens kunnen we de collecties selecteren die we willen mappen:

Elke collectie vereist een JSON-schema om de objecten ervan te beschrijven. Dit schema kan in de database worden opgeslagen voor validatie, of het kan een extern bestand zijn.

Hieronder een uitgebreidere weergave van objecten in de verzamelingen "klanten" en "transacties", klaar voor het mappen van NoSQL-gegevens in MapForce:

Nadat we een JSON-schema of een voorbeeld-JSON-bestand voor de uitvoer hebben ingevoerd, zijn we klaar om objecten in de database te koppelen aan de uitvoer. De MongoDB NoSQL-database slaat binaire JSON-gegevens op. De MapForce-functiebibliotheek bevat ingebouwde functies om BSON-gegevens te verwerken:

De database bevat klanten met Gmail-, Hotmail- en Yahoo-e-mailadressen in hun profielen, maar ons project is erop gericht om alleen resultaten op te halen voor klanten met een Yahoo.com-adres. Uiteraard is er geen SQL Select/Where-query in een NoSQL-database om e-mailadressen te filteren! Daarom kunnen we een BSON-functie voor reguliere expressies combineren met een ingebouwde Where/Order-structuur van MapForce om hetzelfde resultaat te bereiken:

De MapForce-functie "Waar/Sorteer" vervult ook een andere projectvereiste: het sorteren van de klanten op geboortedatum in de uitvoer.

Het BSON-formaat ondersteunt meer datatypes dan de JSON-string of numerieke waarden. MapForce converteert automatisch de geboortedatum van het BSON-datumbestand naar een string, zodat deze kan worden verwerkt door de functie voor het formatteren van datums, voor de uiteindelijke uitvoer.

Door de MapForce Where/Order-structuren te combineren met andere ingebouwde MapForce-functies, wordt de verzameling transacties gefilterd om alleen "koop"-transacties weer te geven. Vervolgens worden de transacties, gegroepeerd en gesorteerd, gekoppeld aan profielen in de verzameling klanten.

Het uitvoerbestand bevat alle klanten met een e-mailadres van yahoo.com en geeft een overzicht van hun bestellingen, gegroepeerd per account voor die klant. Bovendien bevat het uitvoerbestand een lijst van klanten, gesorteerd op geboortedatum, van jongste naar oudste. Hieronder een gedeeltelijke weergave van de JSON-uitvoer in XMLSpy, een populair hulpmiddel voor het bewerken, modelleren, transformeren en debuggen van JSON- en XML- technologieën:

De gebruikers worden in aflopende volgorde weergegeven op basis van hun geboortedatum, en de aankooptransacties voor elk account staan in alfabetische volgorde van de "name"-objecten in de JSON-uitvoer.

Als u periodiek gegevensverwerking moet uitvoeren om recentere transacties te verzamelen, automatiseert MapForce Server de uitvoering van de datamappingen die in MapForce zijn ontworpen

MapForce is een krachtig hulpmiddel voor het omzetten van data, waarmee u gegevens uit NoSQL-databases kunt omzetten naar of vanuit verschillende formaten, waaronder: XML, JSON, databases, EDI, XBRL, platte bestanden, Excel en/of webdiensten. Om het zelf uit te proberen voor uw eigen NoSQL-dataomzettingsproject, download vandaag nog een volledig functionele proefversie!