Apa itu Sharding di MongoDB?
Sharding adalah konsep di MongoDB, yang membagi kumpulan data besar menjadi kumpulan data kecil di beberapa instance MongoDB.
Terkadang data dalam MongoDB akan sangat besar, sehingga kueri terhadap kumpulan data besar seperti itu dapat menyebabkan banyak penggunaan CPU di server. Untuk mengatasi situasi ini, MongoDB memiliki konsep Sharding, yang pada dasarnya adalah pemisahan kumpulan data di beberapa instance MongoDB.
Koleksi yang bisa berukuran besar sebenarnya dibagi menjadi beberapa koleksi atau Pecahan seperti yang mereka sebut. Logikanya semua pecahan bekerja sebagai satu koleksi.
Bagaimana Menerapkan Sharding
Pecahan diimplementasikan dengan menggunakan cluster yang tidak lain adalah sekelompok instance MongoDB.
Komponen Shard termasuk
- A Shard - Ini adalah hal mendasar, dan ini tidak lain adalah instance MongoDB yang menyimpan subset data. Di lingkungan produksi, semua pecahan harus menjadi bagian dari kumpulan replika.
- Config server - Ini adalah instance mongodb yang menyimpan metadata tentang cluster, pada dasarnya informasi tentang berbagai instance mongodb yang akan menyimpan data shard.
- Router - Ini adalah instance mongodb yang pada dasarnya bertanggung jawab untuk mengarahkan kembali perintah yang dikirim oleh klien ke server yang tepat.
Contoh Cluster Sharding Langkah demi Langkah
Langkah 1) Buat database terpisah untuk server konfigurasi.
mkdir /data/configdb
Langkah 2) Mulai instance mongodb dalam mode konfigurasi. Misalkan jika kita memiliki server bernama Server D yang akan menjadi server konfigurasi kita, kita perlu menjalankan perintah di bawah ini untuk mengkonfigurasi server sebagai server konfigurasi.
mongod -configdb ServerD: 27019
Langkah 3) Mulai instance mongos dengan menentukan server konfigurasi
mongos -configdb ServerD: 27019
Langkah 4) Dari shell mongo terhubung ke instance mongo
mongo -host ServerD -port 27017
Langkah 5) Jika Anda memiliki Server A dan Server B yang perlu ditambahkan ke cluster, jalankan perintah di bawah ini
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Langkah 6) Aktifkan sharding untuk database. Jadi jika kita perlu memecah database Employeedb, jalankan perintah di bawah ini
sh.enableSharding(Employeedb)
Langkah 7) Aktifkan sharding untuk koleksi. Jadi jika kita perlu memecah koleksi Karyawan, jalankan perintah di bawah ini
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Ringkasan:
- Seperti yang dijelaskan dalam tutorial, Sharding adalah konsep di MongoDB, yang membagi kumpulan data besar menjadi kumpulan data kecil di beberapa instance MongoDB.