şu anda mssql sunucu tabanlı çözümümüzle kaynakların kenarında çalışıyoruz.
Şimdi yükü ele almak için bir sonraki hamle ile ilgili birçok geleneksel seçeneğimiz var:
- daha hızlı CPU'lar ve IO satın alın
- bazı müşterileri ayrı bir sunucuya bölme
- db'yi kümeye taşı
Hepsi ya lisanslama ve donanım ya da zaman açısından pahalıdır. Bu yüzden, tüm sistemi nosql motor cassandra'nın vaat ettiği ölçeklenebilir bir çözüme taşıyarak başka bir seçenek eklemek istiyorum.
Ancak, emin değilim ve noSQL veritabanları ile deneyimli değil, bu yüzden "yapılandırılmamış" verilerin yapısını anlamak gerekir.
Uygulamamızda temel olarak kullanıcılar tarafından girilen verileri "anahtar / değer çifti" listeleri olarak çeşitli şekillerde saklıyoruz. Ana öğeyi içeren bir üst tablo (bir Sipariş gibi) ve siparişin içeriğini (Order_Lines gibi) içeren anahtar / değer çiftlerini içeren bir alt tablo vardır.
İş açısından, Order ve OrderLines bir birimdir. Ancak RDBMS nedeniyle, tablolarda depolanır ve her zaman birleştirilmeleri gerekir.
Operasyonlar sırasında bazen sadece üst kısmı yüklemeyi seçiyoruz, ancak çoğu zaman, bazı yararlı bilgileri görüntülemek için kafa sırasını + bazı KVP'leri yüklüyoruz.
Örneğin, bir genel bakış listesinde, kafa tanımlayıcısını + bazı değerleri her satır için sütunlarda gösteririz.
GÜNCELLEME: Her türlü formu saklarız. Yani, temelde "belgeleri" saklıyoruz. Bununla birlikte, bu formları herhangi bir değer, sıralama vb. İle hazırlamak ve aramak zorundayız. Veri erişim kontrolü, veritabanına başka bir karmaşıklık katmanı ekler.
Tahmin edebileceğiniz gibi, belirli KVP'lerin miktarı ve kullanılabilirliği nesneden nesneye değişir. Farklı veri kombinasyonları için binlerce tablo oluşturmamız gerektiğinden, her bir nesne türü için tek bir tablo oluşturmak için geçerli bir olasılık yoktur.
Veri setleri gibi bu tür "Sözlük" bir noSQL veritabanında daha iyi saklanır mı? Ve bundan performans avantajlarımız olacak mı? Cassandra bu kafa + KVP'leri tek bir veri seti olarak modelleyebilir mi? Cassandra web sayfasına ve bazı öğreticilere baktığımda, RDBMS ve cassandra arasında veri organizasyonu açısından çok fazla bir fark olmadığı izlenimi var - 5 KVP seçmek istiyorsanız bize aynı büyük miktarda katılma bırakarak her satır için bir liste.
Aydınlanma açıktır, aynı zamanda sorunları açıklayan makalelere de işaret eder.