Вопрос

Я надеюсь, что есть кто-то, кто может помочь мне предложить подходящую модель данных для реализации с использованием базы данных 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
    }
}

Обновить
Проверьте это Модель для хранения наибольшего балла

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top