目前我使用Mongodb记录统计数据和保存。我将原始展示记录到日志集合中,然后处理'do findandmodify以取消日志并使用upsert聚合到预先计算的集合中(类似于rainbird如何使用twitter)。 http://techcrunch.com/2011/02/04/twitter-rainbird/
我在父母,孩子,孩子等方面进行聚合,这样可以快速,轻松地查询统计数据。
我使用(在mongo中)一个由{Item_id,Hour}和upsert组成的键(很多)
我想知道Riak是否有一个很好的方法来解决同样的问题,以及我将如何实现它。
答案 0 :(得分:1)
简短回答:我不认为Riak支持upsert
- 就像操作一样。
答案很长:Riak是一个键值存储,它将存储的值视为不透明数据。但是在未来,Riak可以考虑添加对HTTP PATCH的支持,这可能允许支持类似于upsert的操作。还有另一类操作(比较和设置)也很有趣,但支持这些操作肯定要复杂得多。
答案 1 :(得分:0)
这与Riak一起使用的方式取决于您用于Riak的存储后端。
Bitcask,当前的默认存储后端,使用日志结构的哈希树作为内部存储机制。当您向Riak写入新记录时,会将全新的数据副本存储在磁盘上。最终,将发生bitcask的压缩,并且将从bitcask文件中删除旧数据的副本。
任何put
进入Riak实际上都是一个upsert - 如果数据不存在,将插入一条新记录。否则,将通过使旧值到期并使最新值成为当前值来更新现有值。