NoSQL-databaser Översikt

Innehållsförteckning:

NoSQL-databaser Översikt
NoSQL-databaser Översikt
Anonim

Akronymen NoSQL myntades 1998. Många tycker att NoSQL är en nedsättande term skapad för att peta i SQL. I verkligheten betyder termen inte bara SQL. Tanken är att båda teknologierna kan samexistera och var och en har sin plats. NoSQL-rörelsen har varit i nyheterna under de senaste åren eftersom många av Web 2.0-ledarna har anammat en NoSQL-teknik. Företag som Facebook, Twitter, Digg, Amazon, LinkedIn och Google använder alla NoSQL på ett eller annat sätt. Låt oss bryta ner NoSQL så att du kan förklara det för din CIO eller till och med dina kollegor.

Image
Image

NoSQL kom ur ett behov

Datalagring: Världens lagrade digitala data mäts i exabyte. En exabyte är lika med en miljard gigabyte (GB) data. Enligt Internet.com var mängden lagrad data som lades till 2006 161 exabyte. Bara fyra år senare 2010 kommer mängden lagrad data att vara nästan 1 000 ExaByte vilket är en ökning med över 500 %. Med andra ord, det finns mycket data som lagras i världen och det kommer bara att fortsätta växa.

Interconnected Data: Data fortsätter att bli mer ansluten. Skapandet av webben främjas av hyperlänkar, bloggar har pingbacks och alla stora sociala nätverkssystem har taggar som binder ihop saker. Stora system är byggda för att vara sammankopplade.

Komplex datastruktur: NoSQL kan enkelt hantera hierarkiska kapslade datastrukturer. För att åstadkomma samma sak i SQL skulle du behöva flera relationstabeller med alla typer av nycklar. Dessutom finns det ett samband mellan prestanda och datakomplexitet. Prestanda kan försämras i ett traditionellt RDBMS eftersom vi lagrar de enorma mängder data som krävs i sociala nätverksapplikationer och den semantiska webben.

Vad är NoSQL?

Jag antar att ett sätt att definiera NoSQL är att överväga vad det inte är. Det är inte SQL och det är inte relationellt. Som namnet antyder, är det inte en ersättning för en RDBMS utan kompletterar den. NoSQL är designad för distribuerade datalager för mycket storskaliga databehov. Tänk på Facebook med sina 500 000 000 användare eller Twitter som ackumulerar Terabits av data varje dag.

I en NoSQL-databas finns det inget fast schema och inga joins. En RDBMS "skalar upp" genom att få snabbare och snabbare hårdvara och lägga till minne. NoSQL å andra sidan kan dra fördel av att "skala ut". Utskalning avser att fördela belastningen över många varusystem. Detta är komponenten i NoSQL som gör den till en billig lösning för stora datamängder.

NoSQL-kategorier

Den nuvarande NoSQL-världen passar in i fyra grundläggande kategorier.

  1. Key-values Stores är främst baserade på Amazons Dynamo Paper som skrevs 2007. Huvudidén är att det finns en hashtabell där det finns en unik nyckel och en pekare till en viss datapost. Dessa mappningar åtföljs vanligtvis av cache-mekanismer för att maximera prestandan.
  2. Column Family Stores skapades för att lagra och bearbeta mycket stora mängder data fördelade på många maskiner. Det finns fortfarande nycklar men de pekar på flera kolumner. När det gäller BigTable (Googles Column Family NoSQL-modell) identifieras rader med en radnyckel med data sorterad och lagrad med denna nyckel. Kolumnerna är ordnade efter kolumnfamilj.

  3. Document Databases inspirerades av Lotus Notes och liknar nyckelvärdesbutiker. Modellen är i grunden versionerade dokument som är samlingar av andra nyckel-värde samlingar. De semistrukturerade dokumenten lagras i format som JSON.
  4. Graph Databases byggs med noder, relationer mellan noter och nodernas egenskaper. Istället för tabeller med rader och kolumner och den stela strukturen i SQL, används en flexibel grafmodell som kan skalas över många maskiner.

Major NoSQL-spelare

De stora aktörerna inom NoSQL har vuxit fram främst på grund av de organisationer som har antagit dem. Några av de största NoSQL-teknikerna inkluderar:

  • Dynamo: Dynamo skapades av Amazon.com och är den mest framstående Key-Value NoSQL-databasen. Amazon var i behov av en mycket skalbar distribuerad plattform för sina e-handelsföretag så de utvecklade Dynamo. Amazon S3 använder Dynamo som lagringsmekanism.
  • Cassandra: Cassandra var öppen källkod från Facebook och är en kolumnorienterad NoSQL-databas.
  • BigTable: BigTable är Googles proprietära kolumnorienterade databas. Google tillåter användning av BigTable men endast för Google App Engine.
  • SimpleDB: SimpleDB är en annan Amazon-databas. Används för Amazon EC2 och S3 och är en del av Amazon Web Services som tar ut avgifter beroende på användning.
  • CouchDB: CouchDB tillsammans med MongoDB är dokumentorienterade NoSQL-databaser med öppen källkod.
  • Neo4J: Neo4j är en grafdatabas med öppen källkod.

Querying NoSQL

Frågan om hur man frågar en NoSQL-databas är vad de flesta utvecklare är intresserade av. När allt kommer omkring, data lagrad i en enorm databas gör ingen nytta om du inte kan hämta och visa den för slutanvändare eller webbtjänster. NoSQL-databaser tillhandahåller inte ett deklarativt frågespråk på hög nivå som SQL. Frågan i dessa databaser är istället > PREFIX foaf:

SELECT ?url

FROM

WHERE {

?contributor foaf:name "Jon Foobar".

?contributor foaf:weblog ?url.

}

Future of NoSQL

Organisationer som har stora behov av datalagring tittar allvarligt på NoSQL. Uppenbarligen får konceptet inte så mycket dragkraft i mindre organisationer. I en undersökning gjord av Information Week har 44 % av företags IT-proffs inte hört talas om NoSQL. Vidare rapporterade endast 1% av de tillfrågade att NoSQL är en del av deras strategiska inriktning. Det är uppenbart att NoSQL har sin plats i vår uppkopplade värld men kommer att behöva fortsätta att utvecklas för att få den masstilltal som många tror att den skulle kunna ha.

Rekommenderad: