NoSQL ("tidak hanya SQL") adalah pendekatan desain database yang memungkinkan penyimpanan dan kueri data di luar struktur tradisional yang ditemukan dalam database relasional. Itu dibuat terutama untuk menangani data tidak terstruktur yang dihasilkan dari berbagai sumber seperti dokumen, audio, video, jejaring sosial, dll. Basis data NoSQL adalah yang terbaik untuk aplikasi modern di mana model data berkembang dan skalabilitas sangat penting. Basis data ini telah mendapatkan popularitas dalam beberapa tahun terakhir karena perusahaan sekarang harus berurusan dengan data tidak terstruktur lebih dari sebelumnya. Model ini menyimpan data secara berbeda dari tabel relasional tradisional untuk mengizinkan data terkait disimpan dalam satu struktur data. Basis data NoSQL dapat dibagi menjadi empat kategori:
-
Toko Dokumen
-
Basis Data Nilai Kunci
-
Toko dengan Kolom Lebar
-
Basis Data Grafik
Basis data NoSQL sering digunakan dalam proyek tangkas karena menawarkan model data yang fleksibel. Ini memungkinkan pengembang untuk fokus pada logika dan algoritme bisnis alih-alih berurusan dengan pembaruan skema. Jika Anda mengantisipasi bahwa model data aplikasi Anda harus tetap fleksibel untuk mengakomodasi perubahan dari waktu ke waktu, pendekatan skema database NoSQL yang fleksibel mungkin sesuai dengan kebutuhan Anda.
Menurut db-engines, dua database NoSQL teratas (Juli 2021) adalah MongoDB (peringkat:5) dan Redis (peringkat:6). Menariknya, database NoSQL ini tidak ada 12 tahun yang lalu. Bagaimana mereka muncul dan memperoleh daya tarik, popularitas, dan mereka mengubah lanskap sistem manajemen basis data adalah inti utama dari entri blog ini.
MongoDB
MongoDB adalah database berorientasi dokumen open-source, dengan rilis awal pada Februari 2009. Database dokumen sangat kontras dengan database relasional tradisional. Mereka menyimpan semua informasi untuk objek tertentu dalam satu contoh dalam database, dan setiap objek yang disimpan bisa berbeda satu sama lain. Ini menghilangkan kebutuhan untuk pemetaan relasional objek dan memungkinkan struktur tanpa skema, fitur di mana pengembang aplikasi memiliki kelincahan untuk berkembang dengan cepat karena model datanya yang fleksibel. Daripada menyesuaikan aplikasi untuk memenuhi persyaratan skema, pengembang menulis aplikasi dan skema berikut.
MongoDB sangat populer karena fleksibilitasnya, kemudahan untuk dipelajari, dan biaya kepemilikan yang lebih rendah untuk memulai. Pengembang aplikasi menyukai MongoDB karena mereka dapat mengubah model data saat bepergian, dan karena MongoDB menggunakan dokumen JSON untuk merekam data. JSON ada di mana-mana dan dapat dianggap sebagai format de-facto untuk mengirim data yang kaya antara aplikasi web dan titik akhir. Desain dan fleksibilitasnya yang sederhana membuatnya mudah dibaca dan dipahami, dan dalam banyak kasus, mudah untuk dimanipulasi dalam bahasa pemrograman pilihan Anda.
MongoDB muncul berkat 10gen (sebelum diubah namanya menjadi MongoDB Inc), mulai mengembangkannya pada 2007 dan keluar dengan rilis GA pertamanya pada Februari 2009. Sejak itu, MongoDB telah berkembang pesat dan dianggap sebagai salah satu proyek database paling menarik untuk aplikasi modern. Menurut Survei Pengembang StackOverflow 2020, MongoDB tetap menjadi teknologi basis data yang paling ingin dipelajari pengembang. Pada saat penulisan ini, mereka baru saja merilis versi 5.0 (13 Juli 2021) dan dilengkapi dengan banyak fitur penting seperti reharding langsung, dukungan data deret waktu asli, dan API berversi, yang cocok untuk lingkungan multi-cloud.
Fitur penting lainnya dari MongoDB adalah fitur ketersediaan tinggi bawaan seperti replikasi, kumpulan replika, dan sharding. Ini dapat diskalakan secara horizontal, yang membantu mengurangi beban kerja dan menskalakan bisnis Anda dengan mudah. Ini menawarkan replikasi melalui protokol konsensus buatan sendiri yang mengambil inspirasi dari Raft dan dapat mendistribusikan data di seluruh pecahan melalui router kueri yang disebut mongos. Anda dapat menggunakan ClusterControl untuk menerapkan kumpulan replika MongoDB dan penyiapan sharded cluster dengan mudah.
MongoDB menarik perhatian dan kritik publik karena kelemahannya pada konfigurasi keamanan default MongoDB, yang memungkinkan siapa saja memiliki akses penuh ke database. Data dari puluhan ribu instalasi MongoDB telah dicuri. Selain itu, banyak server MongoDB telah ditahan untuk tebusan. Paparan ini telah mendorong kami untuk menulis beberapa posting blog terkait keamanan yang terkait dengan MongoDB seperti, Amankan MongoDB dan Lindungi Diri Anda Dari Ransom Hack dan Cara Mengamankan MongoDB Dari Ransomware - Sepuluh Tips. Akibatnya, MongoDB telah meningkatkan aspek konfigurasi default agar lebih aman dengan MongoDB 3 dan yang lebih baru.
Beberapa perusahaan besar sangat mengandalkan MongoDB sebagai penyimpanan data mereka, seperti Forbes, Toyota, SAP, Cisco, eBay, dan Adobe. MongoDB dianggap sebagai pengubah permainan di dunia basis data, menjadi salah satu platform basis data terpenting di era internet.
ClusterControl telah mendukung MongoDB sejak versi Juli 2013 (v1.2.3) dan terus ditingkatkan sejak saat itu. ClusterControl bahkan mendukung TokuMX (MongoDB dengan pohon fraktal Tokutek) saat itu, sebelum tidak digunakan lagi di MongoDB 3 karena perubahan desain inti hulu. Dalam peningkatan penting baru-baru ini, ClusterControl memperkenalkan dukungan untuk Percona Backup for MongoDB, solusi terdistribusi dan berdampak rendah untuk mencapai pencadangan yang konsisten dari kluster sharded MongoDB dan set replika. Proyek Percona Backup untuk MongoDB diwarisi dari dan menggantikan mongodb_consistent_backup, yang tidak lagi dikembangkan atau didukung secara aktif.
Redis
Redis adalah teknologi database NoSQL terpopuler lainnya yang berfokus pada akses berkecepatan tinggi yang sering ke potongan data yang sama, bahkan jika potongan data itu besar. Pada Mei 2019, Salvatore Sanfilllippo merilis versi awal Redis, alias Server Kamus Jarak Jauh, dan telah menarik perhatian semua orang karena fiturnya yang lebih kaya ke solusi database dalam memori sumber terbuka yang sudah mapan pada waktu itu yang disebut Memcached.
Redis sangat cepat karena struktur data dalam memori dan fakta bahwa itu telah ditulis dalam bahasa C (itulah salah satu alasan Memcached ditulis ulang dalam C). Karena kinerjanya yang tinggi, pengembang telah beralih ke Redis untuk caching data ketika volume operasi baca dan tulis melebihi kemampuan database tradisional. Data yang sering diakses dapat di-cache dan disajikan oleh penyimpanan data nilai kunci dalam memori dan meminimalkan pembacaan dan penulisan ke sistem berbasis disk yang lebih lambat yang berfokus pada penyimpanan persisten.
Secara tradisional, sistem manajemen basis data dirancang untuk menyediakan fungsionalitas data yang kuat daripada kecepatan dalam skala besar. Cache aplikasi sering digunakan untuk menyimpan salinan tabel pencarian dan menjawab pertanyaan mahal dari DBMS, baik untuk meningkatkan kinerja aplikasi dan mengurangi beban sumber data. Terkadang alur kerja aplikasi membutuhkan pembuatan hasil yang intensif sumber daya. Setelah hasil ini diperoleh, ada kasus di mana hasilnya nanti dapat digunakan kembali, seperti saat melakukan agregat parsial. Cache bertindak sebagai media perantara yang ideal untuk mempertahankan hasil seperti itu di antara permintaan. Di sinilah Redis bersinar.
Redis telah berevolusi dari penyimpanan nilai kunci sederhana yang sangat cepat menjadi penyimpanan data yang persisten dan digunakan sebagai perantara pengiriman pesan dan sistem antrian. Ini memungkinkan keadaan tanpa kewarganegaraan yang sebenarnya untuk proses aplikasi sekaligus mengurangi duplikasi data atau permintaan ke sumber data eksternal. Menurut StackOverflow Developer Survey 2020, Redis tetap menjadi yang teratas dalam teknologi basis data yang ingin terus dikembangkan oleh pengembang. Pada saat penulisan ini, Redis 6 adalah versi terbaru, dengan implementasi ACL berbasis pengguna baru yang lebih canggih, enkripsi SSL lalu lintas bawaan, dan I/O multi-threaded, meskipun proses Redis masih single-threaded .
Penyebaran Redis didukung di ClusterControl 1.9.0 dengan menggunakan paket GUI ClusterControl generasi baru kami yang tersedia dalam instalasi terpisah. Pada saat penulisan ini, kami menyebutnya sebagai ClusterControl v2 yang ditandai dengan Pratinjau Teknologi yang hanya mendukung penerapan replikasi Redis hingga 5 node dengan Redis Sentinel dengan manajemen cadangan AOF dan RDB. Jika Anda tertarik, silakan lihat panduan ini tentang cara menginstalnya.
Ringkasan
MongoDB dan Redis adalah dua solusi database NoSQL terbaik di pasar saat ini dan diyakini akan mempertahankan posisinya di peringkat 10 database teratas untuk waktu yang cukup lama. Itulah alasan ClusterControl mendukung kedua teknologi database.