Skip to main content

NoSQL Databaser Oversikt

13.65 Was ist eigentlich NoSQL? (Kan 2024)

13.65 Was ist eigentlich NoSQL? (Kan 2024)
Anonim

Akronymet NoSQL ble laget i 1998. Mange tror at NoSQL er en nedsettende term som er opprettet for å peke på SQL. I virkeligheten betyr begrepet Ikke bare SQL. Tanken er at begge teknologiene kan sameksistere og hver har sitt sted. NoSQL-bevegelsen har vært i nyhetene de siste årene, da mange av Web 2.0-lederne har vedtatt en NoSQL-teknologi. Bedrifter som Facebook, Twitter, Digg, Amazon, LinkedIn og Google bruker alle NoSQL på en eller annen måte. La oss bryte ned NoSQL, slik at du kan forklare det til din CIO eller til og med dine medarbeidere.

NoSQL dukket opp fra et behov

Datalagring: Verdens lagrede digitale data blir målt i exabytter. En exabyte er lik en milliard gigabyte (GB) data. Ifølge Internet.com var mengden lagrede data lagt til i 2006 161 exabyte. Bare 4 år senere i 2010 vil mengden lagrede data være nesten 1000 ExaBytes, noe som er en økning på over 500%. Med andre ord, det er mye data lagret i verden, og det kommer bare til å fortsette å vokse.

Sammenkoblede data: Dataene fortsetter å bli mer koblet sammen. Opprettelsen av nettet fostret i hyperkoblinger, blogger har pingbacks, og alle store sosiale nettverkssystem har tagger som knytter sammen ting. Store systemer er bygget for å være sammenkoblet.

Kompleks datastruktur: NoSQL kan enkelt håndtere hierarkiske nestede datastrukturer. For å oppnå det samme i SQL, vil du trenge flere relasjonelle tabeller med alle typer nøkler. I tillegg er det et forhold mellom ytelse og datakompleksitet. Ytelsen kan nedbrytes i en tradisjonell RDBMS ettersom vi lagrer de enorme mengdene data som kreves i sosiale nettverk og det semantiske web.

Hva er NoSQL?

Jeg antar at en måte å definere NoSQL på er å vurdere hva det ikke er. Det er ikke SQL, og det er ikke relasjonelt. Som navnet antyder, er det ikke en erstatning for en RDBMS, men komplimenterer den. NoSQL er utviklet for distribuerte datalager for svært store databehov. Tenk på Facebook med sine 500.000.000 brukere eller Twitter som samler Terabits av data hver eneste dag.

I en NoSQL-database er det ingen fast skjema og ingen tilmeldinger. En RDBMS "skaleres" ved å få raskere og raskere maskinvare og legge til minne. NoSQL, derimot, kan dra nytte av "scaling out". Skalering refererer til å spre belastningen over mange råvaresystemer. Dette er komponenten i NoSQL som gjør det til en billig løsning for store datasett.

NoSQL Kategorier

Den nåværende NoSQL verden passer inn i 4 grunnleggende kategorier.

  1. Nøkkelverdier Butikker baserer seg primært på Amazons Dynamo Paper som ble skrevet i 2007. Hovedideen er eksistensen av et hashbord hvor det er en unik nøkkel og en peker på et bestemt dataelement. Disse mappings er vanligvis ledsaget av hurtigmekanismer for å maksimere ytelsen.
    1. Kolonne familie butikker ble opprettet for å lagre og behandle svært store mengder data fordelt over mange maskiner. Det er fortsatt nøkler, men de peker på flere kolonner. I tilfelle av BigTable (Googles kolonnefamilie NoSQL-modell), er rader identifisert med en radnøkkel med dataene sortert og lagret av denne nøkkelen. Kolonnene er arrangert av kolonnefamilie.
  2. Dokumentdatabases ble inspirert av Lotus Notes og ligner på nøkkelverdier. Modellen er i utgangspunktet versjonsdokumenter som er samlinger av andre nøkkelverdige samlinger. De halvstrukturerte dokumentene lagres i formater som JSON.
  3. Grafdatabases er bygget med noder, relasjoner mellom notater og egenskapene til noder. I stedet for tabeller med rader og kolonner og den stive strukturen i SQL, brukes en fleksibel grafmodell som kan skalere over mange maskiner.

Store NoSQL-spillere

De største aktørene i NoSQL har oppstått hovedsakelig på grunn av organisasjonene som har vedtatt dem. Noen av de største NoSQL-teknologiene inkluderer:

  • Dynamo: Dynamo ble opprettet av Amazon.com og er den mest fremtredende nøkkelverdien NoSQL-databasen. Amazon hadde behov for en svært skalerbar distribuert plattform for deres e-handelsvirksomhet, slik at de utviklet Dynamo. Amazon S3 bruker Dynamo som lagringsmekanisme.
  • Cassandra: Cassandra ble åpnet av Facebook og er en kolonneorientert NoSQL-database.
  • Bigtable: BigTable er Googles proprietære kolonneorienterte database. Google tillater bruk av BigTable, men bare for Google App Engine.
  • SimpleDB: SimpleDB er en annen Amazon-database. Brukt til Amazon EC2 og S3, er det en del av Amazon Web Services som tar betalt avgift avhengig av bruk.
  • CouchDB: CouchDB sammen med MongoDB er åpen kildekode dokumentorienterte NoSQL databaser.
  • Neo4J: Neo4j er en åpen kildegrafdatabase.

Spørring NoSQL

Spørsmålet om hvordan å spørre en NoSQL-database er det som de fleste utviklere er interessert i. Tross alt, data lagret i en stor database gjør ikke noen noe bra hvis du ikke kan hente og vise det til sluttbrukere eller webtjenester. NoSQL-databaser gir ikke et høytstående deklarativt søksmål som SQL. I stedet er spørring av disse databasene datamodellspesifikke.

Mange av NoSQL-plattformene tillater RESTful-grensesnitt til dataene. Andre tilbuds-APIer. Det er et par søkeverktøy som er utviklet som forsøk på å spørre flere NoSQL-databaser. Disse verktøyene fungerer vanligvis på en enkelt NoSQL-kategori. Et eksempel er SPARQL. SPARQL er en deklarativ spørrespesifikasjon utviklet for grafdatabaser. Her er et eksempel på et SPARQL-spørring som henter nettadressen til en bestemt blogger (med rett fra IBM):

PREFIX foaf: SELECT? UrlFRA HVOR {? bidragsyter foaf: navn "Jon Foobar".? bidragsyter foaf: weblog? url.}

Fremtiden for NoSQL

Organisasjoner som har massive behov for datalagring ser seriøst ut på NoSQL. Tilsynelatende blir konseptet ikke så mye trekkraft i mindre organisasjoner. I en undersøkelse gjennom Informasjonsuke har 44% av IT-fagfolk ikke hørt om NoSQL. Videre rapporterte bare 1% av respondentene at NoSQL er en del av deres strategiske retning. Tydeligvis har NoSQL sin plass i vår tilkoblede verden, men må fortsette å utvikle seg for å få masseappellen som mange tror det kunne ha.