Cassandra - Wprowadzenie

Apache Cassandra to wysoce skalowalna, wydajna rozproszona baza danych zaprojektowana do obsługi dużych ilości danych na wielu serwerach towarowych, zapewniająca wysoką dostępność bez pojedynczego punktu awarii. Jest to rodzaj bazy danych NoSQL. Najpierw zrozumiemy, co robi baza danych NoSQL.

NoSQLDatabase

Baza danych NoSQL (czasami nazywana nie tylko SQL) to baza danych, która zapewnia mechanizm przechowywania i pobierania danych innych niż relacje tabelaryczne używane w relacyjnych bazach danych. Te bazy danych są wolne od schematów, obsługują łatwą replikację, mają prosty interfejs API, ostatecznie są spójne i mogą obsługiwać ogromne ilości danych.

Podstawowym celem bazy danych NoSQL jest posiadanie

  • prostota konstrukcji,
  • skalowanie poziome i
  • dokładniejsza kontrola dostępności.

Bazy danych NoSql używają innych struktur danych niż relacyjne bazy danych. Przyspiesza niektóre operacje w NoSQL. Przydatność danej bazy danych NoSQL zależy od problemu, który ma rozwiązać.

NoSQL a relacyjna baza danych

W poniższej tabeli wymieniono punkty, które odróżniają relacyjną bazę danych od bazy danych NoSQL.

Relacyjna baza danych Baza danych NoSql
Obsługuje zaawansowany język zapytań. Obsługuje bardzo prosty język zapytań.
Ma ustalony schemat. Brak ustalonego schematu.
Podąża za kwasem (atomowość, spójność, izolacja i trwałość). To jest tylko „ostatecznie spójne”.
Obsługuje transakcje. Nie obsługuje transakcji.

Oprócz Cassandry mamy następujące bazy danych NoSQL, które są dość popularne -

  • Apache HBase- HBase to nierelacyjna, rozproszona baza danych typu open source, wzorowana na BigTable firmy Google, napisana w języku Java. Został opracowany jako część projektu Apache Hadoop i działa na platformie HDFS, zapewniając Hadoop funkcje podobne do BigTable.

  • MongoDB - MongoDB to wieloplatformowy system bazy danych zorientowany na dokumenty, który unika używania tradycyjnej struktury relacyjnej bazy danych opartej na tabelach na rzecz dokumentów typu JSON z dynamicznymi schematami, co ułatwia i przyspiesza integrację danych w niektórych typach aplikacji.

Co to jest Apache Cassandra?

Apache Cassandra to rozproszony i zdecentralizowany / rozproszony system pamięci masowej (baza danych) typu open source do zarządzania bardzo dużymi ilościami ustrukturyzowanych danych rozsianych po całym świecie. Zapewnia wysoką dostępność usług bez pojedynczego punktu awarii.

Poniżej wymienione są niektóre z godnych uwagi punktów Apache Cassandra -

  • Jest skalowalny, odporny na błędy i spójny.

  • Jest to baza danych zorientowana na kolumny.

  • Projekt dystrybucji oparty jest na Dynamo Amazona i jego modelu danych na Google Bigtable.

  • Stworzony na Facebooku, znacznie różni się od systemów zarządzania relacyjnymi bazami danych.

  • Cassandra implementuje model replikacji w stylu Dynamo bez pojedynczego punktu awarii, ale dodaje potężniejszy model danych „rodziny kolumn”.

  • Cassandra jest używana przez niektóre z największych firm, takich jak Facebook, Twitter, Cisco, Rackspace, ebay, Twitter, Netflix i nie tylko.

Funkcje Cassandry

Cassandra stała się tak popularna ze względu na wyjątkowe cechy techniczne. Poniżej podano niektóre funkcje Cassandry:

  • Elastic scalability- Cassandra jest wysoce skalowalna; pozwala na dodanie większej ilości sprzętu, aby pomieścić więcej klientów i więcej danych zgodnie z wymaganiami.

  • Always on architecture - Cassandra nie ma pojedynczego punktu awarii i jest stale dostępna dla krytycznych aplikacji biznesowych, których nie stać na awarię.

  • Fast linear-scale performance- Cassandra jest skalowalna liniowo, co oznacza, że ​​zwiększa przepustowość wraz ze zwiększaniem liczby węzłów w klastrze. Dzięki temu utrzymuje szybki czas reakcji.

  • Flexible data storage- Cassandra obsługuje wszystkie możliwe formaty danych, w tym: ustrukturyzowane, częściowo ustrukturyzowane i nieustrukturyzowane. Może dynamicznie dostosowywać zmiany do struktur danych w zależności od potrzeb.

  • Easy data distribution - Cassandra zapewnia elastyczność dystrybucji danych tam, gdzie jest to potrzebne, poprzez replikację danych w wielu centrach danych.

  • Transaction support - Cassandra obsługuje właściwości, takie jak atomowość, spójność, izolacja i trwałość (ACID).

  • Fast writes- Cassandra została zaprojektowana do działania na tanim sprzęcie. Wykonuje niesamowicie szybkie zapisy i może przechowywać setki terabajtów danych bez poświęcania wydajności odczytu.

Historia Cassandry

  • Cassandra została stworzona na Facebooku do przeszukiwania skrzynki odbiorczej.
  • Został on udostępniony przez Facebooka w lipcu 2008 roku.
  • Cassandra została przyjęta do Apache Incubator w marcu 2009.
  • Został utworzony jako projekt najwyższego poziomu Apache od lutego 2010.