Saya sendiri pemula di database NoSQL. Jadi saya menjawab ini dengan mengorbankan kemungkinan suara yang turun, tetapi ini akan menjadi pengalaman belajar yang luar biasa bagi saya.
- untuk mengetahui apakah MongoDB bagus untuk menyimpan data seperti itu, yang pada akhirnya akan ditanyakan terhadap rentang waktu (mis. mengambil semua gambar kamera tertentu antara jam tertentu)? Adakah saran tentang desain skema Berbasis Dokumen untuk kasus saya?
MongoDB menjadi db berorientasi dokumen, pandai menanyakan di dalam agregat (Anda menyebutnya dokumen). Karena Anda sudah menyimpan data setiap kamera di tabelnya sendiri, di MongoDB Anda akan memiliki koleksi yang terpisah dibuat untuk setiap kamera. Berikut caranya Anda melakukan kueri rentang tanggal.
- Bagaimana spesifikasi server (CPU, RAM, Disk)? ada saran?
Semua basis data NoSQL dibuat untuk meningkatkan skala pada perangkat keras komoditas. Namun, jika Anda mengajukan pertanyaan, Anda mungkin berpikir untuk meningkatkan kinerja dengan meningkatkan skala . Anda dapat memulai dengan mesin yang masuk akal dan saat beban meningkat, Anda dapat terus menambahkan lebih banyak server (penskalaan). Anda tidak perlu merencanakan dan membeli server kelas atas.
- Haruskah saya mempertimbangkan Sharding/Replikasi untuk skenario ini (sambil mempertimbangkan kinerja secara tertulis untuk menyinkronkan set replika)?
MongoDB mengunci seluruh db untuk satu penulisan (tetapi menghasilkan untuk operasi lain) dan dimaksudkan untuk sistem yang memiliki lebih banyak pembacaan daripada penulisan. Jadi ini tergantung pada bagaimana sistem Anda. Ada beberapa cara sharding dan harus spesifik domain. Jawaban umum tidak mungkin. Namun beberapa contoh dapat diberikan seperti sharding berdasarkan geografi, berdasarkan cabang, dll.
Baca juga Pengantar bahasa Inggris sederhana untuk Teorema CAP
Diperbarui dengan jawaban atas komentar tentang sharding
Menurut dokumentasi mereka , Anda harus mempertimbangkan untuk men-deploy sharded cluster, jika:
Jadi berdasarkan poin terakhir ya. Fitur auto-sharding dibuat untuk menskalakan penulisan. Dalam hal ini, Anda memiliki kunci tulis per shard , bukan per database . Tapi saya adalah jawaban teoretis. Saya sarankan Anda mengambil konsultasi dari grup 10gen.com.