Inhoudsopgave:
Video: Inside a Google data center 2024
U vindt twee soorten documentdatabases voor big data-projecten. Een daarvan wordt vaak omschreven als een opslagplaats voor inhoud in volledige documentstijl. De andere is een database voor het opslaan van documentcomponenten voor permanente opslag als een statische entiteit of voor dynamische assemblage van de delen van een document. De structuur van de documenten en hun onderdelen wordt geleverd door JavaScript Object Notation (JSON) en / of Binary JSON (BSON).
Documentdatabases zijn het nuttigst wanneer u veel rapporten moet produceren en deze dynamisch moeten worden samengesteld uit elementen die vaak veranderen.
In de kern is JSON een gegevensuitwisselingsindeling, gebaseerd op een subset van de JavaScript-programmeertaal. Hoewel het deel uitmaakt van een programmeertaal, is het van tekstuele aard en zeer gemakkelijk te lezen en te schrijven. Het heeft ook het voordeel dat het gemakkelijk is voor computers om te verwerken. Er zijn twee basisstructuren in JSON en deze worden ondersteund door vele, zo niet alle, moderne programmeertalen.
De eerste basisstructuur is een verzameling naam / waarde-paren en deze worden programmatisch weergegeven als objecten, records, gecodeerde lijsten, enzovoort. De tweede basisstructuur is een geordende zoeklijst en ze worden programmatisch weergegeven als arrays, lijsten of reeksen. BSON is een binaire serialisatie van JSON-structuren die zijn ontworpen om de prestaties en schaalbaarheid te verbeteren.
MongoDB voor big data
MongoDB is de projectnaam voor het "hu (mongo) us-database" -systeem. Het wordt onderhouden door een bedrijf genaamd 10gen als open source en is vrij verkrijgbaar onder de GNU AGPL v3. 0 licentie. Commerciële licenties met volledige ondersteuning zijn verkrijgbaar bij 10gen.
MongoDB is samengesteld uit databases met "verzamelingen. "Een verzameling bestaat uit" documenten "en elk document bestaat uit velden. Net als in relationele databases, kunt u een verzameling indexeren.
Als u dit doet, worden de prestaties van het opzoeken van gegevens verbeterd. In tegenstelling tot andere databases retourneert MongoDB echter iets dat een 'cursor' wordt genoemd en dat dient als verwijzing naar de gegevens. Dit is een zeer nuttige mogelijkheid omdat het de mogelijkheid biedt om de gegevens te tellen of te classificeren zonder deze te extraheren. Oorspronkelijk ondersteunt MongoDB BSON, de binaire implementatie van JSON-documenten.
MongoDB is ook een ecosysteem dat bestaat uit de volgende elementen:
-
Hoge beschikbaarheid en replicatieservices voor schaalvergroting op lokale en wide-area netwerken.
-
Een op rasters gebaseerd bestandssysteem, waarmee grote objecten kunnen worden opgeslagen door ze over meerdere documenten te verdelen.
-
MapReduce om analyse en aggregatie van verschillende collecties / documenten te ondersteunen.
-
Een shardingservice die een enkele database verdeelt over een cluster van servers in een enkele of meerdere datacenters. De service wordt aangestuurd door een shard-sleutel. De shard-sleutel wordt gebruikt om documenten intelligent over meerdere instanties te distribueren.
-
Een queryservice die adhoc-query's, gedistribueerde query's en zoeken in volledige tekst ondersteunt.
Effectieve MongoDB-implementaties omvatten
-
Hoogvolume inhoudsbeheer
-
Sociale netwerken
-
Archivering
-
Realtime analyses
CouchDB voor grote gegevens
Een andere zeer populaire niet-relationele database is CouchDB. Net als MongoDB is CouchDB open source. Het wordt onderhouden door de Apache Software Foundation en wordt beschikbaar gesteld onder de Apache-licentie v2. 0. In tegenstelling tot MongoDB, was CouchDB ontworpen om het web in alle opzichten na te bootsen.
CouchDB is bijvoorbeeld bestand tegen drop-outs van het netwerk en blijft prachtig werken in gebieden waar de netwerkconnectiviteit onregelmatig is. Het is ook thuis op een smartphone of in een datacenter. Dit komt allemaal met een paar compromissen. Vanwege de onderliggende webmimicry heeft CouchDB een hoge latentie resulterend in een voorkeur voor lokale gegevensopslag.
CouchDB is niet goed geschikt voor kleinere implementaties. U moet bepalen of deze afwegingen kunnen worden genegeerd terwijl u aan de implementatie van uw big data begint.
CouchDB-databases zijn samengesteld uit documenten die bestaan uit velden en bijlagen, evenals een "beschrijving" van het document in de vorm van metadata die automatisch door het systeem wordt onderhouden. De onderliggende technologie bevat alle ACID-mogelijkheden. Het voordeel in CouchDB ten opzichte van relationeel is dat de gegevens zijn verpakt en klaar zijn voor manipulatie of opslag in plaats van verspreid over rijen en tabellen.
CouchDB is ook een ecosysteem met de volgende mogelijkheden:
-
Verdichting: De databases worden gecomprimeerd om verspilling van ruimte te voorkomen wanneer een bepaald niveau van leegte wordt bereikt. Dit helpt de prestaties en efficiëntie voor persistentie.
-
Weergavemodel: Een mechanisme voor het filteren, organiseren en rapporteren van gegevens met behulp van een reeks definities die als documenten in de database worden opgeslagen. U vindt een één-op-veel-relatie tussen databases met weergaven, zodat u veel verschillende manieren kunt creëren om de gegevens weer te geven die u hebt "in plakken gesneden en in blokjes gesneden". "
-
Replicatie en gedistribueerde services: Documentopslag is ontworpen om bidirectionele replicatie te bieden. Gedeeltelijke replica's kunnen worden gehandhaafd om op criteria gebaseerde distributie of migratie naar apparaten met beperkte connectiviteit te ondersteunen. Native replicatie is peer-gebaseerd, maar u kunt Master / Slave-, Master / Master- en andere typen replicatiemodaliteiten implementeren.
Effectieve CouchDB-implementaties omvatten
-
Hoogvolume inhoudsbeheer
-
Schalen van smartphone naar datacenter
-
Toepassingen met beperkte of langzame netwerkconnectiviteit