Apache Cassandra představuje open-source distribuovanou databázi typu NoSQL.
Co je to Apache Cassandra?
Před svým zveřejněním jako open-source projekt byla Cassandra původně vyvíjena v rámci Facebooku (nyní Meta). Cílem bylo sjednotit funkce Amazon DynamoDB a Bigtable od Google.
Díky své vysoké dostupnosti a škálovatelnosti je hojně využívána společnostmi jako Netflix, Uber a Facebook.
Tento článek se zaměří na strukturu, fungování a různé funkce a výhody, které přináší začlenění Apache Cassandra do vašeho technologického ekosystému.
Co je NoSQL?
Apache Cassandra patří do skupiny databází označovaných jako NoSQL. Na rozdíl od relačních databází (SQL) nepoužívají NoSQL databáze pro práci s daty jazyk SQL ani koncept relací.
To přináší výhody v jednoduchosti používání a flexibilitě, avšak na úkor schopnosti provádět složitější dotazy. Nicméně, jak NoSQL, tak SQL databáze mají svá specifická uplatnění, ve kterých excelují.
Jak Apache Cassandra funguje?
Cassandra využívá Cassandra Query Language (CQL), jehož syntaxe se výrazně podobá Structured Query Language (SQL) používanému v relačních databázích.
Nicméně, CQL nepodporuje určité funkce, jako je například spojování tabulek, které jsou typické pro většinu relačních databází. Důvodem je, že Cassandra je databáze orientovaná na dotazy. To znamená, že její struktura je navržena s ohledem na dotazy, které budou prováděny.
Následně jsou vytvářeny tabulky, které obsahují dostatek dat pro každý dotaz, aniž by bylo nutné spojovat více tabulek. To zajišťuje vysokou rychlost. Cassandru lze instalovat na všechny hlavní operační systémy.
Architektura Cassandra
Na nejzákladnější úrovni se Cassandra skládá z uzlů. Data jsou uložena v těchto uzlech a všechny záznamy se stejným klíčem jsou uloženy ve stejném uzlu. Díky tomu je provádění dotazů rychlejší než v SQL databázích, kde se data mohou nacházet v různých tabulkách a na různých serverech.
Zdroj: cassandra.apache.org
Data jsou replikována mezi uzly, čímž je zajištěna vysoká dostupnost. Míra replikace je definována tvůrcem databáze. Skupina uzlů, které uchovávají všechna data v databázi, se nazývá datové centrum.
Skupina datových center tvoří cluster. Existence více datových center zajišťuje trvalou dostupnost dat i v případě neočekávaného výpadku jednoho z datových center.
Vlastnosti Apache Cassandra
Mezi klíčové a odlišující faktory, které odlišují Apache Cassandru od ostatních řešení na trhu, patří:
#1. Open-Source
Apache Cassandra je zdarma a s otevřeným zdrojovým kódem. To znamená, že její zdrojový kód je veřejně dostupný, což snižuje pravděpodobnost výskytu skrytých chyb a zranitelností.
To je důležité zejména proto, že uživatelská i obchodní data představují cenný majetek, který vyžaduje náležitou ochranu.
#2. Používá architekturu širokých sloupců
Na rozdíl od většiny databází, které ukládají data do souborů v závislosti na tabulce, ukládá Apache Cassandra data podle sloupců.
To urychluje vyhledávání konkrétní hodnoty ve sloupci, jelikož není nutné prohledávat celý řádek. Díky tomu je vyhledávání dat v Cassandře stejně rychlé jako použití indexů v jiných databázích.
#3. Distribuovaná
Apache Cassandra je distribuovaná, což znamená, že neběží na jediném serveru. To přispívá k vysoké dostupnosti dat, protože jsou replikována napříč různými uzly a datovými centry. Umožňuje také rychlejší přístup k datům, pokud jsou datová centra geograficky blíže k uživateli.
#4. Návrh orientovaný na dotazy
V tradičním návrhu databáze se tabulky modelují kolem entit. Prostřednictvím normalizace se poté v databázích vytváří vazby a vztahy mezi těmito entitami.
Často při dotazování se vztahy dotýkají více tabulek. Pokud jsou tyto tabulky uložené na různých serverech, přístup k datům může být pomalý.
V Cassandře však struktura tabulek vychází z dotazů, které plánujete provádět. Všechna data potřebná pro provedení konkrétního dotazu jsou pak uložena v jedné tabulce.
Výhody Apache Cassandra
- Je zdarma: Samotný systém pro správu databází je volně dostupný ke stažení z oficiálních stránek Apache Cassandra. Nicméně, serverová infrastruktura, na které databáze běží, zdarma není.
- Vysoká dostupnost: Apache Cassandra je navržena s důrazem na odolnost. Její architektura zahrnuje dostatečnou redundanci, aby zůstala funkční i v případě výpadku některých částí databáze.
- Škálovatelnost: Do databáze lze snadno přidávat další uzly a rozšiřovat úložnou kapacitu s minimálními či žádnými prostoji. To z ní činí ideální řešení pro vytváření velkoobjemových aplikací.
- Rychlost: Díky architektuře širokých sloupců a návrhu orientovanému na dotazy dokáže Apache Cassandra pracovat rychleji v porovnání s jinými systémy pro správu databází.
Nyní se podíváme na některé z nejlepších vzdělávacích zdrojů pro pochopení Apache Cassandra.
Vzdělávací zdroje
#1. Apache Cassandra: Vše, co potřebujete vědět
Tento kurz na platformě Udemy vás provede lekcemi pro začátečníky i profesionály. Pokrývá širokou škálu témat od teoretického základu Cassandry až po Cassandra Query Language.
Jediným požadavkem pro tento kurz je základní znalost databází a systémů Linux.
#2. Staňte se certifikovaným vývojářem Cassandra: praktické zkoušky
Tento certifikační kurz obsahuje dvě zkoušky, které vám pomohou připravit se a procvičit si certifikační zkoušku Apache Cassandra Developer Certification na Datastax Academy.
Každá zkouška trvá devadesát minut a pokrývá témata z architektury, modelování a Cassandra Query Language. Kurz je primárně určen pro vývojáře, kteří již Cassandru znají a chtějí získat profesionální certifikaci.
#3. Apache Cassandra Essentials
Tato kniha pro vývojáře vás naučí, jak začít s Apache Cassandra. Učí čtenáře, jak instalovat Cassandru a nastavovat databázový cluster. Dále se seznámíte s Cassandra Query Language pro interakci s vaší databází.
Naučíte se také používat nástroje pro monitorování clusteru a ladění dotazů. Je ideální pro ty, kteří s Cassandrou ještě nepracovali a chtějí začít.
#4. Zvládnutí Apache Cassandry
Tato kniha je určena pro čtenáře s určitými předchozími znalostmi o Cassandře. Učí, jak psát efektivnější programy a konfigurovat Cassandru pro dosažení vyššího výkonu.
Kromě toho ukazuje, jak integrovat Apache Cassandru s Apache Spark pro budování systémů pro analýzu dat.
Závěrečná slova
Apache Cassandra představuje robustní volbu pro databáze ve velkých distribuovaných systémech. Její spolehlivost, škálovatelnost a rychlost z ní dělají oblíbenou volbu mezi technologickými giganty.
Osvojení si dovedností spojených s touto databází vám umožní vytvářet softwarové systémy, které spolehlivě obslouží miliony uživatelů.
Pro další zdokonalování můžete prozkoumat nástroje pro monitorování Apache Cassandra a sledovat tak výkon vaší databáze.