Skip to main content

NoSQL Databaser Översikt

246 Mega Blast Svea (Maj 2024)

246 Mega Blast Svea (Maj 2024)
Anonim

Akronymet NoSQL har gjorts i 1998. Många tycker att NoSQL är en nedsättande term som skapats för att peka 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 de senaste åren, eftersom många av Web 2.0-ledarna har antagit 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.

NoSQL uppstod från ett behov

Datalagring: Världens lagrade digitala data mäts i exabytes. En exabyte motsvarar en miljard gigabyte (GB) data. Enligt Internet.com var mängden lagrad data som lagts till 2006 161 exabytes. Bara 4 år senare 2010 kommer mängden lagrad data att vara nästan 1000 ExaBytes 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 anslutna. Skapandet av webben främjas i hyperlänkar, bloggar har pingbacks och alla stora sociala nätverkssystem har taggar som knyter samman saker. Större system är byggda för att vara sammankopplade.

Komplex datastruktur: NoSQL kan enkelt hantera hierarkiska kapslade datastrukturer. För att uppnå samma sak i SQL skulle du behöva flera relationella tabeller med alla typer av nycklar. Dessutom finns det en relation mellan prestanda och datakomplexitet. Prestanda kan brytas ned i en traditionell RDBMS eftersom vi lagrar massiva mängder data som krävs i sociala nätverk och 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 men komplimangerar den. NoSQL är utformad för distribuerade datalager för mycket stora behov. Tänk på Facebook med sina 500.000.000 användare eller Twitter som ackumulerar Terabits data varje dag.

I en NoSQL-databas finns det inget fast schema och inga anslutningar. En RDBMS "skala upp" genom att få snabbare och snabbare maskinvara och lägga till minne. NoSQL, å andra sidan, kan dra nytta av "scaling out". Skalning avser att sprida lasten över många råvarusystem. Detta är komponenten i NoSQL som gör det till en billig lösning för stora dataset.

NoSQL Kategorier

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

  1. Viktiga butiker baseras främst på Amazons Dynamo Paper, som skrevs 2007. Huvudidén är existensen av ett hashbord där det finns en unik nyckel och en pekare på ett visst dataelement. Dessa mappningar åtföljs vanligtvis av cachemekanismer för att maximera prestanda.
    1. Kolumn familje butiker skapades för att lagra och bearbeta mycket stora datamängder fördelade på många maskiner. Det finns fortfarande nycklar men de pekar på flera kolumner. När det gäller BigTable (Googles kolumnfamilj NoSQL-modell) identifieras rader med en radnyckel med de data som sorteras och lagras av den här nyckeln. Kolumnerna är ordnade av kolonnfamilj.
  2. Dokumentdatabass inspirerades av Lotus Notes och liknar viktiga butiker. Modellen är i grunden versionerade dokument som är samlingar av andra viktiga samlingar. De halvstrukturerade dokumenten lagras i format som JSON.
  3. Grafdatabass är byggda med noder, relationer mellan anteckningar och nodernas egenskaper. Istället för tabeller med rader och kolumner och den styva strukturen i SQL används en flexibel grafmodell som kan skala över många maskiner.

Större NoSQL-spelare

De stora aktörerna i NoSQL har uppstått främst på grund av de organisationer som har antagit dem. Några av de största NoSQL-teknikerna är:

  • Dynamo: Dynamo skapades av Amazon.com och är den mest framträdande Key-Value NoSQL-databasen. Amazon hade behov av en mycket skalbar distribuerad plattform för sina e-handelsföretag så att de utvecklade Dynamo. Amazon S3 använder Dynamo som lagringsmekanism.
  • Cassandra: Cassandra öppnades av Facebook och är en kolumnorienterad NoSQL-databas.
  • Stort bord: BigTable är Googles egen kolumnorienterad databas. Google tillåter användningen av BigTable men endast för Google App Engine.
  • SimpleDB: SimpleDB är en annan Amazon-databas. Används för Amazon EC2 och S3, ingår det i Amazon Web Services som tar ut avgifter beroende på användningen.
  • CouchDB: CouchDB tillsammans med MongoDB är open source-dokumentorienterade NoSQL-databaser.
  • Neo4J: Neo4j är en grafisk databas med öppen källkod.

Fråga NoSQL

Frågan om hur man frågar en NoSQL-databas är vad de flesta utvecklare är intresserade av. Trots allt gör data som lagras i en stor databas inte någon bra om du inte kan hämta och visa den för slutanvändare eller webbtjänster. NoSQL-databaser tillhandahåller inte ett uttalande språk på hög nivå som SQL. I stället är det efterfrågan på dessa databaser datormodellspecifikt.

Många av NoSQL-plattformarna tillåter RESTful-gränssnitt till data. Andra erbjudande API-er. Det finns ett par sökverktyg som har utvecklats som försök att fråga flera NoSQL-databaser. Dessa verktyg fungerar normalt över en enda NoSQL-kategori. Ett exempel är SPARQL. SPARQL är en deklarativ frågaspecifikation konstruerad 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 foaf: SELECT? UrlFRÅN VAR {? Bidragsgivare Foaf: Namn "Jon Foobar".? bidragare foaf: weblog? url.}

Framtiden för NoSQL

Organisationer som har massiva behov av datalagring ser seriöst ut på NoSQL. Uppenbarligen blir konceptet inte lika mycket dragkraft i mindre organisationer. I en undersökning som genomfördes av informationsveckan har 44% av företagets IT-personal inte hört talas om NoSQL. Vidare rapporterade endast 1% av de svarande att NoSQL är en del av deras strategiska inriktning. Det är uppenbart att NoSQL har sin plats i vår anslutna värld, men måste fortsätta att utvecklas för att få den massa överklagande som många tror att det skulle kunna ha.