Een overzicht van NoSQL

click fraud protection

De afkorting NoSQL werd in 1998 bedacht. Veel mensen denken dat NoSQL een denigrerende term is die is gemaakt om in SQL te prikken. In werkelijkheid betekent de term niet alleen SQL. Het idee is dat beide technologieën naast elkaar kunnen bestaan ​​en dat elk zijn plaats heeft. De NoSQL-beweging is de afgelopen jaren in het nieuws geweest, omdat veel van de Web 2.0-leiders een NoSQL-technologie hebben aangenomen. Bedrijven als Facebook, Twitter, Digg, Amazon, LinkedIn en Google gebruiken allemaal op de een of andere manier NoSQL. Laten we NoSQL opsplitsen, zodat u het aan uw CIO of zelfs uw collega's kunt uitleggen.

MYSQL-database.

NoSQL is voortgekomen uit een behoefte

Gegevens opslag: De opgeslagen digitale gegevens van de wereld worden gemeten in exabytes. Een exabyte is gelijk aan één miljard gigabyte (GB) aan gegevens. Volgens internet.com, bedroeg de hoeveelheid opgeslagen gegevens die in 2006 werd toegevoegd 161 exabyte. Slechts 4 jaar later, in 2010, zal de hoeveelheid opgeslagen gegevens bijna 1.000 ExaBytes bedragen, wat een toename is van meer dan 500%. Met andere woorden, er worden veel gegevens in de wereld opgeslagen en het zal alleen maar blijven groeien.

Onderling verbonden gegevens: Data wordt steeds meer verbonden. De creatie van het web bevorderd door hyperlinks, blogs hebben pingbacks en elk groot sociaal netwerksysteem heeft tags die dingen met elkaar verbinden. Grote systemen zijn gebouwd om onderling verbonden te zijn.

Complexe gegevensstructuur: NoSQL kan eenvoudig hiërarchische geneste datastructuren aan. Om hetzelfde in SQL te bereiken, heb je meerdere relationele tabellen met allerlei sleutels nodig. Daarnaast is er een relatie tussen performance en datacomplexiteit. Prestaties kunnen verslechteren in een traditioneel RDBMS omdat we de enorme hoeveelheden gegevens opslaan die nodig zijn in toepassingen voor sociale netwerken en de semantisch web.

Wat is NoSQL?

Ik denk dat een manier om NoSQL te definiëren is om te overwegen wat het niet is. Het is geen SQL en het is niet relationeel. Zoals de naam al doet vermoeden, is het geen vervanging voor een RDBMS, maar complimenteert het. NoSQL is ontworpen voor gedistribueerde gegevensopslag voor zeer grootschalige gegevensbehoeften. Denk aan Facebook met zijn 500.000.000 gebruikers of Twitter die elke dag Terabits aan data verzamelt.

In een NoSQL-database is er geen vast schema en geen joins. Een RDBMS "schaalt op" door steeds snellere hardware te krijgen en geheugen toe te voegen. NoSQL daarentegen kan profiteren van "uitschalen". Uitschalen verwijst naar het spreiden van de belasting over veel goederensystemen. Dit is het onderdeel van NoSQL dat het een goedkope oplossing maakt voor grote datasets.

NoSQL-categorieën

