NoSQL-databaseoversigt

Indholdsfortegnelse:

NoSQL-databaseoversigt
NoSQL-databaseoversigt
Anonim

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.

Image
Image

NoSQL opstod fra et behov

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

Interconnected 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 være sammenkoblede.

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 det semantiske 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 joinforbindelser. 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. Key-values Stores 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 pointer til et bestemt dataelement. Disse kortlægninger ledsages norm alt af cachemekanismer for at maksimere ydeevnen.
  2. Column Family Stores blev oprettet 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.

  3. Document Databases er 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.
  4. Graph Databases er bygget med noder, relationer mellem noder og egenskaberne for 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-spillere

De store aktører i NoSQL er primært dukket op 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 blev hentet fra Facebook og er en kolonneorienteret NoSQL-database.
  • BigTable: BigTable er Googles proprietære kolonneorienterede database. Google tillader brug 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.

Querying NoSQL

Spørgsmålet om, hvordan man forespørger i en NoSQL-database, er det, de fleste udviklere er interesserede i. Når alt kommer til alt, gør data, der er lagret i en enorm database, ingen gavn, 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. Forespørgsel i disse databaser er i stedet > PREFIX foaf:

SELECT ?url

FROM

WHERE {

?contributor foaf:name "Jon Foobar".

?bidragyder foaf:weblog ?url.

}

Future of NoSQL

Organisationer, der har massive datalagringsbehov, ser seriøst på NoSQL. Tilsyneladende får konceptet ikke så meget trækkraft i mindre organisationer. I en undersøgelse foretaget af Information Week, har 44 % af forretnings-it-professionelle 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.