NoSQL-databaseoverzicht

Inhoudsopgave:

NoSQL-databaseoverzicht
NoSQL-databaseoverzicht
Anonim

Het acroniem 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.

Image
Image

NoSQL ontstond uit een behoefte

Gegevensopslag: 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.

Interconnected Data: Data wordt steeds meer verbonden. De creatie van het web bevorderd in 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 gemakkelijk hiërarchische geneste gegevensstructuren 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. De prestaties kunnen afnemen in een traditioneel RDBMS omdat we de enorme hoeveelheden gegevens opslaan die nodig zijn in toepassingen voor sociale netwerken en het semantische 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 gegevens verzamelt.

In een NoSQL-database is er geen vast schema en geen joins. Een RDBMS "scha alt 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. Key-values Stores zijn voornamelijk gebaseerd op Amazon's Dynamo Paper, dat in 2007 werd 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.
  2. Column Family Stores 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 worden gesorteerd en opgeslagen door deze sleutel. De kolommen zijn gerangschikt op kolomfamilie.

  3. Documentdatabases zijn geïnspireerd op Lotus Notes en zijn vergelijkbaar met sleutel-waardewinkels. 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.
  4. Graph Databases zijn gebouwd met knooppunten, relaties tussen notities 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.

Belangrijke NoSQL-spelers

De grote 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.
  • BigTable: BigTable is de eigen kolomgeoriënteerde database van Google. Google staat het gebruik van BigTable toe, maar alleen voor de Google App Engine.
  • SimpleDB: 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.
  • CouchDB: CouchDB 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 enig nut als u ze niet kunt ophalen en aan eindgebruikers kunt laten zien of webservices. NoSQL-databases bieden geen declaratieve querytaal op hoog niveau, zoals SQL. In plaats daarvan is het doorzoeken van deze databases> PREFIX foaf:

SELECT ?url

FROM

WHERE {

?contributor foaf:name "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.