De huidige NoSQL-wereld past in 4 basiscategorieën.

  1. Sleutel-waardenwinkels zijn voornamelijk gebaseerd op Amazon's Dynamo Paper die in 2007 is geschreven. Het belangrijkste idee is het bestaan ​​van een hashtabel met een unieke sleutel en een verwijzing naar een bepaald gegevensitem. Deze toewijzingen gaan meestal gepaard met cachemechanismen om de prestaties te maximaliseren.
    1. Column Familiewinkels zijn gemaakt om zeer grote hoeveelheden gegevens op te slaan en te verwerken die over veel machines zijn verdeeld. Er zijn nog steeds sleutels, maar ze verwijzen naar meerdere kolommen. In het geval van BigTable (Google's Column Family NoSQL-model), worden rijen geïdentificeerd door een rijsleutel, waarbij de gegevens door deze sleutel worden gesorteerd en opgeslagen. De kolommen zijn gerangschikt per kolomfamilie.
  2. Documentdatabases werden geïnspireerd door Lotus Notes en zijn vergelijkbaar met sleutelwaardewinkels. Het model bestaat in feite uit documenten met versiebeheer die verzamelingen zijn van andere verzamelingen met sleutelwaarden. De semi-gestructureerde documenten worden opgeslagen in formaten zoals JSON.
  3. Grafiekdatabases zijn gebouwd met knooppunten, relaties tussen noten en de eigenschappen van knooppunten. In plaats van tabellen met rijen en kolommen en de rigide structuur van SQL, wordt een flexibel grafiekmodel gebruikt dat over veel machines kan worden geschaald.

Grote NoSQL-spelers

De belangrijkste spelers in NoSQL zijn vooral ontstaan ​​dankzij de organisaties die ze hebben geadopteerd. Enkele van de grootste NoSQL-technologieën zijn:

  • Dynamo: Dynamo is gemaakt door Amazon.com en is de meest prominente Key-Value NoSQL-database. Amazon had behoefte aan een zeer schaalbaar gedistribueerd platform voor hun e-commercebedrijven, dus ontwikkelden ze Dynamo. Amazon S3 gebruikt Dynamo als opslagmechanisme.
  • Cassandra:Cassandra was open source door Facebook en is een kolomgeoriënteerde NoSQL-database.
  • Grote tafel: BigTable is de eigen kolomgeoriënteerde database van Google. Google staat het gebruik van BigTable toe, maar alleen voor de Google App Engine.
  • EenvoudigeDB: SimpleDB is een andere Amazon-database. Het wordt gebruikt voor Amazon EC2 en S3 en maakt deel uit van Amazon Web Services die kosten in rekening brengt afhankelijk van het gebruik.
  • BankDB:BankDB samen met MongoDB zijn open source documentgeoriënteerde NoSQL-databases.
  • Neo4J:Neo4j is een open source grafiekendatabase.

NoSQL opvragen

De vraag hoe een NoSQL-database moet worden doorzocht, is waar de meeste ontwikkelaars in geïnteresseerd zijn. Gegevens die zijn opgeslagen in een enorme database hebben immers niemand iets aan als je ze niet kunt ophalen en tonen aan eindgebruikers of webservices. NoSQL-databases bieden geen declaratieve querytaal op hoog niveau, zoals SQL. In plaats daarvan is het opvragen van deze databases gegevensmodelspecifiek.

Veel van de NoSQL-platforms maken REST-interfaces naar de gegevens mogelijk. Andere aanbieding query-API's. Er zijn een aantal querytools ontwikkeld die proberen meerdere NoSQL-databases te doorzoeken. Deze tools werken doorgaans in één enkele NoSQL-categorie. Een voorbeeld hiervan is SPARQL. SPARQL is een declaratieve zoekspecificatie die is ontworpen voor grafische databases. Hier is een voorbeeld van een SPARQL-query die de URL van een bepaalde blogger ophaalt (met dank aan IBM):

PREFIX slof: 
SELECTEER ?url
VAN
WAAR {
?bijdrager foaf: naam "Jon Foobar" .
?bijdrager foaf: weblog ?url .
}

Toekomst van NoSQL

Organisaties die enorme behoefte hebben aan gegevensopslag, kijken serieus naar NoSQL. Blijkbaar krijgt het concept niet zoveel grip in kleinere organisaties. Uit een onderzoek van Information Week blijkt dat 44% van de zakelijke IT-professionals nog nooit van NoSQL hebben gehoord. Verder meldde slechts 1% van de respondenten dat NoSQL een onderdeel is van hun strategische richting. Het is duidelijk dat NoSQL zijn plaats heeft in onze verbonden wereld, maar zal moeten blijven evolueren om de massale aantrekkingskracht te krijgen die velen denken dat het zou kunnen hebben.