gpt4 book ai didi

collation - 使用 Couchbase 查看整理

转载 作者:行者123 更新时间:2023-12-04 21:16:49 27 4
gpt4 key购买 nike

我们使用 couchbase 作为我们的 nosql 存储并喜欢它的功能。
然而,我们在创建关联时遇到了一个问题
通过 View 整理。这可以被认为类似于连接操作。
虽然我们的数据集是 secret 的,但我正在说明这个模型的问题。

数据量很大,因此无法在内存中处理。假设我们有冰淇淋、邮政编码和当天平均温度的数据。
一种类型的文档包含一个邮政编码到冰淇淋映射
另一个有在特定 zip 中出售的冰淇淋的交易数据。
问题是能够根据给定日期的温度确定一组顶级冰淇淋的销售量。

我们处理这个语料库以发出两个输出,一个是邮政编码到温度映射,而另一个
代表邮政编码中的冰淇淋销售。 :

Key Value
[zip1] temp1
[zip1,ice_cream1] 1
[zip2,ice_cream2] 1

此处的 View 整理是一种在 ice_cream 销售、zip 和平均温度(即连接)之间创建关联的机制。

我们有一个限制,即当第一次看到 zip 时,温度查找仅在 24 小时内发生一次,这是有效的
当天使用的平均温度。例如,查找发生在 1 月 1 日下午 12:00,下一次查找要到 1 月 2 日下午 12:00 才会发生。
然而,在第一次查找中接受的平均温度仅对 1 月 1 日有效,而在第二次查找时仅对 1 月 2 日有效
包括前半天。
现在,当我想对涉及的时间组件进行相同的查询时,事情变得复杂了,具体地将一个地区的平均温度相关联
当天在那个 zipper 上出售的冰淇淋。当当天的平均温度为 70 华氏度时,售出 x 份 Vanilla 冰淇淋
Key Value
[y,m,d,zip1] temp1
[y,m,d,zip2,ice_cream2 ] 1
[y,m,d2,zip1,ice_cream1] 1

这对查询有一个有趣的影响,假设我查询了过去 1 天,我无法在冰淇淋和温度之间建立任何关联
第一次查找发生,因为那是两个键对齐的时候。最终结果是我在温度查询之前丢失了当天的冰淇淋计数
发生。我想知道你们中是否有人遇到过类似的问题,以及您是否知道一种模式或解决方案,以免丢失这些计数。

最佳答案

首先,欢迎来到 StackOverflow,感谢您提出的好问题。

我了解您遇到的具体问题,但我不明白的是您的数据规模 - 所以如果我似乎在我将要提出的建议方面走错了路,请原谅我。我们可以根据它如何满足您的特定需求来反复研究这个答案。

首先,您发现 CB 在其查询中不支持连接。我将建议,如果正确使用 CB,这并不是真正的问题。如何使用 Couchbase 过滤数据的概念模型如下:

  • 创建尽可能精确的 CB View
  • 使用 View
  • 从 CB 中尽可能精确地选择记录
  • 在发送到应用程序的其余部分之前,根据需要在数据访问层(也执行任何连接)中细过滤记录。

  • 根据您的描述,在我看来,您的 CB View 查询似乎太聪明了。我建议采取以下两种行动方案之一:
  • 当第二个 View 查询发生这种情况时,手动查找您想要的值。
  • 查找比您需要的更多的记录,然后进行精细过滤(上面的第 3 步)。
  • 关于collation - 使用 Couchbase 查看整理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21322534/

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