gpt4 book ai didi

riak - 如何在 Riak 中构建数据?

转载 作者:行者123 更新时间:2023-12-03 16:11:05 27 4
gpt4 key购买 nike

我想弄清楚如何在 Riak 中对数据建模.假设您正在构建类似 CMS 的东西有两个特点,新闻和产品。您需要能够为多个客户端 X 和 Y 存储此信息。您通常会如何构建此信息?

  • 每个客户一个桶,然后是两个关键的新闻和产品。在每个键下存储多个对象,然后使用 map/reduce 对它们进行排序。
  • 将新闻和产品存储在同一个存储桶中,但每个新闻项目和产品项目都有一个新的自动生成的 key 。即,一个桶用于 X,一个桶用于 Y。
  • 每个客户/功能组合一个存储桶,即存储桶将是 X-news、X-product、Y-news 和 Y-product。然后在整个bucket上使用map/reduce来按顺序返回结果。

  • 哪个是处理这个问题的最佳方法?

    最佳答案

    我会创建 2 个桶:新闻和产品。
    然后我会在每个存储桶中使用客户端名称作为键前缀。
    我可能还会在新闻键中包含日期以方便日期范围。

    news/acme_2011-02-23_01
    news/acme_2011-02-23_02
    news/bigcorp_2011-02-21_01

    并可选择在产品名称前加上类别名称
    products/acme_blacksmithing_anvil
    products/bigcorp_databases_oracle

    然后在你的 map /减少你可以使用 key filtering :
    // BigCorp News items
    {
    "inputs":{
    "bucket":"news",
    "key_filters":[["starts_with", "bigcorp"]]
    }
    // ... rest of mapreduce job
    }

    // Acme Blacksmithing items
    {
    "inputs":{
    "bucket":"products",
    "key_filters":[["starts_with", "acme_blacksmithing"]]
    }
    // ... rest of mapreduce job
    }

    // News for all clients from Feb 12th to 19th
    {
    "inputs":{
    "bucket":"news",
    "key_filters":[["tokenize", "_", 2],
    ["between", "2011-02-12", "2011-02-19"]]
    }
    // ... rest of mapreduce job
    }

    关于riak - 如何在 Riak 中构建数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052154/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com