Предложите модель данных Cassandra для существующей схемы
-
21-09-2019 - |
Вопрос
Я надеюсь, что есть кто-то, кто может помочь мне предложить подходящую модель данных для реализации с использованием базы данных nosql Apache Cassandra.Больше, чем мне нужно, это для работы при высоких нагрузках и больших объемах данных.
Упрощенно у меня есть 3 типа объектов:
- Продукт
- Тег
- Тег продукта
Продукт:
key - string key
name - string
.... - some other fields
Тег:
key - string key
name - unique tag words
Тег продукта:
product_key - foreign key referring to product
tag_key - foreign key referring to tag
rating - this is rating of tag for this product
Каждый продукт может иметь 0 или несколько тегов.Тег может быть присвоен одному или нескольким продуктам.Означает, что отношение между продуктами и тегами является отношением "многие ко многим" с точки зрения реляционных баз данных.
Значение "рейтинг" обновляется "очень" часто.
Мне нужно выполнить следующие запросы
- Выбор объектов по клавишам
- Выберите теги для товара, заказанного по рейтингу
- Выбирайте товары по тегу, заказывайте по рейтингу
- Обновить рейтинг по product_key и tag_key
Самое важное - сделать эти запросы действительно быстрыми для больших объемов данных, учитывая, что рейтинг постоянно обновляется.
Решение
Что- то вроде этого:
Products : { // Column Family
productA : { //Row key
name: 'The name of the product' // column
price: 33.55 // column
tags : 'fun, toy' // column
}
}
ProductTag : { // Column Family
fun : { //Row key
timeuuid_1 : productA // column
timeuuid_2 : productB // column
},
toy : { //Row key
timeuuid_3 : productA // column
}
}
Обновить
Проверьте это Модель для хранения наибольшего балла