в даний час ми працюємо на краю ресурсів за допомогою нашого сервера на основі сервера mssql.
Зараз у нас є багато традиційних варіантів щодо наступного кроку щодо вирішення навантаження:
- купуйте швидші процесори та IO
- розділити деяких клієнтів на окремий сервер
- переміщення db до кластеру
Всі вони або дорогі з точки зору ліцензування та обладнання, або за часом. Отже, я хочу додати ще один варіант, перемістивши всю систему до масштабованого рішення, яке обіцяє каскадра двигуна nosql.
Але я не впевнений і не маю досвіду роботи з базами даних noSQL, тому мені потрібно зрозуміти структуру "неструктурованих" даних.
У нашому додатку ми в основному зберігаємо дані, введені користувачами різними способами, як списки "ключові значення". Існує батьківська таблиця, яка містить головний елемент (як Порядок), і є дочірня таблиця з парами ключ-значення, що містить вміст замовлення (наприклад, Order_Lines).
Бізнес-розумні, Order та OrderLines - це одиниця. Але завдяки RDBMS вони зберігаються в таблицях і повинні постійно з'єднуватися.
Під час операцій ми іноді вибираємо завантажувати лише верхню частину, але більшу частину часу ми завантажуємо головний ряд + кілька KVP для відображення корисної інформації.
Наприклад, у списку огляду ми показуємо ідентифікатор заголовка + деякі значення у стовпцях для кожного рядка.
ОНОВЛЕННЯ: Ми зберігаємо форми будь-якого типу. Отже, в основному ми зберігаємо «документи». Тим не менш, нам доводиться готувати і шукати ці форми за будь-яким значенням, сортуванням і т.д.
Як ви здогадуєтесь, кількість та доступність певних КВП варіюється від об'єкта до об’єкта. Немає дійсної можливості створювати єдині таблиці для кожного виду об’єктів, оскільки нам доведеться створити тисячі таблиць для різних комбінацій даних.
Чи краще такий тип «словника», як набори даних, зберігатись у базі даних noSQL? І чи матимемо ми від цього переваги від продуктивності? Буде Cassandra моделювати ці head + KVP як один набір даних? Переглядаючи веб-сторінку кассандри та деякі підручники, у мене складається враження, що між нашими RDBMS та кассандрою не так вже й багато різниться в організації даних - залишаючи нам таку ж величезну кількість приєднань, якщо ви хочете вибрати 5 KVP для списку для кожного рядка.
Просвітництво вітається, також вказівки на документи, що пояснюють проблеми, добре.