Pengertian Cassandra Database NoSQL – apa sih itu cassandra? apabila anda seorang backend deveoper maupun database administrator, maka seharusnya anda sudah tidak asing lagi dengan salah satu database NoSQL yang akan kita bahas kali ini yaitu Apache Cassandra. Cassandra merupakan salah satu database yang populer digunakan karena memiliki kecepatan dan skalabilitas yang baik. Selain cassandra, database NoSQL sendiri ada beberapa macam seperti MongoDB, Redis, ONDB, dan masih banyak lagi.
Seperti yang anda lihat pada gambar diatas, Cassandra masih masuk ke daftar 10 terbesar database engine yang paling banyak digunakan saat ini, data ini diambil dari website DB engine pada Desember 2020. Anda dapat mengunjungi website resmi dari cassandra di cassandra.apache.org.
Pengertian Apache Cassandra
Apache Cassandra atau lebih dikenal Cassandra adalah salah satu produk open source untuk manajemen database yang didistribusikan oleh Apache yang sangat scalable (dapat diukur) dan dirancang untuk mengelola data terstruktur yang berkapasitas sangat besar (Big Data). Cassandra merupakan salah satu database NoSQl, yaitu database yang tidak menggunakan relasi antar tabel dan tidak menyimpan data dalam format tabel kaku (kolom yang pasti) yang dinamis seperti layaknya relasional database.
Database Apache Cassandra merupakan pilihan yang tepat bagi anda yang membutuhkan scalabilitas dan availabilitas (ketersediaan) tinggi tanpa mengabaikan performance atau kinerja dari sistem yang ingin anda buat. Kemampuan Cassandra dalam menyimpan data dengan jumlah yang sangat besar tidak diragukan lagi, puluhan perusahaan besar telah menggunakan Cassandra sebagai salah satu penunjang kerja dalam meningkatkan bisnis mereka, seperti Facebook, IBM, Reddit, Apple, Twitter, dan masih banyak lagi.
Sejarah Singkat Apache Cassandra
Avinash Lakshman, salah satu penulis Amazon’s Dynamo, dan Prashant Malik awalnya mengembangkan Cassandra di Facebook untuk menjalankan fitur pencarian kotak masuk di Facebook untuk memudahkan pengguna menemukan pesan dan konten lain yang ingin dicari dengan cepat.
Arsitektur yang dibuat menggabungkan model distribusi yang diusulkan dalam makalah Amazon Dynamo untuk memungkinkan penskalaan horizontal dibeberapa node dengan mesin penyimpanan terstruktur log yang dijelaskan dalam makalah BigTable Google. Hasilnya adalah database yang sangat scalable yang dapat menangani kasus penggunaan big data dengan performa yang intensif.
Facebook akhirnya merilis Cassandra sebagai proyek open source dengan kode Google pada juli 2008. Kemudian padaa maret 2009, menjadi salah satu proyek inkubator Apace hingga ditahun 2010, Cassandra lulus ke proyek tingkat atas (top level Apache).
Pengembang Facebook lalu menamai database ini dengan nama dewa metologi Trojan Cassandra, dengan kiasan klasik untuk kutukan pada ramalan.
Fitur Pada Apache Cassandra
Apache Cassandra memiliki beberapa fitur yang membuat para penggunanya takjub. Beberapa fitur ini sebenarnya sudah dijelaskan secara lengkap diwebsite resminya cassandra.apache.org. Fitur tersebut dan sekaligus menjadi kelebihan dari Cassandra antara lain,
1. Elastic scalability
Apache Cassandra merupakan database terdistribusi, dimana penambahan kapasitas penyimpanan dapat ditambah sewaktu-waktu dan tanpa terikat hardware dan lokasi yang sama, sehingga bisa jadi data A ditempatkan di Indonesia, data lainnya ditempatkan di negara lain dengan server yang berbeda baik dari segi hardware maupun platformnya.
2. Penyimpanan data yang fleksibel
Cassandra mengakomodasi semua format data yang ada, termasuk data terstruktur, semi-terstruktur, dan tidak terstruktur. Namun secara dinamis dapat mengakomodasi perubahan struktur data anda sesuai dengan kebutuhan anda. Beberapa penyimpanan terbesar termasuk Apple, dengan lebih dari 75.000 node menyimpan lebih dari 10 PB data, Netflix 2500 node dengan 42 TB dan lebih dari 1 triliun permintaan per hari, dan masih banyak penggunaan lainnya.
3. Distribusi data yang mudah
Cassandra memberikan fleksibilitas untuk mendistribusikan data mana yang anda butuhkan dengan mereplikasi data dibeberapa pusat data. Data akan secara otomati direplikasi ke beberapa node apabila terjadi suatu kesalahan. Node yang gagal dapat diganti secara langsung (no downtime).
4. Menulis cepat
Cassandra dirancang berjalan pada perangkat keras low-end. Ia akan menulis dengan cepat dan dapat menyimpan ratusan terabyte data, tanpa mengorbankan efisiensi membacanya.
Komponen yang ada pada Cassandra
Cassandra memiliki beberapa komponen utama yaitu :
- Node : merupakan server tempat penyimpanan data.
- Data center : Kumpulan dari beberapa node.
- Cluster : Kumpulan dari beberapa data center.
- Commit Log : log dari proses penulisan di Cassandra, yang berfungsi juga sebagai Crash Recovery Mechanism.
- Mem-Table : merupakan memory-resident data structure. Setelah menulis dalam commit log, Cassandra melakukan penulisan disini.
- CQL : Cassandra Query Language, adalah bahasa perintah query di Cassandra.
Kenapa harus menggunakan Cassandra?
1. Cassandra mampu menyelesaikan tugas rumit dengan mudah
Event logging, metrics collection, menjalankan query pada data historis, semua tugas ini mungkin tampak melelahkan bagi anda meskipun tugas tersebut sangat penting dalam alur kerja big data dan DevOps. Selain itu, mengkonfigurasi penyimpanan terpusat untuk log dapat menjadi tugas yang cukup menakutkan mengingat keberagaman data dan banyaknya resource.
Namun anda tidak perlu khawatir, membangun penyimpanan terpusat untuk log dan metrik serta mengambil informasi historis dari penyimpanan adalah tugas yang akan dikerjakan oleh Cassandra dengan cepat dan mudah. Setelah struktur tabel ditentukan dan dirancang, database akan bekerja dengan baik dan dengan mudah menyesuaikan berbagai permintaan (request).
2. Cassandra mudah dipelajari
Anda dapat mempelajari cassandra dengan cepat, karena pada dasarnya Cassandra mengoperasikan CQL (Cassandra Query Language) yang tidak jauh beda dengan SQL meskipun terdapat beberapa fitur tambahan yang canggih. Cassandra terbilang memiliki susunan yang sederhana yang menggunakan daftar variabel, perintah, dan fungsi yang cukup terbatas. Karena kesederhanaannya ini, anda dapat menguasai Cassandra dalam waktu satu bulan. Sehingga dapat mempersingkat waktu anda untuk segera memasarkan produk dari aplikasi yang anda buat dengan cepat.
3. Cassandra dapat menurunkan biaya overhead admin dan meringankan teknisi DevOps
Seperti yang dijelaskan sebelumnya, event logging, metrics collection, dan bekerja dengan data historis adalah tugas dari Cassandra. Sehingga membuat pengeluaran biaya admin menjadi berkurang karena semua sudah dikerjakan oleh Cassandra. Selain itu, tugas tim DevOps akan terbantu dan semakin berkurang, sehingga tim dapat lebih berkonsentrasi pada tugas-tugas inti mereka seperti meningkatkan kualitas produk atau fitur-fiturnya, dan lain sebagainya.
4. Cassandra memiliki tingkat ketahanan yang tinggi terhadap berbagai kesalahan teknis
Karena Cassandra adalah cluster tanpa master, maka tidak ada titik kegagalan tunggal yang terjadi. Hash data terus direplikasi di seluruh cluster untuk memastikan waktu aktif layanan 100%, terlepas dari tidak tersedianya setengah server untuk sementara. Hal ini sangat berguna saat melakukan pembaharuan berkelanjutan atau beberapa pemeliharaan pada kluster. Terlepas dari apakah server, rak server penuh, atau seluruh pusat data terputus, layanan untuk pelanggan tidak akan pernah terhenti. Aplikasi anda akan selalu tersedia kapanpun.
Penutup
Itulah penjelasan tentang pengertian dari apa itu Apache Cassandra yang merupakan database NoSQL yang saat ini populer dan telah digunakan oleh berbagai perusahaan besar dunia. Demikian yang dapat caraguna share pada kesempatan kali ini. Apabila ada yang ingin ditanyakan atau ada yang ingin disampaikan, silahkan komen pada kolom komentar dibawah, terimakasih.