En översikt av NoSQL

click fraud protection

Förkortningen NoSQL myntades 1998. Många tycker att NoSQL är en nedsättande term skapad för att peta på 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 medarbetare.

MYSQL-databas.

NoSQL uppstod 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, mängden lagrad data som lades till 2006 var 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 finns det mycket data som lagras i världen och det kommer bara att fortsätta växa.

Sammankopplade 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 kopplas samman.

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 semantisk webb.

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 det till en billig lösning för stora datamängder.

NoSQL-kategorier

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

  1. Nyckel-värden Butiker baseras i första hand på Amazons Dynamo Paper som skrevs 2007. Huvudidén är förekomsten av 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 prestanda.
    1. Kolumn Familjebutiker skapades för att lagra och bearbeta mycket stora mängder data fördelade över 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.
  2. Dokumentdatabaser inspirerats av Lotus Notes och liknar nyckel-värde butiker. Modellen är i grunden versionerade dokument som är samlingar av andra nyckel-värde samlingar. De semistrukturerade dokumenten lagras i format som JSON.
  3. Grafdatabass är byggda 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.

Stora 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-teknologierna 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 av Facebook och är en kolumnorienterad NoSQL-databas.
  • Stort bord: 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.

Frågar 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. Istället är frågan om dessa databaser datamodellspecifik.

Många av NoSQL-plattformarna tillåter RESTful-gränssnitt till data. Andra API: er för erbjudandefrågor. Det finns ett par frågeverktyg som har utvecklats som försöker söka efter flera NoSQL-databaser. Dessa verktyg fungerar vanligtvis över en enda NoSQL-kategori. Ett exempel är SPARQL. SPARQL är en deklarativ frågespecifikation designad för grafdatabaser. Här är ett exempel på en SPARQL-fråga som hämtar webbadressen till en viss bloggare (med tillstånd av IBM):

PREFIX skum: 
VÄLJ ?url
FRÅN
VAR {
?bidragsgivare foaf: namn "Jon Foobar" .
?bidragsgivare foaf: webblogg ?url .
}

Framtiden för NoSQL

Organisationer som har enorma 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 riktning. 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 massöverklagande som många tror att det skulle kunna ha.