Apache Cassandra adalah sebuah sistem manajemen database NoSQL (Non-relational, Not Only SQL) yang terdistribusi dan terdesentralisasi. Lalu apa fungsinya dan bagaimana konfigurasinya?
Dalam artikel ini, kami akan menjelaskan secara detail tentang apa itu Apache Cassandra hingga cara install dan konfigurasinya di server. Simak informasi berikut ini.
Apa itu Apache Cassandra?
Apache Cassandra adalah sebuah sistem manajemen basis data distribusi open-source yang dirancang khusus untuk mengatasi tantangan pengelolaan data besar, terdistribusi, dan berkelanjutan.
Cassandra pertama kali dikembangkan oleh Facebook pada tahun 2008, lalu dirilis sebagai proyek open-source pada tahun yang sama. Segera setelah itu, proyek ini menjadi bagian dari Apache Software Foundation dan berkembang menjadi salah satu sistem basis data NoSQL yang paling populer di dunia.
Sejarah Apache Cassandra
Sejarah Apache Cassandra dimulai pada awal tahun 2000-an ketika dua insinyur, Avinash Lakshman dan Prashant Malik, bekerja di Facebook. Mereka menghadapi tantangan yang semakin meningkat dalam mengelola data besar dan terdistribusi yang berasal dari aktivitas pengguna Facebook yang terus tumbuh pesat.

