MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Alat MongoDB Dari Komunitas yang Melengkapi ClusterControl

Karena MongoDB adalah basis data favorit bagi banyak pengembang, tidak mengherankan jika dukungan komunitas sangat baik. Anda dapat dengan cepat menemukan jawaban untuk sebagian besar masalah Anda di situs pengetahuan seperti Stack Overflow, tetapi komunitas juga membuat banyak alat, skrip, dan kerangka kerja di sekitar MongoDB.

ClusterControl adalah bagian dari alat komunitas yang memungkinkan Anda untuk menyebarkan, memantau, mengelola, dan menskalakan topologi MongoDB apa pun. ClusterControl dirancang di sekitar siklus hidup database, tetapi tentu saja tidak dapat mencakup semua aspek dari siklus pengembangan. Postingan blog ini akan membahas pilihan alat komunitas yang dapat digunakan untuk melengkapi ClusterControl dalam mengelola siklus pengembangan.

Manajemen Skema

Sakitnya perubahan skema dalam RDBMS konvensional adalah salah satu pendorong di balik pembuatan MongoDB:kita semua menderita migrasi skema yang sangat lambat atau gagal. Oleh karena itu MongoDB telah dikembangkan dengan desain dokumen tanpa skema. Ini memungkinkan Anda mengubah skema kapan pun Anda mau, tanpa database menahan Anda.

Perubahan skema umumnya dilakukan setiap kali ada pengembangan aplikasi. Menambahkan fitur baru ke modul yang ada, atau membuat modul baru mungkin melibatkan pembuatan versi lain dari skema Anda. Pengoptimalan skema dan kinerja juga dapat membuat versi baru skema Anda.

Meskipun banyak orang akan mengatakan itu brilian tidak ditahan oleh database, itu juga membawa beberapa masalah juga:karena data lama tidak dimigrasikan ke desain skema baru, aplikasi Anda harus dapat mengatasi setiap versi skema Anda ada di database Anda. Atau, Anda dapat memperbarui semua data (lama) dengan skema yang lebih baru tepat setelah Anda menerapkan aplikasi.

Semua alat yang dibahas di bagian ini akan sangat membantu dalam memecahkan masalah skema ini.

Koleksi Meteor2

Modul pengumpulan Meteor2 akan memastikan bahwa dari sisi klien dan server, skema akan divalidasi. Ini akan memastikan bahwa semua data ditulis sesuai dengan skema yang ditentukan. Modul hanya akan reaktif, jadi setiap kali data tidak ditulis sesuai skema, peringatan akan dikembalikan.

Luwak

Mongoose adalah middleware Node.js untuk pemodelan skema dan validasi. Definisi skema ditempatkan di dalam aplikasi Node.js Anda, dan ini akan memungkinkan Mongoose bertindak sebagai ORM. Luwak tidak akan memigrasikan data yang ada ke dalam definisi skema baru.

Skema MongoDB

Sejauh ini kita hanya berbicara tentang perubahan skema, jadi sekarang saatnya untuk memperkenalkan Skema MongoDB. Skema MongoDB adalah penganalisis skema yang akan mengambil sampel (acak) data Anda dan menampilkan skema untuk data sampel. Ini tidak berarti akan 100% akurat pada estimasi skemanya.

Dengan alat ini, Anda dapat memeriksa data secara berkala terhadap skema Anda dan mendeteksi perubahan penting atau tidak disengaja dalam skema Anda.

Beberapa Sembilan Menjadi DBA MongoDB - Membawa MongoDB ke ProduksiPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan MongoDBUnduh secara Gratis

Cadangan

ClusterControl mendukung dua implementasi untuk mencadangkan MongoDB:mongodump dan Percona Consistent Backup. Namun, beberapa fungsi yang jarang digunakan, seperti pencadangan sebagian/tambahan dan pencadangan streaming ke kluster lain, tidak akan tersedia begitu saja.

Cadangan MongoDB

Pencadangan MongoDB adalah solusi pencadangan logis NodeJS yang menawarkan fungsionalitas serupa dengan mongodump. Selain itu, ini juga dapat mengalirkan cadangan melalui jaringan, sehingga berguna untuk memindahkan koleksi dari satu instans MongoDB ke instans MongoDB lainnya.

Fitur lain yang berguna adalah bahwa ia telah ditulis dalam NodeJS. Ini berarti akan sangat mudah untuk berintegrasi dalam chatbot Hubot, dan mengotomatiskan transfer koleksi. Jangan takut jika perusahaan Anda tidak menggunakan Hubot sebagai chatbot:Hubot juga dapat berfungsi sebagai webhook atau dikontrol melalui CLI.

Mongob

