Video: Java - write a JSON file 2025
Kolonneforretninger i NoSQL er ens ved første udseende til traditionelle relationelle DBMS. Begreberne rækker og kolonner er stadig der. Du definerer også kolonnefamilier, før du indlæser data i databasen, hvilket betyder, at strukturen af data skal være kendt på forhånd.
Kolonneforretninger organiserer imidlertid data anderledes end relationelle databaser gør. I stedet for at lagre data i en række for hurtig adgang, organiseres data til hurtige kolonneoperationer. Denne kolonnecentriske visning gør kolonneforretninger ideelle til at køre aggregatfunktioner eller til at kigge op poster, der matcher flere kolonner.
Samlede funktioner er datakombinationer eller analysefunktioner. De kan være så enkle som at tælle antallet af resultater, summere dem eller beregne deres gennemsnitlige gennemsnit. De kunne imidlertid være mere komplekse, men for eksempel at returnere en kompleks værdi, der beskriver et overordnet tidsrum.
Kolonneforretninger omtales også undertiden som Big Table eller Big Table kloner, der afspejler deres fælles forfader, Googles Bigtable.
Måske er nøgleforskellen mellem kolonneforretninger og en traditionel RDBMS, at i en kolonneforretning kræver hver post (tænk række i en RDBMS) ikke en enkelt værdi pr. kolonne. I stedet er det muligt at model kolonnefamilier. En enkelt post kan bestå af et ID-felt, en kolonnefamilie for "kunde" -oplysninger og en anden kolonnefamilie for "ordreelement" -information.
Hver af disse kolonnefamilier består af flere felter. En af disse kolonnefamilier kan have flere "rækker" i sig selv. Ordreelementoplysninger har for eksempel flere rækker - en for hver linjepost. Disse rækker indeholder data såsom vare-ID, mængde og enhedspris.
En vigtig fordel ved en kolonneforretning over en RDBMS er, at kolonneforretninger ikke kræver felter, der altid skal være til stede og ikke kræver en blank polstringsnulværdi som en RDBMS gør. Denne funktion forhindrer det sparsomme data problem, bevarelse af diskplads. Et eksempel på et variabelt og sparsomt datasæt er vist her.
Det store ved kolonneforretninger er, at du kan hente alle relaterede oplysninger ved hjælp af et enkelt post-ID, i stedet for at bruge det komplekse strukturerede forespørgselssprog (SQL), deltage som i en RDBMS. Det kræver dog lidt forudgående modellering og dataanalyse.
I det viste eksempel kan du hente alle ordreoplysninger ved at vælge en enkelt kolonnebutikrække, hvilket betyder, at udvikleren ikke behøver at være opmærksom på den nøjagtige komplekse sammenføjningssyntax for en forespørgsel i en kolonneforretning, i modsætning til de ville skal bruge komplekse SQL-forbindelser i en RDBMS.
Så for komplekse og variable relationelle datastrukturer kan en kolonneforretning være mere effektiv i lagring og mindre fejl tilbøjelig til udvikling end dens RDBMS forfædre.
Bemærk, at i hver kolonnefamilie -post er hvert varens ID repræsenteret i nøglen, og værdien er den bestilte mængde. Denne opsætning muliggør hurtig opsigelse af alle ordrer, der indeholder dette varenummer.
Hvis du kender de involverede datafelter foran, og du skal hurtigt hente relaterede data sammen som en enkelt post, så overvej en kolonneforretning.