Standard kolumnfamilj

En standardkolumnfamilj består av en (unik) radnyckel och ett antal kolumner .

Standardkolumnfamiljen är ett NoSQL- objekt som innehåller kolumner med relaterade data . Det är en tuppel (par) som består av ett nyckel–värdepar , där nyckeln mappas till ett värde som är en uppsättning kolumner. I analogi med relationsdatabaser är en standardkolumnfamilj som en "tabell", där varje nyckel-värdepar är en "rad". Varje kolumn är en tuppel ( triplett ) som består av ett kolumnnamn, ett värde och en tidsstämpel . I en relationsdatabastabell skulle dessa data grupperas tillsammans i en tabell med andra icke-relaterade data .

Standardkolumnfamiljer är kolumnbehållare sorterade efter deras namn som kan refereras till och sorteras efter deras radnyckel.

Fördelar

Att komma åt data i ett distribuerat datalager skulle vara dyrt (tidskrävande), om det skulle sparas i form av en tabell. Det skulle också vara ineffektivt att läsa alla kolumnfamiljer som skulle utgöra en rad i en relationstabell och sätta ihop den för att bilda en rad, eftersom data för den är fördelad på ett stort antal noder . Därför kommer användaren endast åt den relaterade information som krävs.

Som ett exempel kan en relationstabell bestå av kolumnerna UID, förnamn, efternamn, födelsedatum, kön, etc. I ett distribuerat datalager skulle samma tabell implementeras genom att skapa kolumnfamiljer för "UID, förnamn, efternamn" , "födelsedatum, kön", etc. Om man bara behöver de män som är födda mellan 1950 och 1960, för en fråga i relationsdatabasen, måste hela tabellen läsas. I ett distribuerat datalager räcker det med att bara komma åt den andra standardkolumnfamiljen, eftersom resten av informationen är irrelevant.

Sortera och fråga

Det finns inget sätt att sortera kolumner, inte heller att fråga en godtycklig fråga i distribuerade datalager . Kolumner sorteras när de läggs till i kolumnfamiljen. Sättet att sortera definieras av ett attribut. Detta görs till exempel av CompareWith- attributet i Apache Cassandra som kan ha följande värden:

  • AsciiType
  • BytesType
  • LexicalUUIDTyp
  • LongType
  • TidUUIDtyp
  • UTF8-typ

Det är också möjligt att lägga till några användardefinierade sorteringsattribut. Att använda detta sätt att sortera gör processen extremt snabb.

Standardkolumnfamiljer kontra rader

Standardkolumnfamiljer har en schemalös natur så att var och en av deras "rader" kan innehålla olika antal kolumner, och även olika kolumnnamn kan finnas i varje rad. Så de är ett helt annat koncept än raderna i relationsdatabashanteringssystem (RDBMS) . Detta är en av anledningarna till att konceptet inte är trivialt för en erfaren RDBMS-expert.

Exempel

I JSON-liknande notation skulle en kolumnfamiljedefinition se ut så här:

  
       
       
         
 Användarprofil  =  {  Cassandra  =  {  emailAddress  :  "[email protected]"  ,  ålder  :  20  },  TerryCho  =  {  emailAddress  :  "[email protected]"  ,  kön  :  "man"  },  Cath  =  {  emailAddress  :  "cath @apache.org"  ,  ålder  :  20  ,  kön  :  "female"  ,  adress  :  "Seoul"  },  } 

där "Cassandra", "TerryCho", "Cath" motsvarar radnycklar; och "emailAddress", "ålder", "kön", "adress" motsvarar kolumnnamnen.

Se även

externa länkar