Wat zijn NoSQL Databases?
Een NoSQL Database is een database die niet persé een databaseschema heeft en kennen geen JOINS tussen tabellen. Ze worden daarom ook wel niet-relationele databases genoemd. NoSQL Databases verschillen daarom ook van de klassieke relationele databases (RDBMS)
Waar staat NoSQL voor?
Een valkuil bij NoSQL is om te denken dat de “No” in NoSQL staat voor “geen”, en dat NoSQL databases daarom geen SQL begrijpen. De No staat “Not Only” en daarmee wordt bedoelt dat er meerdere manieren van opslaan zijn.
Wat is NoSQL?
Qua structuur zit NoSQL ergens tussen een gestructureerde RDMS en een ongestructureerde opslag zoals Hadoop in. NoSQL en RDMS databases hebben ieder een voor- en nadelen.
Voordelen van NoSQL databases
- Flexibel
- Je hoeft de data van tevoren niet te modelleren of te structureren.
- Kunnen veel soorten en maten data aan.
- Schaalbaar
- NoSQL databases zijn horizontaal schaalbaar. Dit betekent dat de data kan opgesplitst worden op diverse servers, wat de responstijd verhoogt. Schalen is ontzettend belangrijk, omdat de hoeveelheid data steeds blijft groeien.
- Deze databases kunnen goed omgaan met big data.
Nadelen van NoSQL databases
Op het moment dat je geen gebruik kunt maken van de voordelen van NoSQL en je vooral gestructureerde data te verwerken hebt, blijft een traditioneel RDBMS een betere oplossing.
Voorbeelden van NO SQL databases
Wide Column Stores/Column Family databases:
Hadoop / Hbase
Gebruik Apache HBase wanneer je willekeurige, realtime lees- / schrijftoegang tot uw Big Data nodig heeft. Het doel van dit project is het hosten van zeer grote tabellen, miljarden rijen x miljoenen kolommen bovenop clusters van standaardhardware. Apache HBase is een open-source, gedistribueerde, niet-relationele database, gemodelleerd naar Google’s Bigtable: A Distributed Storage System for Structured Data door Chang et al. Net zoals Bigtable de gedistribueerde gegevensopslag van het Google-bestandssysteem gebruikt, biedt Apache HBase Bigtable-achtige mogelijkheden bovenop Hadoop en HDFS.
Cassandra
De Apache Cassandra-database is de juiste keuze wanneer u schaalbaarheid en hoge beschikbaarheid nodig heeft zonder concessies te doen aan de prestaties. Dankzij de lineaire schaalbaarheid en bewezen fouttolerantie op standaard hardware of cloudinfrastructuur is dit het perfecte platform voor bedrijfskritische gegevens. Cassandra’s ondersteuning voor replicatie over meerdere datacenters is de beste in zijn klasse, wat zorgt voor een lagere latentie voor uw gebruikers en de gemoedsrust dat u weet dat u regionale storingen kunt overleven. Het gegevensmodel van Cassandra biedt het gemak van kolomindexen met de prestaties van loggestructureerde updates, sterke ondersteuning voor denormalisatie en gematerialiseerde views, en krachtige ingebouwde caching.
Hypertable
Hypertable is een hoogwaardige, open source, enorm schaalbare database die is gemodelleerd naar Bigtable, de eigen, massaal schaalbare database van Google. Deze pagina geeft een kort overzicht van Hypertable, vergelijkt het met een relationele database, benadrukt enkele van zijn unieke kenmerken en illustreert hoe het schaalt.
Accumulo
Accumulo is gebaseerd op het BigTable-ontwerp van Google en is gebouwd bovenop Apache Hadoop, Zookeeper en Thrift. Apache Accumulo bevat enkele nieuwe verbeteringen aan het BigTable-ontwerp in de vorm van toegangscontrole op basis van cellen en een programmeermechanisme aan de serverzijde dat sleutel / waarde-paren op verschillende punten in het gegevensbeheerproces kan wijzigen.
Amazon SimpleDB
Amazon SimpleDB is een zeer beschikbare en flexibele niet-relationele gegevensopslag die het werk van databasebeheer ontlast. Ontwikkelaars slaan gegevensitems eenvoudig op en bevragen deze via verzoeken om webservices en Amazon SimpleDB doet de rest. Ongebonden door de strikte vereisten van een relationele database, is Amazon SimpleDB geoptimaliseerd om hoge beschikbaarheid en flexibiliteit te bieden, met weinig of geen administratieve rompslomp. Achter de schermen creëert en beheert Amazon SimpleDB automatisch meerdere geografisch verspreide replica’s van uw gegevens om een hoge beschikbaarheid en gegevensduurzaamheid mogelijk te maken. De service brengt u alleen in rekening voor de middelen die daadwerkelijk zijn verbruikt bij het opslaan van uw gegevens en het uitvoeren van uw verzoeken. U kunt uw gegevensmodel direct wijzigen en gegevens worden automatisch voor u geïndexeerd. Met Amazon SimpleDB kunt u zich concentreren op de ontwikkeling van applicaties zonder u zorgen te hoeven maken over infrastructuurvoorzieningen, hoge beschikbaarheid, softwareonderhoud, schema- en indexbeheer of prestatieafstemming.
Cloud Data
Cloud Data zijn gedistribueerde grootschalige gestructureerde gegevensopslag en een open source-project dat Google’s Bigtable implementeert. Het is te vinden op Github. Het lijkt het project te zijn van een Koreaanse ontwikkelaar genaamd YKKwon.
HPCC
HPCC (High-Performance Computing Cluster), ook wel bekend als DAS (Data Analytics Supercomputer), is een open source, data-intensief computersysteemplatform ontwikkeld door LexisNexis Risk Solutions. Het HPCC-platform bevat een softwarearchitectuur die is geïmplementeerd op commodity computing-clusters om high-performance, data-parallelle verwerking te bieden voor applicaties die gebruikmaken van big data. Het HPCC-platform omvat systeemconfiguraties ter ondersteuning van zowel parallelle batchgegevensverwerking (Thor) als krachtige online query-applicaties met geïndexeerde databestanden (Roxie). Het HPCC-platform bevat ook een gegevensgerichte declaratieve programmeertaal voor parallelle gegevensverwerking, ECL genaamd
Flink
Apache Flink is een open source-systeem voor expressieve, declaratieve, snelle en efficiënte data-analyse. Flink combineert de schaalbaarheid en programmeerflexibiliteit van gedistribueerde MapReduce-achtige platforms met de efficiëntie, out-of-core uitvoering en queryoptimalisatiemogelijkheden die te vinden zijn in parallelle databases.
Splice
Splice Machine is in wezen een Hadoop-implementatie van het door Java aangedreven Apache Derby-databaseproject. Hadoop is gebouwd om Java-apps uit te voeren op clusters van machines, en dus past Splice Machine eenvoudig de Hadoop-methode voor gedistribueerde toepassing toe op Derby-databaseworkloads. Het resulterende systeem voert standaard ANSI SQL-99-query’s uit, maar Splice Machine biedt services voor het omgaan met specifieke smaken van SQL, zoals Oracle PL / SQL of Microsoft T-SQL
Document Store Database:
MongoDB
MongoDB is een open-source database die wordt gebruikt door bedrijven van elke omvang, in alle branches en voor een grote verscheidenheid aan toepassingen. Het is een flexibele database waarmee schema’s snel kunnen veranderen naarmate applicaties evolueren, terwijl het toch de functionaliteit biedt die ontwikkelaars verwachten van traditionele databases, zoals secundaire indexen, een volledige querytaal en strikte consistentie. MongoDB is gebouwd voor schaalbaarheid, prestaties en hoge beschikbaarheid, schaalbaar van implementaties van één server tot grote, complexe multi-site architecturen. Door gebruik te maken van in-memory computing, biedt MongoDB hoge prestaties voor zowel lezen als schrijven. De native replicatie en geautomatiseerde failover van MongoDB zorgen voor bedrijfszekerheid en operationele flexibiliteit
Elasticsearch
Elasticsearch is een zoekserver gebaseerd op Lucene. Het biedt een gedistribueerde, multitenant-compatibele full-text zoekmachine met een RESTful webinterface en schemavrije JSON-documenten. Elasticsearch is ontwikkeld in Java en wordt vrijgegeven als open source onder de voorwaarden van de Apache-licentie.
Couchbase-server
Couchbase Server, oorspronkelijk bekend als Membase, is een open source, gedistribueerde (shared-nothing architecture) NoSQL-documentgerichte database die is geoptimaliseerd voor interactieve toepassingen. Deze applicaties moeten veel gelijktijdige gebruikers bedienen; het creëren, opslaan, ophalen, samenvoegen, manipuleren en presenteren van gegevens. Ter ondersteuning van dit soort applicatiebehoeften is Couchbase ontworpen om eenvoudig schaalbare sleutel / waarde- of documenttoegang te bieden met een lage latentie en een hoge doorvoersnelheid. Het is ontworpen om te worden geclusterd van een enkele machine tot zeer grootschalige implementaties.
CouchDB
CouchDB is een database die het web volledig omarmt. Sla uw gegevens op met JSON-documenten. Open uw documenten en bevraag uw indexen met uw webbrowser, via HTTP. Indexeer, combineer en transformeer uw documenten met JavaScript. CouchDB werkt goed met moderne web- en mobiele apps. U kunt zelfs webapps rechtstreeks vanuit CouchDB bedienen. En u kunt uw gegevens of uw apps efficiënt verspreiden met de incrementele replicatie van CouchDB. CouchDB ondersteunt master-masteropstellingen met automatische conflictdetectie.
Heroverweeg DB
RethinkDB is een open-source, gedistribueerde database die is gebouwd om JSON-documenten op te slaan en met weinig moeite naar meerdere machines te schalen. Het is eenvoudig in te stellen en te leren, en het heeft een prettige zoektaal die echt nuttige zoekopdrachten ondersteunt zoals tabel joins, groeperingen en aggregaties
RavenDB
RavenDB is ook een documentendatabase van de 2e generatie. Wat we daarmee bedoelen, is dat er veel over nagedacht is om ervoor te zorgen dat het alles goed doet. Functies zoals Inclusief, Live-projecties en Multi-map, en ontwerpbeslissingen, zoals Safe-by-Default, zijn allemaal aanwezig om ervoor te zorgen dat RavenDB een echte toegevoegde waarde biedt en niet zomaar een nieuwe NoSQL-oplossing is
MarkLogic Server
MarkLogic Server is een Enterprise NoSQL Database. Het combineert database-internals, indexering in zoekstijlen en het gedrag van applicatieservers tot één systeem. Het gebruikt XML-documenten als gegevensmodel en slaat de documenten op in een transactionele repository. Het indexeert de woorden en waarden van elk van de geladen documenten, evenals de documentstructuur. En vanwege zijn unieke Universele Index, vereist MarkLogic geen voorafgaande kennis van de documentstructuur (zijn “schema”), noch volledige naleving van een bepaald schema. Door de mogelijkheden van de applicatieserver is het programmeerbaar en uitbreidbaar. MarkLogic Server (vanaf hier gewoon “MarkLogic” genoemd) clusters op standaard hardware met behulp van een shared-nothing-architectuur en onderscheidt zich in de markt door grootschalige en fantastische prestaties te ondersteunen, klantimplementaties zijn opgeschaald naar honderden terabytes aan brongegevens met behoud van antwoordtijd van minder dan een seconde.
Graph Databases
Neo4J
Neo4J is een op Java gebaseerde open source NoSQL-grafiekdatabase. Met een grafiekdatabase, die sociale netwerkgegevens kan doorzoeken, worden verbanden tussen gegevens onderzocht. Neo4j kan problemen oplossen die herhaaldelijk netwerkonderzoek vereisen (de database is gevuld met knooppunten, die vervolgens worden gekoppeld), en het bedrijf benadrukt de hoge prestaties van Neo4j. Het belang van grafische databasetechnologie en het potentieel van Neoo4j in de mobiele ruimte. Eifrem benadrukte ook zijn vertrouwen in Java, ondanks recente beveiligingsproblemen met het platform.
InfiniteGraph
InfiniteGraph is een gedistribueerde grafiekdatabase geïmplementeerd in Java en komt uit een klasse van NOSQL (of niet alleen SQL) datatechnologieën gericht op grafische datastructuren. Grafiekgegevens bestaan meestal uit objecten of dingen (knooppunten) en verschillende relaties (randen) die twee of meer knooppunten met elkaar kunnen verbinden. Ontwikkelaars kunnen Infinitegraph gebruiken om web- en mobiele applicaties en services te bouwen die grafische problemen of antwoorden moeten oplossen.
DEX
DEX is gebaseerd op een grafiekdatabasemodel, dat in feite wordt gekenmerkt door drie eigenschappen: gegevensstructuren zijn grafieken of elke andere structuur die lijkt op een grafiek; gegevensmanipulatie en zoekopdrachten zijn gebaseerd op op grafieken gerichte bewerkingen; en er zijn gegevensbeperkingen om de integriteit van de gegevens en hun relaties te garanderen. Een DEX-grafiek is een gelabelde gerichte toegeschreven multigraaf. Gelabeld omdat knooppunten en randen in een grafiek tot typen behoren. Gericht omdat het zowel gerichte randen als ongericht ondersteunt. Toegekend omdat zowel knooppunten als randen attributen en Multigraph kunnen hebben, wat betekent dat er meerdere randen tussen dezelfde knooppunten kunnen zijn, zelfs als ze van hetzelfde randtype zijn.
Titan
Titan is een schaalbare grafiekdatabase die is geoptimaliseerd voor het opslaan en bevragen van grafieken met honderden miljarden hoekpunten en randen verdeeld over een cluster met meerdere machines. Titan is een transactionele database die duizenden gelijktijdige gebruikers kan ondersteunen die complexe grafiekovergangen uitvoeren.
Infogrid
InfoGrid is een Web Graph Database met een groot aantal extra softwarecomponenten die de ontwikkeling van REST-volledige webapplicaties op een grafische basis gemakkelijk maken. InfoGrid is open source en wordt in Java ontwikkeld als een reeks projecten. Biedt een abstracte gemeenschappelijke interface voor opslagtechnologieën zoals SQL-databases en gedistribueerde NoSQL-hashtabellen. Hierdoor kan een InfoGrid GraphDatabase zijn gegevens behouden met behulp van verschillende opslagtechnologieën, maar met dezelfde API voor applicatieontwikkelaars.
HypergraphDB
HypergraphDB is een open-source gegevensopslagmechanisme gebaseerd op krachtig kennisbeheer-formalisme dat bekend staat als gerichte hypergrafen. Hoewel het een persistent geheugenmodel is dat voornamelijk is ontworpen voor kennisbeheer, AI en semantische webprojecten, kan het ook worden gebruikt als een ingebedde objectgeoriënteerde database voor Java-projecten van elke omvang. Of een grafische database. Of een (niet-SQL) relationele database. HyperGraphDB-applicatiecomponenten implementeren verschillende domeinmodellen, standaarden, algoritmen en domeinspecifieke tools, gebruik makend van de algemeenheid ervan. Elke entiteit in die componenten is uiteindelijk een HyperGraphDB-atoom, wat het mogelijk maakt om ze op natuurlijke wijze te integreren en samen te stellen.
Drie-eenheid
Grafiekberekening voor algemene doeleinden staat voor een grote uitdaging van willekeurige gegevenstoegang. Ondertussen vormt de RAM-capaciteitslimiet een schaal van enkele machine-oplossingen voor algemene grafische verwerking. Trinity is een gedistribueerd grafieksysteem voor algemeen gebruik over een geheugenwolk. Memory Cloud is een wereldwijd adresseerbare, in het geheugen opgeslagen sleutel / waarde-opslag boven een cluster van machines. Door de gedistribueerde opslag in het geheugen biedt Trinity snelle toegang tot willekeurige gegevens via een grote dataset. Dit maakt Trinity een natuurlijk groot platform voor het verwerken van grafieken. Met de kracht van snelle grafiekverkenning en gedistribueerde parallelle computing, ondersteunt Trinity zowel online queryverwerking met lage latentie als offline analyse met hoge doorvoer op grote grafieken op miljard knooppunten.
AllegroGraph
AllegroGraph is een moderne, krachtige, persistente grafische database. AllegroGraph gebruikt efficiënt geheugengebruik in combinatie met schijfgebaseerde opslag, waardoor het kan worden opgeschaald naar miljarden quads met behoud van superieure prestaties. AllegroGraph ondersteunt SPARQL, RDFS ++ en Prolog-redenering vanuit tal van clienttoepassingen.
WIT-database
De Workplace Health Indicator Tracking and Evaluation (WHITE ™) -database is een webgebaseerd systeem dat informatie over het volgen van incidenten en casemanagement voor de BC-gezondheidsautoriteiten centraliseert. De informatie stelt de gezondheidszorg in staat om letsel op de werkplek te verminderen en / of te elimineren, snelle klinische en werkplekinterventies te bieden om invaliditeit en tijdverlies te verminderen, en de effectiviteit van gezondheids- en veiligheidsprogramma’s te evalueren.
Virtuoso
Virtuoso Universal Server is een middleware- en database-engine-hybride die de functionaliteit van een traditionele RDBMS, ORDBMS, virtuele database, RDF, XML, vrije tekst, webtoepassingsserver en bestandsserverfunctionaliteit combineert in één sys