Video: Prototypen "Kontekst" 2025
NoSQL-datalager opprinnelig abonnerte på begrepet "Bare si Nei til SQL" (å omskrive fra en anti-narkotiske reklamekampanje på 1980-tallet), og de var en reaksjon på de oppfattede begrensningene av (SQL-baserte) relasjonsdatabaser. Det er ikke at disse menneskene hatet SQL, men de var lei av å tvinge firkantede pinner til runde hull ved å løse problemer som relasjonsdatabaser ikke var laget for.
En relasjonsdatabase er et kraftig verktøy, men for enkelte typer data (som nøkkelverdier, eller grafer) og enkelte bruksmønstre (som ekstremt stor skala), er en relasjonsdatabase bare ikke ' t praktisk. Og når det gjelder lagring i store mengder, kan relasjonsdatabasen være dyrt, både når det gjelder databaselisenskostnader og maskinvarekostnader. (Relasjonsdatabaser er utviklet for å fungere med maskinvare fra enterprise-grade.)
Så med NoSQL-bevegelsen utviklet kreative programmører dusinvis av løsninger for ulike typer tøffe datalagrings- og prosessproblemer. Disse NoSQL-databasene gir vanligvis massiv skalerbarhet ved hjelp av clustering, og er ofte designet for å muliggjøre høy gjennomstrømning og lav ventetid.
Navnet NoSQL er noe misvisende fordi mange databaser som passer til kategorien gjør , har SQL-støtte (i stedet for "NoSQL" -støtte). Tenk på navnet i stedet som "Ikke bare SQL. “
NoSQL-tilbudene som er tilgjengelige i dag, kan deles opp i fire forskjellige kategorier, basert på design og formål:
-
Nøkkelverdier: Dette tilbudet gir deg mulighet til å lagre alle typer av data uten å måtte bruke et skjema. Dette er i kontrast til relasjonsdatabaser, hvor du må definere skjemaet (tabellstrukturen) før data blir satt inn. Siden viktige butikker ikke krever et skjema, har du stor fleksibilitet til å lagre data i mange formater.
I en nøkkelverdibutikk består en rad bare av en nøkkel (en identifiserer) og en verdi, som kan være alt fra en heltall til en stor binær datastreng. Mange implementeringer av nøkkelverdier butikker er basert på Amazons Dynamo papir.
-
Kolonnefamilieforretninger: Her har du databaser der kolonner grupperes i kolonnefamilier og lagres sammen på disk.
Strengt tatt er mange av disse databasene ikke kolonneorienterte, fordi de er basert på Googles BigTable-papir, som lagrer data som et flerdimensjonalt sortert kart.
-
Dokumentbutikker: Dette tilbudet er avhengig av samlinger av tilsvarende kodede og formaterte dokumenter for å forbedre effektiviteten.Dokumentbutikker aktiverer individuelle dokumenter i en samling for å bare inkludere en delmengde av felt, slik at bare de dataene som trengs, er lagret. For sparsomme datasett, hvor mange felt ofte ikke er fylt, kan dette oversette til betydelige plassbesparelser.
Derimot tar tomme kolonner i relasjonelle databasetabeller opp plass. Dokumentbutikker gjør det også mulig å bruke skjemafleksibilitet, fordi bare feltene som trengs, er lagret, og nye felt kan legges til. Igjen, i motsetning til relasjonsdatabaser, defineres tabellstrukturer foran før data lagres, og endring av kolonner er en kjedelig oppgave som påvirker hele datasettet.
-
Grafdatabaser: Her har du databaser som lagrer grafstrukturer - representasjoner som viser samlinger av enheter (knekter eller noder) og deres forhold (kanter) med hverandre. Disse strukturene gjør det mulig for grafdatabaser å være svært velegnet til lagring av komplekse strukturer, som for eksempel sammenhengen mellom alle kjente nettsider. (For eksempel er enkelte nettsider noder, og kantene som forbinder dem, er lenker fra en side til en annen.)
Google er selvsagt over grafteknologi, og oppfant en grafbehandlingsmotor som heter Pregel for å drive sin PageRank algoritme. (Og ja, det er et hvitt papir på Pregel.) I Hadoop-fellesskapet er det et Apache-prosjekt kalt Giraph (basert på Pregel-papiret), som er en grafbehandlingsmotor utviklet for å behandle grafer lagret i HDFS.
Dataoppbevaring og behandlingsalternativer tilgjengelig i Hadoop er i mange tilfeller implementeringer av NoSQL-kategoriene som er oppført her. Dette vil hjelpe deg med å bedre vurdere løsninger som er tilgjengelige for deg og se hvordan Hadoop kan utfylle tradisjonelle datalager.
