Introduktion till Column Family med Cassandra

Den här bloggen belyser vikten av kolumnfamilj med Cassandra

Kolumnfamilj

En kolumnfamilj liknar en tabell i RDBMS eller Relational Database Management System och är en logisk uppdelning som associerar liknande data. I grund och botten tenderar du att lagra någon form av data som är av liknande ämnen i liknande data.

Till exempel lagras en orderinformation i en enda kolumnfamilj så att du kan ha ett order-ID som en radnyckel såväl som olika kolumner som den typ av produkt som togs som en del av den ordern som ska lagras i den specifika orderfamiljen . För att ge vissa exempel består en användarkolumnfamilj av ett användar-ID som nyckel. Därför är det fritt att välja ett ID och kolumnerna kan vara 'namn = Kunal'. Och kolumnvärdena är Kunal och Bangalore. Det finns en andra kolumnfamilj som heter Cricketer-kolumnfamiljen som möjliggör lagring av cricketerstatistik i en kolumnfamilj. Till exempel kan du ha Sachin Tendulkar i en kolumn och antal århundraden i en annan. Därför kan det finnas valfritt antal kolumner.



Typer av kolumner

Kolumnfamiljen är inget annat än ett bord som är analogt med ett bord i en RDBMS-värld. Det finns vissa typer av det, nämligen

Statisk kolumn Familj - Statisk kolumnfamilj är där namn och datatyper definieras. Så när kolumnfamiljen skapas är alternativet att namnge kolumnnamnet och datatyperna tillgängligt. Det kallas statiskt eftersom kolumnerna förblir statiska och antalet tillgängliga kolumner kommer att vara känt.

sortera bibliotek c ++

Dynamisk kolumnfamilj - En dynamisk kolumnfamilj definierar däremot inte kolumnnamnen i förväg och Cassandras förmåga att använda godtyckliga applikations- och kolumnnamn för att lagra data är tillgänglig. Så dynamisk hjälper på ett sätt, för i ostrukturerad data, oftast, hjälper dynamisk kolumnfamilj att ta hand om nya fält som kan ha lagts till senare.

Om du har en statisk kolumnfamilj och vill lägga till en dynamisk kolumnfamilj i din kod när du laddar in data kan den läggas till i en statisk kolumnfamilj när som helst. Cassandra ger friheten att välja kolumnnamn.

Skillnad med RDBMS

Cassandra-kolonnfamiljen är schemafri och är mycket skalbar. Kolumnfamiljen Cassandra har två attribut - Namn och komparator. Så när du har en Cassandra-kolumnfamilj blir det obligatoriskt att ge det ett namn och Comparator är i grunden en datatyp för kolumnnamn. Om du inte anger komparatorn antar det att det är en standardkomparator.

Cassandra har också en kolumn med superkolonnfamiljer. Den använder en superkolumn internt. Det är en logisk gruppering och en annan gruppering av kolumner. Så i en användarkolumnfamilj kan du ha två superkolumner där vi kan ha användarnas personliga information och produktinformation.

Kolumner

En kolumn är den minsta ökningen av data i Cassandra. Den har tre komponenter:

  • namn
  • Värde
  • Tidsstämpel - Används i konfliktlösning och tidsstämpeln kan inte redigeras. Det är en intern mekanism för att se när denna data eller kolumn uppdaterades.
  • Utgångna kolumner - Ett utgångsdatum kan ges till en kolumn för att veta att kolumnen går ut.
  • Counter kolumner - Counter-kolumner är inget annat än att behålla kolumnerna så att du kan öka och minska dessa counter-kolumner.

Superkolumner

Super Columns är gruppering av alla kolumner helt beroende på ett affärsbehov och logisk gruppering. Det lägger till ytterligare en nivå av kapsling till den vanliga kolumnfamiljstrukturen. De består av en superkolonnfamiljstruktur.

Det primära fallet för superkolumner är att denormalisera flera rader från andra kolumnfamiljer till en enda rad som möjliggör materialiserad hämtning av visningsdata.

Använd fall

Begränsningar av superkolumner

En begränsning är att alla underkolumner i en superkolumnfamilj måste avserialiseras för att kunna läsa en enda underkolumnfamilj. En annan begränsning är att vi inte kan skapa sekundära index på underkolumnerna i en superkolumn.

Kolumndatatyper

Kolumndatatyper

I bilden ovan finns det olika datatyper. Datatypen för ett kolumnvärde kallas en validator. Och komparatorn är datatypen för en kolumn. Namnet och adressen blir ett kolumnnamn. Så du kan ha ett datum för kolumnnamn. Du kan också ha tidsseriedata genom att ha datumet som ett kolumnnamn.

Rader

Det kan finnas breda rader och flera rader. Det kan finnas miljoner kolumner och rader tillgängliga.

Smala rader har ett litet antal kolumner med möjlighet att bara ha begränsade rader.

Sammansatt nyckel

Den består av ett eller flera primära nyckelfält. Antag att namnet på en stad är satt som en radnyckel, det kanske en stad som heter i två olika stater, så du måste nämna vilken stad och vilken stat. Detta betyder helt enkelt att nyckeln måste anges. I stället för att ha en enkel kolumnnyckel av en typ kan du sammanställa flera värden som även kallas komponenter av flera typer för att bilda en unik kolumnyckel.

Har du en fråga till oss? Nämn dem i kommentarfältet så återkommer vi till dig.

Relaterade inlägg:

Introduktion till snitches i Cassandra