Terakhir diperbarui: 24/07/2026
Apache Cassandra adalah database NoSQL terdistribusi dan open source yang dirancang untuk menangani data bervolume tinggi di beberapa server. Arsitekturnya yang terdesentralisasi menghilangkan titik tunggal kegagalan, sehingga menjadikannya pilihan yang andal untuk workload dengan ketersediaan tinggi dan tindakan penulisan yang intensif, serta perlu tetap online terlepas dari adanya pemadaman layanan node atau pusat data.
Engineer Facebook (sekarang Meta), Avinash Lakshman dan Prashant Malik, membuat Cassandra untuk mendukung penelusuran kotak masuk Facebook. Mereka membutuhkan sistem yang dapat menyimpan dan menelusuri set data yang sangat besar di banyak server tanpa memperlambat performa.
Untuk membangunnya, tim mengambil inspirasi dari dua model database mapan lainnya: menggabungkan model penyimpanan kolom lebar dari makalah Bigtable Google tahun 2006 dengan arsitektur cincin terdistribusi Dynamo Amazon. Mereka menamai project ini dengan nama peramal Troya dalam mitologi, sebagai simbol "kutukan" membuat prediksi yang tidak dipercayai orang lain.
Project ini berkembang pesat seiring potensinya yang makin jelas bagi komunitas engineering yang lebih luas:
Karena reputasinya, banyak perusahaan mempercayai Linux untuk mendukung sistem mereka. Meskipun Cassandra tetap menjadi pilihan yang terbukti untuk sistem ketersediaan tinggi, mengevaluasi pertukaran desainnya dapat membantu tim memutuskan apakah mengelola sendiri arsitektur lama sesuai dengan kebutuhan aplikasi modern atau tidak.
Cassandra sering digunakan untuk pekerjaan yang melibatkan aliran data yang stabil, seperti informasi dari sensor cerdas (IoT), logging aplikasi, dan pipeline pemantauan. Database ini juga banyak digunakan untuk pelacakan peristiwa dan sistem rekomendasi, yang mengutamakan penyimpanan dan pembuatan kueri data secara cepat dalam skala besar.
Sistem yang tidak dapat mentoleransi waktu non-operasional menggunakan Cassandra karena replikasi multi-pusat data dan penulisan asinkronnya memungkinkan seluruh pusat data menjadi offline tanpa mengganggu layanan atau kehilangan data. Banyak perusahaan global mengandalkan layanan ini untuk menjaga aplikasi mereka tetap berjalan 24/7 di berbagai region.
Cassandra menggunakan desain peer-to-peer yang setiap node-nya identik. Node-node ini diatur dalam cincin yang terdesentralisasi, dan menggunakan metode yang disebut hashing yang konsisten untuk mendistribusikan data secara merata, mencegah bottleneck, dan memastikan tidak ada titik tunggal kegagalan. Anda juga dapat memilih seberapa ketat database saat memeriksa apakah pembacaan atau penulisan berhasil, yang memungkinkan Anda memutuskan antara kecepatan dan memiliki data terbaru berdasarkan kebutuhan aplikasi spesifik Anda.
Database ini menggunakan model yang disebut penyimpanan wide-column, yang membantu mengatur data Anda ke dalam keyspace, baris, dan kolom dinamis yang mirip dengan spreadsheet biasa, tetapi dengan lebih banyak fleksibilitas. Dengan demikian, Anda dapat merancang data dengan cara yang mudah diubah seiring berkembangnya aplikasi.
Fitur | Apache Cassandra | RDBMS tradisional |
Model data | Didenormalisasi | Dinormalisasi |
Fleksibilitas skema | Dapat diubah saat berjalan | Memerlukan waktu non-operasional |
Struktur indeks | Log-structured merge tree | B-Tree |
Pengoptimalan tulis | Utama | Sekunder |
Pemosisian CAP (Konsistensi, ketersediaan, toleransi partisi) | AP (Tersedia dan toleransi partisi) | CA (Konsisten dan tersedia) |
Kemampuan kueri | CQL (tanpa JOIN) | SQL lengkap dengan JOIN |
Model data
Didenormalisasi
Dinormalisasi
Fleksibilitas skema
Dapat diubah saat berjalan
Memerlukan waktu non-operasional
Struktur indeks
Log-structured merge tree
B-Tree
Pengoptimalan tulis
Utama
Sekunder
Pemosisian CAP (Konsistensi, ketersediaan, toleransi partisi)
AP (Tersedia dan toleransi partisi)
CA (Konsisten dan tersedia)
Kemampuan kueri
CQL (tanpa JOIN)
SQL lengkap dengan JOIN
Mesin penyimpanan Cassandra mengandalkan Log-Structured Merge (LSM) Tree untuk menangani data. Penulisan yang masuk ditulis ke log commit untuk ketahanan dan disimpan dalam memori melalui Memtable. Saat penuh, Memtable akan di-flush ke disk sebagai Sorted String Table (SSTable) yang tidak dapat diubah.
Desain khusus penambahan ini adalah alasan Cassandra unggul dalam throughput yang banyak menulis. Dengan menghindari update di tempat, sistem dapat memproses data yang masuk jauh lebih cepat daripada sistem tradisional yang mengandalkan I/O disk acak.
Berikut adalah jawaban atas beberapa pertanyaan umum tentang Cassandra.
Cassandra adalah database terdistribusi yang digunakan untuk aplikasi yang harus selalu online dan menangani banyak penulisan data, seperti log streaming atau data sensor.
Cassandra adalah database NoSQL. Cassandra menggunakan bahasa bernama CQL yang mirip dengan SQL, tetapi tidak mendukung semua fitur yang sama, seperti gabungan kompleks atau keamanan transaksi yang mendalam.
Kafka digunakan untuk memindahkan data secara real-time, sedangkan Cassandra digunakan untuk menyimpan data tersebut dengan aman. Keduanya sering digunakan bersamaan dalam satu sistem.
Cassandra paling cocok untuk menulis banyak data dalam skala besar. MongoDB adalah database dokumen yang sering kali lebih baik jika Anda perlu menelusuri berbagai jenis data dengan struktur yang fleksibel.
Cassandra dibuat untuk Pemrosesan Transaksi Online (OLTP), yang berarti Cassandra sangat baik dalam menangani pembacaan dan penulisan yang sederhana dan berkecepatan tinggi. Cassandra tidak dibuat untuk tugas analisis yang kompleks seperti menjalankan laporan besar atau memindai semua data Anda sekaligus.
Skalabilitas
Anda dapat menambahkan lebih banyak node untuk menangani lebih banyak pekerjaan, dan Anda tidak perlu mematikan sistem untuk melakukannya.
Tidak ada titik tunggal kegagalan
Karena semua node setara, sistem ini sangat stabil.
Penyalinan data otomatis
Sistem akan otomatis menyimpan data Anda di beberapa tempat.
Operasi tulis yang cepat
Desain penyimpanan dibuat untuk menangani sejumlah besar operasi tulis sekaligus.
Konsistensi yang dapat disesuaikan
Anda dapat mengontrol seberapa ketat data Anda berdasarkan per kueri. Pilih node "Semua" untuk akurasi sempurna, atau node "Satu" untuk kecepatan tercepat.
Tidak ada keterikatan pada vendor
Karena berjalan di hardware standar, Anda tidak terikat pada penyedia cloud tertentu. Anda dapat memindahkan data antara konfigurasi lokal dan cloud yang berbeda jika diperlukan.
Menjalankan sistem Cassandra Anda sendiri memerlukan banyak overhead. Anda harus merencanakan berapa banyak ruang yang dibutuhkan, menyiapkan server, menangani perbaikan, memastikan Anda memiliki cadangan, dan melakukan update saat sistem berjalan.
Layanan terkelola mengubah hal ini dengan menangani pekerjaan berat untuk Anda.
Dengan memindahkan tugas operasional ini ke platform terkelola, tim Anda tidak perlu lagi mengkhawatirkan infrastruktur database dan dapat berfokus untuk memberikan nilai tambah bagi pengguna.
Saat memutuskan cara menjalankan workload Cassandra, Anda memiliki tiga jalur utama.
Memilih jalur yang tepat bergantung pada keseimbangan antara keahlian tim Anda dan kebutuhan bisnis spesifik Anda. Gunakan checklist ini untuk memandu proses pengambilan keputusan Anda:
Pertanyaan | Jika ya… | Jika tidak… |
Apakah kita punya waktu untuk memperbaiki dan menyesuaikan database? | Anda dapat menangani cluster yang dikelola sendiri jika memiliki engineer khusus untuk "database plumbing". | Pilih layanan terkelola untuk menghindari pemborosan waktu rekayasa dalam pemeliharaan infrastruktur. |
Apakah "tetap online" lebih penting daripada konsistensi yang sempurna? | Model AP Cassandra sangat cocok untuk aplikasi dengan ketersediaan tinggi. | Pertimbangkan Cloud Spanner, yang menawarkan skala sistem terdistribusi dengan keamanan data yang ketat. |
Apakah kami perlu meningkatkan skala dengan cepat seiring pertumbuhan kami? | Gunakan layanan terkelola atau Bigtable, yang menawarkan penskalaan otomatis untuk menangani lonjakan traffic. | Cluster statis mungkin berfungsi, tetapi Anda berisiko mengalami bottleneck performa selama periode sibuk. |
Apakah layanan terkelola akan membuat pekerjaan kami lebih andal? | Tentu saja; layanan terkelola mengotomatiskan pencadangan dan penerapan patch untuk mencegah kesalahan manusia. | Anda menerima risiko yang lebih tinggi dari pemeliharaan manual dan potensi kesalahan konfigurasi. |
Apakah kami menargetkan portabilitas infrastruktur? | Self-managed memberi Anda kebebasan maksimal untuk berpindah antar-cloud atau berjalan di infrastruktur lokal. | Anda merasa nyaman dengan manfaat khusus cloud sebagai imbalan atas upaya operasional yang lebih rendah. |
Pertanyaan
Jika ya…
Jika tidak…
Apakah kita punya waktu untuk memperbaiki dan menyesuaikan database?
Anda dapat menangani cluster yang dikelola sendiri jika memiliki engineer khusus untuk "database plumbing".
Pilih layanan terkelola untuk menghindari pemborosan waktu rekayasa dalam pemeliharaan infrastruktur.
Apakah "tetap online" lebih penting daripada konsistensi yang sempurna?
Model AP Cassandra sangat cocok untuk aplikasi dengan ketersediaan tinggi.
Pertimbangkan Cloud Spanner, yang menawarkan skala sistem terdistribusi dengan keamanan data yang ketat.
Apakah kami perlu meningkatkan skala dengan cepat seiring pertumbuhan kami?
Gunakan layanan terkelola atau Bigtable, yang menawarkan penskalaan otomatis untuk menangani lonjakan traffic.
Cluster statis mungkin berfungsi, tetapi Anda berisiko mengalami bottleneck performa selama periode sibuk.
Apakah layanan terkelola akan membuat pekerjaan kami lebih andal?
Tentu saja; layanan terkelola mengotomatiskan pencadangan dan penerapan patch untuk mencegah kesalahan manusia.
Anda menerima risiko yang lebih tinggi dari pemeliharaan manual dan potensi kesalahan konfigurasi.
Apakah kami menargetkan portabilitas infrastruktur?
Self-managed memberi Anda kebebasan maksimal untuk berpindah antar-cloud atau berjalan di infrastruktur lokal.
Anda merasa nyaman dengan manfaat khusus cloud sebagai imbalan atas upaya operasional yang lebih rendah.
Jika Anda ingin menghindari pekerjaan mengelola Cassandra sendiri, Google Cloud menawarkan dua solusi yang bermanfaat: Bigtable dan Spanner.
Jika Anda sudah menggunakan Cassandra untuk penyimpanan kolom lebar dan throughput tulis yang tinggi, Bigtable mungkin sangat cocok. Untuk menggunakannya, Anda dapat memetakan keyspace dan tabel Cassandra yang ada ke tabel Bigtable, lalu mengupdate kode aplikasi Anda untuk menggunakan library klien Cloud Bigtable. Karena terkelola sepenuhnya, Bigtable otomatis menangani sharding dan load balancing yang sebelumnya harus Anda sesuaikan secara manual di Cassandra.
Jika workload Cassandra Anda telah berkembang hingga memerlukan konsistensi yang lebih kuat atau Anda memerlukan fitur relasional SQL, Spanner juga dapat menjadi pilihan yang baik. Untuk menggunakannya, Anda menentukan skema menggunakan SQL standar, yang mungkin mengharuskan Anda menormalisasi beberapa data Cassandra yang didenormalisasi. SQL standar menawarkan skala horizontal yang sama dengan Cassandra, tetapi dengan manfaat tambahan berupa konsistensi global yang kuat dan dukungan SQL relasional penuh.
Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.