Mongob adalah solusi pencadangan logis lainnya, tetapi dalam kasus ini telah ditulis dengan Python dan hanya tersedia sebagai alat CLI. Sama seperti MongoDB Backup, ia dapat mentransfer database dan koleksi antar instance MongoDB, tetapi selain itu, ia juga dapat membatasi kecepatan transfer.

Fitur lain yang berguna dari Mongob adalah ia dapat membuat cadangan tambahan. Ini bagus jika Anda ingin memiliki cadangan yang lebih ringkas, tetapi juga jika Anda perlu melakukan pemulihan waktu tertentu.

Lapisan MongoRocks

MongoRocks Strata adalah alat cadangan untuk mesin penyimpanan MongoRocks. Server Percona untuk MongoDB menyertakan mesin penyimpanan MongoRocks, namun tidak memiliki alat cadangan Strata untuk membuat cadangan tingkat file. Pada prinsipnya mongodump dan Percona Consistent Backup dapat membuat cadangan yang andal, tetapi karena merupakan dump logis, waktu pemulihannya akan lama.

MongoRocks adalah mesin penyimpanan yang mengandalkan arsitektur pohon LSM. Ini pada dasarnya berarti ini adalah penyimpanan tambahan saja. Untuk dapat melakukan ini, ia beroperasi dengan ember data:data lama akan disimpan dalam ember yang lebih besar (arsip), data terbaru akan disimpan dalam ember yang lebih kecil (terkini) dan semua data baru yang masuk akan ditulis ke dalam ember memori khusus . Setiap kali pemadatan selesai, data akan mengalir turun dari bucket memori ke bucket terbaru, dan data yang baru saja diubah kembali ke bucket arsip.

Untuk membuat cadangan semua ember, Strata menginstruksikan MongoDB untuk menyiram ember memori ke disk, dan kemudian menyalin semua ember data pada tingkat file. Ini akan membuat cadangan yang konsisten dari semua data yang tersedia. Dimungkinkan juga untuk menginstruksikan Strata untuk hanya menyalin bucket terbaru dan secara efektif mengambil cadangan tambahan.

Poin bagus lainnya dari Strata adalah ia menyediakan biner mongoq, yang memungkinkan Anda untuk menanyakan cadangan secara langsung. Ini berarti tidak perlu memulihkan cadangan ke instans MongoDB, sebelum dapat menanyakannya. Anda dapat memanfaatkan fungsi ini untuk mengirimkan data produksi secara offline ke sistem analitik Anda!

GUI MongoDB

Dalam ClusterControl kami mengizinkan kueri database dan koleksi MongoDB melalui penasihat. Penasihat ini dapat dikembangkan di antarmuka ClusterControl Developer Studio. Kami tidak menampilkan antarmuka langsung dengan database, jadi untuk membuat perubahan pada data Anda, Anda harus masuk ke shell MongoDB, atau memiliki alat yang memungkinkan Anda membuat perubahan ini.

PHPMoAdmin

PHPMoAdmin adalah setara MongoDB dari PHPMyAdmin. Ini fitur fungsionalitas yang mirip dengan PHPMyAdmin:data dan manajemen admin. Alat ini akan memungkinkan Anda untuk melakukan operasi CRUD di sintaks JSON dan PHP di semua database dan koleksi. Di samping semua itu, ia juga memiliki fungsi impor/ekspor dari pilihan data Anda saat ini.

Mongo-Express

Jika Anda mencari peramban data serbaguna, Mongo-Express adalah alat yang pasti perlu Anda periksa. Tidak hanya memungkinkan operasi serupa seperti PHPMoAdmin, ia juga mampu menampilkan gambar dan video sebaris. Bahkan mendukung pengambilan objek besar dari ember GridFS.

Robomongo

Alat yang melangkah lebih jauh adalah Robomongo. Menjadi alat yang didanai orang banyak, daftar fiturnya sangat besar. Ia mampu melakukan semua operasi yang sama seperti Mongo-Express, tetapi selain itu juga memungkinkan manajemen pengguna, peran, dan koleksi. Untuk koneksi, ini mendukung koneksi MongoDB langsung, tetapi juga mendukung topologi replicaSet dan instance MongoDB Atlas.

Kesimpulan

Dengan pilihan alat komunitas gratis ini, kami harap kami telah memberi Anda gambaran umum yang baik tentang cara mengelola data MongoDB di samping ClusterControl.

Selamat mengelompokkan!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara membuat kueri case-insensitive di Mongodb?

  2. Hapus semua yang ada di database MongoDB

  3. Bagaimana cara mengelola koneksi MongoDB di aplikasi web Node.js?

  4. Mengotomatiskan MongoDB dengan SaltStack

  5. Bagaimana cara mendapatkan dokumen tertanam tertentu di dalam koleksi MongoDB?