Skip to content

Apache Cassandra

Czym jest?

Apache Cassandra to rozproszona baza danych typu NoSQL, zaprojektowana do przechowywania ogromnych ilości danych na wielu serwerach. Powstała z myślą o sytuacjach, w których jedna maszyna już nie wystarcza, a kluczowa jest ciągła dostępność i odporność na awarie.

Architektura

Cassandra nie ma węzła nadrzędnego (master) - wszystkie węzły w klastrze są równorzędne (architektura peer-to-peer). Dane są automatycznie rozkładane i replikowane między węzłami, więc ta sama informacja istnieje w kilku kopiach na różnych maszynach.

Skalowanie i dostępność

Klaster skaluje się poziomo - gdy potrzebujesz większej pojemności lub wydajności, po prostu dokładasz kolejne węzły, a Cassandra sama rozłoży na nie obciążenie. Stawia przy tym na wysoką dostępność i tolerancję podziału sieci, zgodnie z założeniami modelu, w którym chwilowa niespójność danych jest akceptowalną ceną za to, że system nigdy nie przestaje odpowiadać.

Model danych i zapytania

Dane organizuje się w przestrzenie kluczy (keyspace) i tabele, ale w przeciwieństwie do baz relacyjnych projektuje się je pod konkretne zapytania, a nie pod znormalizowaną strukturę. Do komunikacji służy język CQL (Cassandra Query Language).

Zastosowania

Cassandra sprawdza się tam, gdzie jest dużo zapisów i danych rozproszonych geograficznie - przykładowo logi, dane z urządzeń IoT, historie transakcji czy systemy rekomendacji. Używają jej duże platformy obsługujące miliony użytkowników, którym zależy na tym, by baza działała nieprzerwanie i niezależnie od skali.