Cassandra - model danych

Model danych Cassandry znacznie różni się od tego, co normalnie widzimy w RDBMS. Ten rozdział zawiera omówienie sposobu, w jaki Cassandra przechowuje swoje dane.

Grupa

Baza danych Cassandra jest rozproszona na kilka współpracujących ze sobą maszyn. Najbardziej zewnętrzny pojemnik jest nazywany klastrem. W celu obsługi awarii każdy węzeł zawiera replikę, aw przypadku awarii replika przejmuje kontrolę. Cassandra układa węzły w klastrze, w formacie pierścienia i przypisuje do nich dane.

Przestrzeń klucza

Keyspace to najbardziej zewnętrzny kontener danych w Cassandrze. Podstawowe atrybuty Keyspace w Cassandrze to -

  • Replication factor - Jest to liczba komputerów w klastrze, które otrzymają kopie tych samych danych.

  • Replica placement strategy- To nic innego jak strategia umieszczania replik w ringu. Mamy strategie takie jaksimple strategy (strategia zorientowana na szafy), old network topology strategy (strategia uwzględniająca stelaż) oraz network topology strategy (strategia współdzielona w centrum danych).

  • Column families- Przestrzeń klucza to kontener na listę jednej lub więcej rodzin kolumn. Z kolei rodzina kolumn jest kontenerem zbioru wierszy. Każdy wiersz zawiera uporządkowane kolumny. Rodziny kolumn reprezentują strukturę danych. Każda przestrzeń kluczowa ma co najmniej jedną, a często wiele rodzin kolumn.

Składnia tworzenia przestrzeni kluczy jest następująca -

CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};

Poniższa ilustracja przedstawia schematyczny widok obszaru kluczy.

Rodzina kolumn

Rodzina kolumn jest kontenerem dla uporządkowanej kolekcji wierszy. Z kolei każdy wiersz jest uporządkowanym zbiorem kolumn. W poniższej tabeli wymieniono punkty, które odróżniają rodzinę kolumn od tabeli relacyjnych baz danych.

Tabela relacyjna Cassandra column Rodzina
Schemat w modelu relacyjnym został naprawiony. Po zdefiniowaniu określonych kolumn do tabeli, podczas wstawiania danych, w każdym wierszu wszystkie kolumny muszą być wypełnione co najmniej wartością null. W Cassandrze, mimo że rodziny kolumn są zdefiniowane, kolumny nie. W dowolnym momencie możesz dowolnie dodać dowolną kolumnę do dowolnej rodziny kolumn.
Tabele relacyjne definiują tylko kolumny, a użytkownik wypełnia tabelę wartościami. W Cassandrze tabela zawiera kolumny lub może być zdefiniowana jako super rodzina kolumn.

Rodzina kolumn Cassandra ma następujące atrybuty -

  • keys_cached - Reprezentuje liczbę lokalizacji do przechowywania w pamięci podręcznej na SSTable.

  • rows_cached - Reprezentuje liczbę wierszy, których cała zawartość będzie przechowywana w pamięci.

  • preload_row_cache - Określa, czy chcesz wstępnie wypełnić pamięć podręczną wierszy.

Note − W przeciwieństwie do tabel relacyjnych, w których schemat rodziny kolumn nie jest ustalony, Cassandra nie wymusza na poszczególnych wierszach wszystkich kolumn.

Poniższy rysunek przedstawia przykład rodziny kolumn Cassandra.

Kolumna

Kolumna to podstawowa struktura danych Cassandry z trzema wartościami, a mianowicie nazwą klucza lub kolumny, wartością i znacznikiem czasu. Poniżej podano strukturę kolumny.

SuperColumn

Superkolumna to specjalna kolumna, dlatego też jest parą klucz-wartość. Ale super kolumna przechowuje mapę kolumn podrzędnych.

Generalnie rodziny kolumn są przechowywane na dysku w osobnych plikach. Dlatego też, aby zoptymalizować wydajność, ważne jest, aby przechowywać kolumny, które prawdopodobnie będziesz wyszukiwać razem w tej samej rodzinie kolumn, a superkolumna może być tutaj pomocna. Poniżej przedstawiono strukturę superkolumny.

Modele danych Cassandry i RDBMS

W poniższej tabeli wymieniono punkty, które odróżniają model danych Cassandry od modelu RDBMS.

RDBMS Cassandra
RDBMS obsługuje dane strukturalne. Cassandra ma do czynienia z nieustrukturyzowanymi danymi.
Ma ustalony schemat. Cassandra ma elastyczny schemat.
W RDBMS tabela jest tablicą tablic. (ROW x COLUMN) W Cassandrze tabela to lista „zagnieżdżonych par klucz-wartość”. (Klucz ROW x COLUMN x wartość COLUMN)
Baza danych to najbardziej zewnętrzny kontener zawierający dane odpowiadające aplikacji. Przestrzeń klucza to najbardziej zewnętrzny kontener zawierający dane odpowiadające aplikacji.
Tabele to jednostki bazy danych. Tabele lub rodziny kolumn są elementami przestrzeni kluczowej.
Wiersz to pojedynczy rekord w RDBMS. Wiersz jest jednostką replikacji w Cassandrze.
Kolumna reprezentuje atrybuty relacji. Kolumna to jednostka magazynowa w Cassandrze.
RDBMS obsługuje koncepcje kluczy obcych, złączeń. Relacje są reprezentowane za pomocą kolekcji.