1

我正在使用带有多个存储桶的 3 节点 Riak 集群。我有一个名为user_account的存储桶,其中包含姓名、地址等用户信息。

user_account = {"id" => 1,"name"=>"abc", "address"=>"xyz"}

还有另一个存储桶user_metadata更新此数据。其中的记录如下所示:

user_metadata = {"id" => 1, "created_at"=>"20140304", "updated_at" => "20140304"}

两个存储桶具有相同的密钥,即 id。我想为在 user_metadata的日期范围内更新的所有键在存储桶user_account上运行map_reduce。有没有办法可以做到这一点,目前在 user_metadata 存储桶中也没有 updated_at 键的索引。

4

1 回答 1

0

由于 Riak 中没有连接,解决此问题的常用方法是对数据模型进行反规范化。在您的情况下,这些记录之间存在一对一的关系,这表明合并它们可能是一个好主意。这也可能允许您定义二级索引,以提高 MapReduce 作业的性能并更有效地为其定义合适的输入。它还可以帮助您更有效地从 Riak 检索数据,因为通常最好检索一些较大的对象而不是大量较小的对象。

于 2014-03-04T13:17:19.093 回答