用于存储数组的NoSQL解决方案?
我需要一个可扩展的 NoSql
解决方案,用来存储很多字段和时间戳的数据,数据的存储方式是用 数组。这里的键是字段和时间戳的组合。
数据的存储格式如下:
键 --> "字段名.年月日.时分秒"
值 --> [v1, v2, v3, v4, v5, v6] (v1到v6都是 浮点数
)
举个例子,假设:
字段名 = "TOMATO"
时间戳 = "20060316.184356"
值 = [72.34, -22.83, -0.938, 0.265, -2047.23]
我需要能够根据 字段名
和 时间戳
的组合来获取 值(整个数组)。
查询 值["TOMATO.20060316.184356"] 会返回数组 [72.34, -22.83, -0.938, 0.265, -2047.23]。读取数组的速度应该尽可能快。
此外,我还需要一种方法,可以在数组中直接存储一个标量值。假设我想把时间戳为 2006/03/16.18:43:56
的 TOMATO
的第一个元素设置为 500.867
。在这种情况下,我需要一个快速的机制来做到这一点,比如:
值["TOMATO.20060316.184356"][0] = 500.867 (这会在磁盘上更新)
有没有想法哪个 NoSql
解决方案最适合这个需求(如果有 python
接口那就更好了)?我在寻找一个快速而强大的解决方案。我的数据需求将增长到大约 20[TB]。
2 个回答
听起来MongoDB会很适合你。PyMongo是它的接口。
你的数据结构很清晰且规律,那么使用NoSQL数据库相比传统数据库有什么好处呢?
我觉得MySQL Cluster非常适合你的问题。
补充:
@user540009:我同意,对于单台机器或镜像实例的MySQL来说,当数据超过半个TB时,确实会出现严重的速度问题,而且没有人想手动分片;MySQL Cluster就是为了解决这个问题的,我听说过(虽然没有亲自尝试过)可以支持到110TB的实现。