【发布时间】:2014-01-24 01:06:53
【问题描述】:
我们正在使用 couchbase 作为我们的 nosql 存储,并且喜欢它的功能。 然而,我们在创建关联时遇到了一个问题 通过视图整理。这可以被认为类似于连接操作。 虽然我们的数据集是机密的,但我正在说明这个模型的问题。
数据量很大,无法在内存中处理。假设我们有关于冰淇淋、邮政编码和当天平均温度的数据。 一种类型的文档包含邮政编码到冰淇淋的映射 另一个有以特定 zip 销售的冰淇淋的交易数据。 问题是能够确定一组在给定一天的温度下销售的顶级冰淇淋。
我们处理这个语料库以发出两个输出,一个是邮政编码到温度映射,另一个是 代表邮政编码中的冰淇淋销售。 :
Key Value
[zip1] temp1
[zip1,ice_cream1] 1
[zip2,ice_cream2] 1
这里的视图排序是一种在冰淇淋销售、拉链和平均温度之间创建关联的机制,即连接。
我们有一个限制,即温度查询在 24 小时内仅在首次看到 zip 时发生一次,这是有效的 当天使用的平均温度。例如,查找发生在 1 月 1 日下午 12:00,下一次查找要到 1 月 2 日下午 12:00 才会发生。 然而,在第一次查找中接受的平均温度仅对 1 月 1 日有效,而在第 2 次查找中仅对 1 月 2 日有效 包括前半天。 现在,当我想对涉及的时间组件进行相同的查询时,事情变得复杂了,具体地关联一个 那天在那个 zip.eg 中出售的冰淇淋。 x 香草冰淇淋在当天平均气温为 70 华氏度时售出
Key Value
[y,m,d,zip1] temp1
[y,m,d,zip2,ice_cream2 ] 1
[y,m,d2,zip1,ice_cream1] 1
这对查询有一个有趣的影响,比如说我查询了过去 1 天,我无法在冰淇淋和温度之间建立任何关联 第一次查找发生,因为那是两个键对齐的时候。净效果是我在温度查询之前失去了那天的冰淇淋数量 发生。我想知道你们中是否有人遇到过类似的问题,以及您是否知道某种模式或解决方案以免丢失这些数据。
【问题讨论】: