Apache Cassandra je distribuirana baza podataka otvorenog koda, koja pripada NoSQL tipu.
Šta je Apache Cassandra?
Pre nego što je postala open-source, Apache Cassandra je prvobitno osmišljena u Facebook-u (sada Meta) sa ciljem da spoji karakteristike Amazonovog DynamoDB-a i Google-ovog Bigtable-a.
Zahvaljujući svojoj visokoj dostupnosti i skalabilnosti, ovu bazu podataka koriste brojne kompanije, uključujući Netflix, Uber i Facebook.
Ovaj tekst će detaljno objasniti strukturu, način funkcionisanja, kao i različite karakteristike i prednosti upotrebe Apache Cassandra u vašem tehnološkom okruženju.
Šta je NoSQL?
Apache Cassandra spada u kategoriju baza podataka poznatih kao NoSQL. Za razliku od relacionih ili SQL baza podataka, NoSQL baze ne koriste SQL jezik ili relacije na isti način kao SQL baze.
Ovakav pristup donosi prednosti u pogledu jednostavnosti upotrebe i fleksibilnosti, ali se žrtvuje mogućnost izvršavanja naprednijih upita. Ipak, i NoSQL i SQL baze podataka imaju svoje specifične prednosti i primenu.
Kako funkcioniše Apache Cassandra?
Cassandra koristi Cassandra Query Language (CQL), koji je sintaksno vrlo sličan Structured Query Language (SQL) koji se koristi u relacionim bazama podataka.
Međutim, ne podržava određene funkcije, kao što su spajanja (JOIN), koje su česte u većini relacionih baza podataka. Razlog je taj što je Cassandra baza podataka koja se prvenstveno fokusira na upite. To znači da je dizajnirana na osnovu upita koji će se izvršavati.
Zatim se kreiraju tabele kako bi se obezbedili svi potrebni podaci za svaki upit, bez potrebe za spajanjem više tabela. Ovo rezultira bržim radom. Cassandra se može instalirati na svim glavnim operativnim sistemima.
Arhitektura Cassandra-e
U osnovi, Cassandra se sastoji od čvorova (nodes). Podaci se čuvaju u čvorovima, a svi zapisi sa istim ključem se nalaze u istom čvoru. Ovo ubrzava izvršavanje upita u poređenju sa SQL bazama podataka, gde se više tabela može nalaziti na različitim mašinama.
Izvor: cassandra.apache.org
Podaci se repliciraju između čvorova radi visoke dostupnosti, a replikacija se reguliše faktorom replikacije koji određuje kreator baze podataka. Grupa čvorova koji čuvaju sve podatke u bazi naziva se data centar.
Više data centara formiraju klaster. Postojanje više data centara garantuje dostupnost podataka čak i u slučaju neočekivanog pada jednog od centara.
Karakteristike Apache Cassandra-e
Među ključnim faktorima koji razlikuju Apache Cassandra od drugih opcija na tržištu su:
#1. Otvoren kod
Apache Cassandra je besplatna i open-source. To znači da je izvorni kod dostupan online, što smanjuje mogućnost postojanja grešaka i propusta koji već nisu otkriveni i ispravljeni.
Ovo je veoma bitno, jer su korisnički i poslovni podaci dragocena imovina koju treba zaštititi.
#2. Arhitektura širokih kolona
Za razliku od većine baza podataka koje čuvaju podatke u datotekama, zavisno od tabele u kojoj se podaci nalaze, Apache Cassandra skladišti podatke po kolonama.
Ovo olakšava pretragu vrednosti u koloni jer nije potrebno pretraživati ceo red. Zahvaljujući tome, pretraga podataka u Cassandri je brza kao korišćenje indeksa u drugim bazama podataka.
#3. Distribuirana
Apache Cassandra je distribuirana, što znači da ne radi na jednoj mašini. Ovo garantuje visoku dostupnost podataka jer se oni repliciraju na različitim čvorovima i data centrima. Takođe, pristup podacima je brži kada su data centri geografski bliži korisniku.
#4. Dizajn fokusiran na upite
U tradicionalnom dizajnu baze podataka, tabele se modeluju oko entiteta. Kroz normalizaciju, uspostavljaju se relacije između entiteta unutar baze.
Često, prilikom postavljanja upita, relacije obuhvataju više tabela. Ako se te tabele nalaze na različitim mašinama, pristup podacima može biti spor.
Međutim, sa Cassandrom, tabele se kreiraju na osnovu upita koji se planiraju izvršiti. Svi podaci potrebni za izvršenje određenog upita se čuvaju u jednoj tabeli.
Prednosti Apache Cassandra-e
- Besplatna je: Sam sistem za upravljanje bazom podataka je besplatan i može se preuzeti sa zvaničnog sajta Apache Cassandra. Međutim, serverska infrastruktura na kojoj se baza podataka pokreće, naravno, nije besplatna.
- Visoka dostupnost: Apache Cassandra je dizajnirana imajući u vidu otpornost na greške. Ima dovoljno redundantnosti da ostane funkcionalna čak i ako pojedini delovi baze podataka prestanu da rade.
- Skalabilnost: U bazu podataka se mogu dodavati novi čvorovi, a kapacitet skladištenja se može proširiti uz minimalne ili nikakve prekide u radu. Ovo je idealno za izgradnju aplikacija velikog obima.
- Brzina: Zahvaljujući arhitekturi širokih kolona i dizajnu koji se fokusira na upite, Apache Cassandra može raditi brže od drugih sistema za upravljanje bazama podataka.
U nastavku teksta ćemo razmotriti neke od najboljih resursa za učenje, koji vam mogu pomoći da bolje razumete Apache Cassandra.
Resursi za učenje
#1. Apache Cassandra: Sve što treba da znate
Ovaj Udemy kurs o Apache Cassandri vas vodi od početnih do naprednih lekcija, pokrivajući teme od teoretskog pregleda Cassandre do Cassandra Query Language-a.
Jedini preduslov za ovaj kurs je poznavanje baza podataka uopšte i Linux sistema.
#2. Postanite sertifikovani Cassandra programer: Praksa za ispite
Ovaj kurs za sertifikat uključuje dva ispita koji vam pomažu da se pripremite i vežbate za ispit za sertifikaciju programera Apache Cassandra Akademije DataStax.
Svaki ispit traje devedeset minuta i pokriva teme iz arhitekture, modeliranja i Cassandra Query Language-a. Idealan je za programere koji već poznaju Cassandru, ali žele da steknu profesionalne sertifikate.
#3. Apache Cassandra Essentials
Ova knjiga za programere vas uči kako da počnete da koristite Apache Cassandru. Uči čitaoce kako da instaliraju Cassandru i postave klaster baze podataka. Zatim ćete naučiti Cassandra Query Language za interakciju sa bazom podataka.
Takođe, naučićete o alatima koje možete koristiti za nadgledanje klastera i otklanjanje grešaka u upitima. Idealna je za one koji ranije nisu radili sa Cassandrom i žele da počnu.
#4. Ovladavanje Apache Cassandrom
Ova knjiga je namenjena onima koji već imaju neko prethodno znanje o Cassandri, uči kako pisati efikasnije Cassandra programe i kako konfigurisati Cassandru za efikasniji rad.
Pored toga, uči se kako da se integriše Apache Cassandra sa Apache Sparkom radi izgradnje sistema za analizu podataka.
Završne reči
Apache Cassandra je moćan izbor za bazu podataka u velikim, distribuiranim sistemima. Njena pouzdanost, skalabilnost i brzina je čine omiljenom opcijom među tehnološkim gigantima.
Učenje i ovladavanje ovom bazom podataka će vas opremiti veštinama za izgradnju softverskih sistema koji pouzdano služe milionima korisnika.
Takođe, možete pogledati alate za praćenje Apache Cassandra kako biste pratili performanse baze podataka.