kami saat ini berjalan di tepi sumber daya dengan solusi berbasis server mssql kami.
Kami sekarang memiliki banyak pilihan tradisional mengenai langkah selanjutnya untuk mengatasi beban:
- beli CPU dan IO yang lebih cepat
- membagi beberapa pelanggan ke server terpisah
- pindahkan db ke cluster
Semuanya mahal dalam hal lisensi dan perangkat keras atau waktu. Jadi, saya ingin menambahkan opsi lain dengan memindahkan seluruh sistem ke solusi scalable yang dijanjikan mesin nosql cassandra.
Namun, saya tidak yakin dan tidak berpengalaman dengan database noSQL, jadi saya perlu memahami struktur data "tidak terstruktur".
Dalam aplikasi kami, kami pada dasarnya menyimpan data yang dimasukkan oleh pengguna dalam berbagai cara sebagai daftar "nilai kunci". Ada tabel induk, yang berisi elemen kepala (seperti Pesanan) dan ada tabel anak dengan pasangan nilai kunci yang terdiri dari isi pesanan (seperti Order_Lines).
Dari segi bisnis, Order dan OrderLines adalah satu unit. Tetapi karena RDBMS, mereka disimpan dalam tabel dan harus bergabung setiap saat.
Selama operasi, kami kadang-kadang memilih untuk memuat hanya bagian atas, tetapi sebagian besar waktu, kami memuat baris utama + beberapa KVP untuk menampilkan beberapa informasi yang berguna.
Misalnya, dalam daftar ikhtisar, kami menunjukkan pengidentifikasi kepala + beberapa nilai dalam kolom untuk setiap baris.
PEMBARUAN: Kami menyimpan segala bentuk. Jadi, pada dasarnya kami menyimpan "dokumen". Namun demikian, kami harus menyiapkan dan mencari melalui formulir-formulir ini dengan nilai apa pun, mengurutkan, dll. Kontrol akses data menambah lapisan kompeksitas pada basis data.
Seperti yang Anda duga, jumlah dan ketersediaan KVP tertentu bervariasi dari satu objek ke objek lainnya. Tidak ada kemungkinan yang valid untuk membuat tabel tunggal untuk setiap jenis objek karena kita harus membuat ribuan tabel untuk kombinasi data yang berbeda.
Apakah "Kamus" seperti kumpulan data ini lebih baik disimpan dalam basis data noSQL? Dan akankah kita mendapat manfaat kinerja dari ini? Apakah Cassandra akan memodelkan head + KVP ini sebagai satu dataset? Melihat halaman web cassandra dan beberapa tutorial, saya mendapat kesan, bahwa tidak ada banyak perbedaan antara RDBMS dan cassandra kami dalam hal organisasi data - meninggalkan kami dengan jumlah bergabung yang sangat besar jika Anda ingin memilih 5 KVPs untuk daftar untuk setiap baris.
Pencerahan diterima, juga petunjuk ke makalah yang menjelaskan masalah tidak masalah.