在cassandra中,如果每个查询都有一个表,并且有多个过滤器组合,是否为每个表创建一个表?

时间:2018-07-01 01:53:24

标签: database cassandra nosql

我是NoSQL的新手,我正设法了解如何为电子商务网站正确建模数据。亚马逊针对不同类型的产品提供了这些过滤器,例如,如果您搜索笔记本电脑,则会有诸如品牌,处理器,硬盘,图形卡,操作系统等过滤器。

因此,据我了解,首先,主键将按浏览节点ID(即此处的笔记本电脑)进行分区,然后我们可以将其他键作为排序键,但是问题是,如果有6个过滤器,则会出现可以形成64个组合。我可以选择品牌和处理器,或者品牌和图形卡,或者处理器和图形卡,这与过滤器的数量成指数关系,因此我认为针对每种可能性使用一张表格是不可行的。

我还怀疑获取整个分区数据后是否可以进行过滤,这太慢了。那么有人应该如何对数据库建模。 抱歉,如果我的问题没有道理。

1 个答案:

答案 0 :(得分:1)

您要尝试的是搜索和过滤。我认为尝试在cassandra中对所有这种条件组合进行建模不是一个好主意,并且可能无法扩展。对于这类情况,使用ElasticSearch或SOLR是一种选择,而不是直接查询高流量企业系统的数据库(即使它是RDBMS)。