如何在Key-Value存储中对两个数据集执行交集操作?

时间:2014-08-28 17:39:23

标签: cassandra redis couchbase key-value-store nosql

我们说我有2个数据集,一个用于规则,另一个用于值。

我需要根据规则过滤值。

我正在使用Key-Value商店(couchbase,cassandra等)。我可以使用multi-get从一个表中检索所有值,并从另一个表中检索所有规则,并在循环中执行验证。

然而,我发现这是非常低效的。我通过网络移动大量数据(值),客户端忙于过滤。

使用键值存储找到两个表之间的交集的常见模式是什么?

1 个答案:

答案 0 :(得分:1)

nosql数据模型背后的想法是以非规范化方式写入数据,以便表可以回答精确查询。举个例子,想象一下客户对商店的评价。您需要了解用户在商店中所做的评论以及商店收到的评论。这将使用两个表

建模

ShopReviews
UserReviews

在第一个表格中,您按商店ID在第二个用户ID中查询,但数据会被写入两次,只需使用密钥访问即可直接访问。

以同样的方式,您应该按规则组织值(不知道它们之间的关系是什么,不能更精确)等等。还有一个考虑因素:较新版本的nosql db支持可能有助于模拟1到多个关系的集合。

HTH,Carlo