Video: Java - write a JSON file 2025
Kolonneforretninger i NoSQL er like ved første utseende til tradisjonelle relasjonelle DBMS. Begrepene rader og kolonner er fremdeles der. Du definerer også kolonnefamilier før du laster inn data i databasen, noe som betyr at strukturen av data må være kjent på forhånd.
Kolonneforretninger organiserer imidlertid data annerledes enn relasjonsdatabaser gjør. I stedet for å lagre data på rad for rask tilgang, er data organisert for rask kolonneoperasjoner. Denne kolonne-sentriske visningen gjør kolonneforretninger ideelle for å kjøre aggregatfunksjoner eller for å se opp poster som samsvarer med flere kolonner.
Samlede funksjoner er datakombinasjoner eller analysefunksjoner. De kan være så enkle som å telle antall resultater, summere dem eller beregne gjennomsnittlig gjennomsnitt. De kan imidlertid være mer komplekse, men for eksempel å returnere en kompleks verdi som beskriver et overordnet tidsrom.
Kolonneforretninger blir også noen ganger referert til som store bord eller store bordkloner, noe som gjenspeiler deres vanlige forfader, Googles Bigtable.
Kanskje nøkkelforskjellen mellom kolonneforretninger og en tradisjonell RDBMS er at i en kolonnebutikk, krever hver post (tenk rad i en RDBMS) ikke en enkelt verdi per kolonne. I stedet er det mulig å modellere kolonnefamilier. En enkelt post kan bestå av et ID-felt, en kolonnefamilie for "kunde" -informasjon, og en annen kolonnefamilie for "bestillingsvare" -informasjon.
Hver av disse kolonnefamiliene består av flere felt. En av disse kolonnefamiliene kan ha flere "rader" i sin egen rett. Bestillingsinformasjon, for eksempel, har flere rader - en for hvert ordrelinje. Disse radene vil inneholde data som vare-ID, kvantitet og enhetspris.
En viktig fordel ved en kolonnebutikk over en RDBMS er at kolonneforretninger ikke krever felt for alltid å være til stede og ikke krever en nullpolstrings nullverdi som en RDBMS gjør. Denne funksjonen forhindrer det sparsomme dataproblemet, og beholder diskplass. Et eksempel på et variabelt og sparsomt datasett er vist her.
Det flotte med kolonneforretninger er at du kan hente all relatert informasjon ved hjelp av en enkelt post-ID, i stedet for å bruke det komplekse strukturerte spørresprog (SQL), som i en RDBMS. Å gjøre det krever imidlertid litt forhåndsmodellering og dataanalyse, skjønt.
I det viste eksemplet kan du hente all bestillingsinformasjon ved å velge en enkelt kolonnebutikkrad, noe som betyr at utvikleren ikke trenger å være oppmerksom på den nøyaktige komplekse sammenleggingssyntaxen for en spørring i en kolonnekjøp, i motsetning til at de ville må bruke komplekse SQL-tilkoblinger i en RDBMS.
Så, for komplekse og variable relasjonelle datastrukturer, kan en kolonnebutikk være mer effektiv i lagring og mindre feilproblemer i utviklingen enn sine RDBMS-forfedre.
Merk at i hver element kolonnefamilie er hvert elements ID vist innenfor nøkkelen, og verdien er mengden bestilt. Dette oppsettet gir rask oppslag av alle bestillinger som inneholder denne varen ID.
Hvis du kjenner de datafeltene som er involvert foran, og trenger å raskt hente relatert data sammen som en enkelt post, vurder deretter en kolonnebutikk.
