【问题标题】:Riak-How to filter objects of one bucket based on another bucket?Riak-如何根据另一个桶过滤一个桶的对象?
【发布时间】:2014-03-04 11:01:18
【问题描述】:

我正在使用带有多个存储桶的 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_account 存储桶上为 user_metadata 中的日期范围内更新的所有键运行 map_reduce。 有没有办法可以做到这一点,目前在 user_metadata 存储桶中也没有 updated_at 键的索引。

【问题讨论】:

标签: mapreduce riak ripple riak-search riak-js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 2023-03-12
    • 1970-01-01
    • 2021-10-29
    • 2018-05-08
    • 2021-01-17
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多