为现有架构建议 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 个或多个标签。标签可以分配给 1 个或多个产品。就关系数据库而言,意味着产品和标签之间的关系是多对多的。
“评级”的值“非常”频繁地更新。
我需要运行以下查询
- 通过按键选择对象
- 为按评级订购的产品选择标签
- 按标签选择产品 按评级排序
- 按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
}
}
更新
检查这个 模型存储最大分数
不隶属于 StackOverflow