Die akroniem NoSQL is in 1998 geskep. Baie mense dink NoSQL is 'n neerhalende term wat geskep is om na SQL te kyk. In werklikheid beteken die term nie net SQL nie. Die idee is dat beide tegnologieë saam kan bestaan en elkeen het sy plek. Die NoSQL-beweging was die afgelope paar jaar in die nuus aangesien baie van die Web 2.0-leiers 'n NoSQL-tegnologie aangeneem het. Maatskappye soos Facebook, Twitter, Digg, Amazon, LinkedIn en Google gebruik almal NoSQL op een of ander manier. Kom ons breek NoSQL af sodat jy dit aan jou CIO of selfs jou medewerkers kan verduidelik.
NoSQL het uit 'n behoefte ontstaan
Databerging: Die wêreld se gestoorde digitale data word in eksagrepe gemeet.'n Exagreep is gelyk aan een miljard gigagrepe (GB) se data. Volgens Internet.com was die hoeveelheid gestoorde data wat in 2006 bygevoeg is 161 exagrepe. Net 4 jaar later in 2010 sal die hoeveelheid data wat gestoor word byna 1 000 ExaBytes wees, wat 'n toename van meer as 500% is. Met ander woorde, daar is baie data wat in die wêreld gestoor word en dit gaan net aanhou groei.
Intergekoppelde data: Data word steeds meer verbind. Die skepping van die web wat in hiperskakels bevorder word, blogs het pingbacks en elke groot sosiale netwerkstelsel het etikette wat dinge saambind. Groot stelsels is gebou om onderling verbind te wees.
Komplekse datastruktuur: NoSQL kan maklik hiërargiese geneste datastrukture hanteer. Om dieselfde ding in SQL te bereik, sal jy verskeie verhoudingstabelle met allerhande sleutels nodig hê. Daarbenewens is daar 'n verband tussen prestasie en datakompleksiteit. Prestasie kan verswak in 'n tradisionele RDBMS, aangesien ons die massiewe hoeveelhede data stoor wat benodig word in sosiale netwerktoepassings en die semantiese web.
Wat is NoSQL?
Ek dink een manier om NoSQL te definieer, is om te oorweeg wat dit nie is nie. Dit is nie SQL nie en dit is nie relasioneel nie. Soos die naam aandui, is dit nie 'n plaasvervanger vir 'n RDBMS nie, maar komplimenteer dit. NoSQL is ontwerp vir verspreide datawinkels vir baie grootskaalse databehoeftes. Dink aan Facebook met sy 500 000 000 gebruikers of Twitter wat elke dag terabits data ophoop.
In 'n NoSQL-databasis is daar geen vaste skema en geen aansluitings nie. 'n RDBMS "skaal op" deur vinniger en vinniger hardeware te kry en geheue by te voeg. NoSQL, aan die ander kant, kan voordeel trek uit "afskaal". Afskaal verwys na die verspreiding van die las oor baie kommoditeitstelsels. Dit is die komponent van NoSQL wat dit 'n goedkoop oplossing vir groot datastelle maak.
NoSQL-kategorieë
Die huidige NoSQL-wêreld pas in 4 basiese kategorieë.
- Sleutelwaardewinkels is hoofsaaklik gebaseer op Amazon se Dynamo Paper wat in 2007 geskryf is. Die hoofgedagte is die bestaan van 'n hash-tabel waar daar 'n unieke sleutel en 'n wyser na 'n spesifieke item data is. Hierdie kartering word gewoonlik vergesel van kasmeganismes om werkverrigting te maksimeer.
- Dokumentdatabasisse is deur Lotus Notes geïnspireer en is soortgelyk aan sleutelwaardewinkels. Die model is basies weergawes van dokumente wat versamelings van ander sleutel-waarde versamelings is. Die semi-gestruktureerde dokumente word in formate soos JSON gestoor.
- Grafiekdatabasiss is gebou met nodusse, verwantskappe tussen note en die eienskappe van nodes. In plaas van tabelle van rye en kolomme en die rigiede struktuur van SQL, word 'n buigsame grafiekmodel gebruik wat oor baie masjiene kan skaal.
Kolomfamiliewinkels is geskep om baie groot hoeveelhede data wat oor baie masjiene versprei is, te stoor en te verwerk. Daar is steeds sleutels, maar dit wys na verskeie kolomme. In die geval van BigTable (Google se Column Family NoSQL-model), word rye geïdentifiseer deur 'n rysleutel met die data gesorteer en gestoor deur hierdie sleutel. Die kolomme word volgens kolomfamilie gerangskik.
Major NoSQL-spelers
Die belangrikste spelers in NoSQL het hoofsaaklik na vore gekom as gevolg van die organisasies wat hulle aangeneem het. Sommige van die grootste NoSQL-tegnologieë sluit in:
- Dynamo: Dynamo is geskep deur Amazon.com en is die mees prominente Sleutel-Waarde NoSQL-databasis. Amazon het 'n hoogs skaalbare verspreide platform vir hul e-handelondernemings nodig gehad, so hulle het Dynamo ontwikkel. Amazon S3 gebruik Dynamo as die bergingsmeganisme.
- Cassandra: Cassandra is oopbron deur Facebook en is 'n kolom-georiënteerde NoSQL-databasis.
- BigTable: BigTable is Google se eie kolomgeoriënteerde databasis. Google laat die gebruik van BigTable toe, maar slegs vir die Google App Engine.
- SimpleDB: SimpleDB is nog 'n Amazon-databasis. Gebruik vir Amazon EC2 en S3, dit is deel van Amazon Web Services wat fooie hef na gelang van gebruik.
- CouchDB: CouchDB saam met MongoDB is oopbron-dokument-georiënteerde NoSQL-databasisse.
- Neo4J: Neo4j is 'n oopbron-grafiekdatabasis.
Navrae NoSQL
Die vraag oor hoe om 'n NoSQL-databasis te bevraagteken, is waarin die meeste ontwikkelaars belangstel. Data wat in 'n groot databasis gestoor word, help immers niemand goed as jy dit nie kan herwin en aan eindgebruikers wys nie of webdienste. NoSQL-databasisse verskaf nie 'n hoëvlak-verklarende navraagtaal soos SQL nie. In plaas daarvan, navraag na hierdie databasisse is> PREFIX foaf:
SELECT ?url
FROM
WAAR {
?bydraer foaf:name "Jon Foobar".
?bydraer foaf:weblog ?url.
}
Future of NoSQL
Organisasies wat massiewe databergingsbehoeftes het, kyk ernstig na NoSQL. Blykbaar kry die konsep nie soveel aangryping in kleiner organisasies nie. In 'n opname wat deur Information Week gedoen is, het 44% van sake-IT-professionele mense nog nie van NoSQL gehoor nie. Verder het slegs 1% van die respondente gerapporteer dat NoSQL deel is van hul strategiese rigting. Dit is duidelik dat NoSQL sy plek in ons gekoppelde wêreld het, maar sal moet voortgaan om te ontwikkel om die massa-aantrekkingskrag te kry wat baie dink dit kan hê.