Sistem basis data relasional tradisional tidak mampu mengatasi skala dan kinerja yang dibutuhkan, sehingga mereka mulai mengembangkan solusi yang sesuai dengan kebutuhan perusahaan.
Pada tahun 2008, Avinash Lakshman dan Prashant Malik merilis Cassandra sebagai proyek open-source pertama kali. Nama “Cassandra” diambil dari nama seorang tokoh mitologi Yunani, Cassandra, yang memiliki kemampuan meramal masa depan.
Pilihan nama ini menggambarkan kemampuan Cassandra dalam mengatasi permasalahan yang timbul dari pertumbuhan data yang sangat cepat dan tidak dapat diprediksi.
Cassandra dirilis dengan tujuan memenuhi kebutuhan skalabilitas dan kinerja Facebook, serta memungkinkan penyimpanan dan pengambilan data yang efisien pada skala yang belum pernah terjadi sebelumnya.
BACA JUGA : Database Server: Pengertian, Fungsi, hingga Cara Kerjanya
Pada tahun yang sama, Facebook merilis Cassandra sebagai proyek open-source, dan Cassandra segera menarik perhatian komunitas pengembang dan organisasi lain yang menghadapi tantangan serupa dalam mengelola data terdistribusi.
Proyek ini kemudian menjadi bagian dari Apache Incubator pada tahun 2009 dan, pada tahun 2010, Cassandra dipromosikan menjadi proyek Apache Top-Level, menandai statusnya sebagai salah satu proyek open-source yang paling penting dan digunakan secara luas di dunia.
Sejak itu, Cassandra terus berkembang dan memperoleh berbagai pembaruan, menjadikannya salah satu sistem basis data NoSQL yang paling populer dan andal dalam mengelola data terdistribusi pada skala besar.
Arsitektur Cassandra
Arsitektur Apache Cassandra adalah salah satu aspek kunci yang memungkinkan sistem basis data ini untuk mengatasi tantangan data besar dan terdistribusi dengan baik. Pada arsitekturnya, Apache Cassandra didasarkan pada sejumlah prinsip desain utama yang memastikan kinerja tinggi, ketersediaan, dan skalabilitas. Berikut adalah komponen dan prinsip utama dalam arsitektur Cassandra:
1. Node
Node adalah unit dasar dalam kluster Cassandra. Setiap node adalah server fisik atau virtual yang menjalankan perangkat lunak Cassandra. Setiap node dalam kluster Cassandra memiliki peran yang setara, dan tidak ada perbedaan hierarki antara node-node tersebut. Ini adalah bagian fundamental dari arsitektur terdesentralisasi Cassandra.
2. Kluster
Kluster adalah kumpulan node yang bekerja bersama-sama untuk menyimpan dan mengelola data. Cassandra dirancang untuk menjadi sistem distribusi, sehingga kluster dapat terdiri dari puluhan, ratusan, atau bahkan ribuan node yang tersebar di beberapa pusat data atau lokasi fisik yang berbeda.
3. Partisi dan Replikasi
Cassandra mendistribusikan data dalam bentuk partisi di seluruh kluster. Setiap partisi adalah unit data yang terdistribusi di antara node-node dalam kluster. Cassandra secara otomatis menggandakan data (replication) di beberapa node untuk menjaga ketersediaan dan toleransi terhadap kegagalan. Ini berarti jika satu node gagal, data masih dapat diakses dari node-node lainnya yang memiliki salinan data yang sama.
4. Ring Topology
Cassandra menggunakan model topologi cincin (ring) untuk mengorganisir node-node dalam kluster. Setiap node bertanggung jawab untuk rentang data tertentu di dalam cincin. Model ini memungkinkan penyebaran data dan beban kerja yang merata di seluruh kluster.
5. Toleransi Terhadap Kegagalan
Salah satu prinsip desain utama Cassandra adalah toleransi terhadap kegagalan. Dengan replikasi data di beberapa node, Cassandra dapat mengatasi kegagalan perangkat keras atau node tanpa kehilangan data. Ketika sebuah node gagal, Cassandra secara otomatis mendeteksi kegagalan tersebut dan mengalihkan permintaan ke node-node lain yang memiliki data yang sama.
6. Skema Data Kolom
Cassandra menggunakan model data kolom yang berbeda dengan basis data relasional tradisional. Ini memungkinkan fleksibilitas dalam penyimpanan dan pengambilan data, sehingga pengembang dapat menyesuaikan skema data sesuai dengan kebutuhan aplikasi.
7. Bahasa Kueri CQL
Cassandra menyediakan bahasa kueri yang mirip dengan SQL yang disebut CQL (Cassandra Query Language). CQL memudahkan penggunaan bagi mereka yang sudah terbiasa dengan SQL, meskipun dengan beberapa perbedaan dan tambahan yang cocok untuk Cassandra.
BACA JUGA : Perbedaan MySQL dan MySQLi
Kelebihan dan Kekurangan Cassandra
Berikut adalah kelebihan dan kekurangan Apache Cassandra:
Kelebihan Apache Cassandra
Cassandra memiliki sejumlah kelebihan yang membuatnya menjadi pilihan yang kuat untuk berbagai jenis aplikasi. Salah satunya adalah skalabilitas horizontal yang luar biasa. Cassandra memungkinkan penambahan node dengan mudah ke dalam kluster untuk meningkatkan kapasitas dan kinerja, sehingga cocok untuk aplikasi yang menghadapi pertumbuhan data yang cepat.
Selain itu, Cassandra juga memiliki toleransi terhadap kegagalan yang kuat. Dengan replikasi data di beberapa node, sistem ini mampu bertahan dari kegagalan perangkat keras atau node tanpa kehilangan data. Ini membuat Cassandra sangat andal dan cocok untuk aplikasi yang memerlukan ketersediaan tinggi.
Cassandra mendukung model data kolom yang fleksibel, memungkinkan perubahan skema data tanpa mengganggu operasi yang berjalan, dan bahasa kueri CQL yang mirip SQL, sehingga memudahkan pengembang yang sudah terbiasa dengan SQL untuk mengadopsinya.
Kekurangan Apache Cassandra
Meskipun Cassandra memiliki banyak kelebihan, ada juga beberapa kekurangan yang perlu dipertimbangkan. Salah satu kekurangan utama adalah kesulitan dalam menjalankan kueri kompleks. Cassandra tidak dirancang untuk kueri yang rumit seperti beberapa sistem basis data relasional, sehingga mungkin tidak cocok untuk aplikasi yang memerlukan analisis data yang mendalam.
Selain itu, Cassandra menggunakan model konsistensi yang lemah untuk memastikan kinerja tinggi, yang berarti bahwa ada kemungkinan konsistensi data yang kurang ketat dibandingkan dengan beberapa basis data lainnya. Ini bisa menjadi masalah dalam beberapa aplikasi yang memerlukan konsistensi data yang ketat.
Terakhir, Cassandra memiliki pustaka dan tools yang lebih sedikit dibandingkan dengan beberapa basis data NoSQL lainnya, sehingga mungkin memerlukan pengembang lebih banyak waktu dan upaya untuk mengintegrasikannya ke dalam aplikasi yang ada.
Cara Install Cassandra di Ubuntu 20.04
Cassandra dapat dijalankan pada sistem Operasi Debian 10 dan Ubuntu 20.04, pada versi stable Cassandra disarankan menggunakan OS Ubuntu 20.04. Dalam artikel ini, kami akan berbagi cara install apache Cassandra di VPS KVM dengan OS Ubuntu 20.04.
Step 1. Install Package Cassandra
sudo apt update
apt upgrade -y
apt install apt-transport-https
Step 2. Install Package Java beserta Cassandra
apt install openjdk-8-jdk
wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
apt update
apt install cassandra
Setelah Cassandra berhasil diinstall, jalankan Cassandra
systemctl start cassandra
systemctl status cassandra
nodetool status
Untuk akses login ke Cassandra dapat menggunakan command “cqlsh”
Step 3. Konfigurasi Cassandra
Cassandra secara default memiliki nama cluster, kita dapat mengubah nama cluster Cassandra pada /etc/cassandra/cassandra.yaml
nano /etc/cassandra/cassandra.yaml
# update system.local SET
cluster_name = 'RumahWeb
Cluster' WHERE KEY = 'local';
Simpan konfigurasi nama cluster, lalu restart Cassandra.
# systemctl restart cassandra
# systemctl status cassandra
Step 4. Konfigurasi Firewall Cassandra
Cassandra secara default membutuhkan 3 port untuk komunikasi data (internal) antar cluster database dan aplikasi java, yaitu menggunakan port 7000, 7001, dan 7199.
Untuk Client Cassandra dapat menggunakan port 9042, 9160, dan port 9142 untuk komunikasi menggunakan protokol SSL.
Demikian artikel kami tentang apa itu Apache Cassandra, semoga bermanfaat.