En oversigt over NoSQL

click fraud protection

Akronymet NoSQL blev opfundet i 1998. Mange mennesker tror, ​​at NoSQL er et nedsættende udtryk, der er skabt til at stikke i SQL. I virkeligheden betyder udtrykket ikke kun SQL. Tanken er, at begge teknologier kan eksistere side om side, og hver har sin plads. NoSQL-bevægelsen har været i nyhederne i de sidste par år, da mange af Web 2.0-lederne har taget en NoSQL-teknologi til sig. Virksomheder som Facebook, Twitter, Digg, Amazon, LinkedIn og Google bruger alle NoSQL på den ene eller anden måde. Lad os nedbryde NoSQL, så du kan forklare det til din CIO eller endda dine kolleger.

MYSQL database.

NoSQL opstod fra et behov

Data opbevaring: Verdens lagrede digitale data måles i exabyte. En exabyte er lig med en milliard gigabyte (GB) data. Ifølge Internet.com, var mængden af ​​lagrede data tilføjet i 2006 161 exabyte. Blot 4 år senere i 2010 vil mængden af ​​lagrede data være næsten 1.000 ExaBytes, hvilket er en stigning på over 500%. Med andre ord er der en masse data, der bliver lagret i verden, og det vil bare fortsætte med at vokse.

Sammenkoblede data: Data bliver ved med at blive mere forbundet. Skabelsen af ​​nettet fremmes i hyperlinks, blogs har pingbacks, og alle større sociale netværkssystem har tags, der binder tingene sammen. Større systemer er bygget til at hænge sammen.

Kompleks datastruktur: NoSQL kan nemt håndtere hierarkiske indlejrede datastrukturer. For at opnå det samme i SQL, har du brug for flere relationelle tabeller med alle slags nøgler. Derudover er der en sammenhæng mellem ydeevne og datakompleksitet. Ydeevne kan forringes i et traditionelt RDBMS, da vi gemmer de enorme mængder data, der kræves i sociale netværksapplikationer og semantisk web.

Hvad er NoSQL?

Jeg gætter på, at en måde at definere NoSQL på er at overveje, hvad det ikke er. Det er ikke SQL, og det er ikke relationelt. Som navnet antyder, er det ikke en erstatning for et RDBMS, men komplimenterer det. NoSQL er designet til distribuerede datalagre til meget store databehov. Tænk på Facebook med sine 500.000.000 brugere eller Twitter, som akkumulerer Terabits af data hver eneste dag.

I en NoSQL-database er der intet fast skema og ingen joins. Et RDBMS "skalerer op" ved at få hurtigere og hurtigere hardware og tilføje hukommelse. NoSQL kan derimod drage fordel af at "skalere ud". Udskalering refererer til at sprede belastningen over mange varesystemer. Dette er den komponent i NoSQL, der gør det til en billig løsning til store datasæt.

NoSQL kategorier

Den nuværende NoSQL-verden passer ind i 4 grundlæggende kategorier.

  1. Nøgleværdibutikker er primært baseret på Amazons Dynamo Paper som blev skrevet i 2007. Hovedideen er eksistensen af ​​en hash-tabel, hvor der er en unik nøgle og en pegepind til et bestemt dataelement. Disse kortlægninger er normalt ledsaget af cache-mekanismer for at maksimere ydeevnen.
    1. Kolonne Familiebutikker blev skabt til at gemme og behandle meget store mængder data fordelt på mange maskiner. Der er stadig nøgler, men de peger på flere kolonner. I tilfælde af BigTable (Googles Column Family NoSQL-model) identificeres rækker med en rækkenøgle med data sorteret og gemt med denne nøgle. Kolonnerne er arrangeret efter kolonnefamilie.
  2. Dokumentdatabaser blev inspireret af Lotus Notes og ligner nøgleværdibutikker. Modellen er grundlæggende versionerede dokumenter, der er samlinger af andre nøgleværdisamlinger. De semistrukturerede dokumenter gemmes i formater som JSON.
  3. Graf databases er bygget med noder, relationer mellem noter og egenskaberne af noder. I stedet for tabeller med rækker og kolonner og den stive struktur i SQL, bruges en fleksibel grafmodel, som kan skaleres på tværs af mange maskiner.

Større NoSQL-afspillere

De store aktører i NoSQL er opstået primært på grund af de organisationer, der har adopteret dem. Nogle af de største NoSQL-teknologier inkluderer:

  • Dynamo: Dynamo blev skabt af Amazon.com og er den mest fremtrædende Key-Value NoSQL-database. Amazon havde brug for en meget skalerbar distribueret platform til deres e-handelsvirksomheder, så de udviklede Dynamo. Amazon S3 bruger Dynamo som lagermekanisme.
  • Cassandra:Cassandra var open source af Facebook og er en kolonneorienteret NoSQL-database.
  • BigTable: BigTable er Googles proprietære kolonneorienterede database. Google tillader brugen af ​​BigTable, men kun til Google App Engine.
  • SimpleDB: SimpleDB er en anden Amazon-database. Brugt til Amazon EC2 og S3, er det en del af Amazon Web Services, der opkræver gebyrer afhængigt af brug.
  • CouchDB:CouchDB sammen med MongoDB er open source dokumentorienterede NoSQL-databaser.
  • Neo4J:Neo4j er en open source grafdatabase.

Forespørger NoSQL

Spørgsmålet om, hvordan man forespørger i en NoSQL-database er, hvad de fleste udviklere er interesserede i. Data, der er gemt i en enorm database, nytter jo ikke nogen, hvis du ikke kan hente og vise dem til slutbrugere eller webtjenester. NoSQL-databaser giver ikke et deklarativt forespørgselssprog på højt niveau som SQL. I stedet er forespørgsel i disse databaser datamodelspecifik.

Mange af NoSQL-platformene giver mulighed for RESTful-grænseflader til dataene. Andre tilbudsforespørgsels-API'er. Der er et par forespørgselsværktøjer, der er blevet udviklet, som forsøger at forespørge på flere NoSQL-databaser. Disse værktøjer fungerer typisk på tværs af en enkelt NoSQL-kategori. Et eksempel er SPARQL. SPARQL er en deklarativ forespørgselsspecifikation designet til grafdatabaser. Her er et eksempel på en SPARQL-forespørgsel, der henter URL'en på en bestemt blogger (med tilladelse fra IBM):

PREFIX skum: 
VÆLG ?url
FRA
HVOR {
? bidragyder foaf: navn "Jon Foobar" .
?bidragyder foaf: weblog ?url .
}

Fremtiden for NoSQL

Organisationer, der har massive datalagringsbehov, ser seriøst på NoSQL. Tilsyneladende får konceptet ikke så meget indpas i mindre organisationer. I en undersøgelse foretaget af Information Week, har 44 % af forretningsfolk inden for IT ikke hørt om NoSQL. Yderligere rapporterede kun 1% af de adspurgte, at NoSQL er en del af deres strategiske retning. Det er klart, at NoSQL har sin plads i vores forbundne verden, men vil skulle fortsætte med at udvikle sig for at få den masseappel, som mange tror, ​​den kunne have.