Cassandra adalah sistem manajemen basis data NoSQL yang dirancang untuk menangani data dalam jumlah besar di banyak server komoditas dan menyediakan ketersediaan tinggi tanpa titik kegagalan tunggal. Cassandra menawarkan dukungan yang sangat kuat untuk klaster yang menjangkau beberapa pusat data, dengan replikasi tanpa master asinkron yang memungkinkan operasi latensi rendah untuk semua klien. Cassandra mendukung desain distribusi Amazon Dynamo dengan model data Bigtable Google
Kesamaan antara MongoDB dan Cassandra
Dengan pengenalan singkat dari kedua database NoSQL ini, mari kita tinjau beberapa kesamaan antara kedua database ini
Baik MongoDB dan Cassandra adalah tipe database NoSQL dan distribusi sumber terbuka.
- Tidak satu pun dari database ini yang merupakan pengganti tipe database RDBMS tradisional
- Kedua database ini tidak sesuai dengan ACID (Atomicity, Consistency, Isolation, Durability), yang mengacu pada properti transaksi database yang menjamin transaksi database diproses dengan andal.
- Kedua database ini mendukung partisi horizontal sharding
- Konsistensi dan Normalisasi adalah dua konsep yang tidak dipenuhi oleh kedua jenis basis data ini (karena ini lebih condong ke jenis basis data RDBMS)
MongoDB vs. Cassandra. Fitur
Kedua teknologi memainkan peran penting di bidangnya, dengan kesamaan mereka antara MongoDB dan Cassandra menunjukkan fitur dan perbedaan umum mereka, keunikan teknologi ini.
Gambar 1 MongoDB vs. Cassandra – 8 Faktor Perbedaan Utama
Model Data Ekspresif
MongoDB menyediakan model data yang kaya dan ekspresif yang dikenal sebagai 'berorientasi objek' atau 'berorientasi data'. ' Model data ini dapat dengan mudah mendukung dan mewakili struktur data apa pun di domain pengguna. Data dapat memiliki properti dan dapat disarangkan satu sama lain untuk beberapa level. Cassandra lebih merupakan model data tradisional dengan struktur tabel, baris, dan kolom tipe data tertentu. Jenis ini ditentukan selama pembuatan tabel. Bagaimanapun, ketika kita membandingkan kedua model tersebut, MongoDB cenderung menyediakan model data yang kaya. Gambar di bawah menjelaskan arsitektur tingkat tinggi tipikal dari kedua database dalam hal tingkat penyimpanan dan replikasinya.
Gambar 2. Diagram arsitektur MongoDB vs. Cassandra
Node Master Ketersediaan Tinggi
MongoDB mendukung satu node master dalam sebuah cluster, yang mengontrol sekumpulan node slave. Jika node master turun, seorang budak dipilih sebagai master dan membutuhkan waktu sekitar 20-30 detik untuk hal yang sama. Selama waktu tunda ini, cluster akan mati dan tidak akan dapat menerima input apa pun. Cassandra mendukung banyak node master dalam sebuah cluster, dan jika salah satu node master offline, tempatnya akan diambil oleh node master lainnya. Sebagai perbandingan, Cassandra mendukung ketersediaan yang lebih tinggi daripada MongoDB karena tidak memengaruhi klaster dan selalu tersedia.
Indeks Sekunder
MongoDB memiliki lebih banyak keunggulan dibandingkan dengan Cassandra jika aplikasi memerlukan indeks sekunder bersama dengan fleksibilitas dalam model data. Karena itu, MongoDB jauh lebih mudah mengindeks properti apa pun dari data yang disimpan dalam database. Properti ini memudahkan kueri. Cassandra memiliki dukungan kursor untuk indeks sekunder, yang terbatas pada kolom tunggal dan perbandingan kesetaraan
Tulis Skalabilitas
MongoDB hanya mendukung satu node master. Node master di MongoDB ini hanya menerima input, dan node lainnya di MongoDB digunakan sebagai output; . Cassandra mendukung banyak node master dalam sebuah cluster, yang membuatnya cocok untuk Skalabilitas.
Dukungan Bahasa Kueri
Saat ini, MongoDB tidak mendukung bahasa kueri. Kueri di MongoDB disusun sebagai fragmen JSON. Sebaliknya, Cassandra memiliki kumpulan kueri yang ramah pengguna yang dikenal sebagai CQL (Cassandra Query Language) dan mudah diadaptasi oleh pengembang yang memiliki pengetahuan SQL sebelumnya. Apa perbedaan kueri mereka?
Memilih catatan dari tabel pelanggan
Cassandra
SELECT * FROM customer;MongoDB
db.customer.find()_Memasukkan catatan ke tabel pelanggan
Cassandra
MongoDB
db.customer.insert({ cust_id: 'appl01', branch: 'headquarters', status: 'A' })Memperbarui catatan di tabel pelanggan
Cassandra
UPDATE Customer SET branch = ‘headquarters' WHERE custage > 2;_MongoDB
db.customer.update( { custage: { $gt: 2 } }, { $set: { branch: 'headquarters' } }, { multi: true } )Agregasi Asli
MongoDB memiliki kerangka kerja Agregasi bawaan yang digunakan untuk menjalankan pipa ETL untuk mengubah data yang disimpan dalam database dan juga mendukung lalu lintas data kecil dan menengah. Ketika ada peningkatan kompleksitas, kerangka kerja juga menjadi lebih sulit untuk di-debug, sedangkan Cassandra tidak memiliki kerangka kerja agregasi terintegrasi. Cassandra memanfaatkan alat eksternal seperti Hadoop, Apache Spark, dll. Oleh karena itu, MongoDB lebih baik daripada Cassandra dalam hal kerangka agregasi bawaan
Model tanpa skema
MongoDB menyediakan fasilitas bagi pengguna yang diizinkan untuk mengubah penerapan skema apa pun pada database. Setiap database bisa menjadi struktur yang berbeda. Itu semua tergantung pada program atau aplikasi untuk menafsirkan data. Sedangkan Cassandra tidak menawarkan fasilitas untuk mengubah skema tetapi menyediakan pengetikan statis di mana pengguna diharuskan untuk menentukan jenis kolom di awal.
Tolok Ukur Kinerja
Cassandra mempertimbangkan kinerja yang lebih baik dalam aplikasi yang memerlukan beban data yang berat karena dapat mendukung banyak node master dalam sebuah cluster. Sedangkan,