2011-04-07 116 views
0

我需要一个可扩展NoSql溶液来存储数据作为阵列用于许多领域&时间戳,其中,所述密钥是fieldtimestamp的组合。NoSQL解决方案存储阵列?

数据将被存储在以下方案:

KEY - > “FIELD_NAME.YYYYMMDD.HHMMSS”

VALUE - > [V1,V2,V3,V4,V5 ,V6(v1..v6只是floats

例如,假设:

FIELD_NAME =“TO MATO”

TIME_STAMP = “20060316.184356”

VALUES = [72.34,-22.83,-0.938,0.265,-2047.23]

我需要能够检索VALUE(整个阵列)给出FIELD_NAME & TIME_STAMP的组合。

查询VALUES [ “TOMATO.20060316.184356”]将返回向量[72.34,-22.83,-0.938,0.265,-2047.23]。数组的读取应该尽可能快。

然而,我还需要一种方法来在数组内存储(就地)标量值。假设我想在时间戳2006/03/16.18:43:56上将TOMATO的第一个元素指定为500.867。在这种情况下,我需要有一个快速的机制,这样做的 - 是这样的:

VALUES [ “TOMATO.20060316.184356”] [0] = 500.867(这将更新磁盘)

任何想法NoSql解决方案最适合这个(大加,如果它有python接口)?我正在寻找一个快速而强大的解决方案。我的数据需求将增长到20 [TB]左右。

+2

的可能重复的[溶液的NoSql存储20 \ [TB \]数据,作为矢量/阵列的?](http://stackoverflow.com/questions/5560394/nosql-solution-to-store-20tb-of -data-as-vector-array) – 2011-04-07 00:52:13

回答

0

您的数据是高度结构化和规则的;你看到在NoSQL vs更传统的数据库中有哪些好处?

我认为MySQL Cluster(http://dev.mysql.com/downloads/cluster/)听起来是为您的问题量身打造的。

编辑:

@ user540009:我同意有单台机器上的严重减速或超过半TB的的MySQL镜像情况下,没有人愿意要处理手动分片; MySQL集群是为了解决这个问题,我已经读的(虽然没有亲自与扮演)实现高达110兆兆字节。

+0

有与MySQL结垢严重的问题,当你得到这样的尺寸(几十[TB的]);与NoSql,我可以水平扩展。 – user3262424 2011-04-07 04:02:06

3

听起来像MongoDB将是一个很好的选择。 PyMongo是api。

+0

谢谢。你觉得它比'cassandra'更适合吗? – user3262424 2011-04-07 00:55:00

+0

@ user540009我确实,是的。但我有偏见。 :) – Alex 2011-04-07 00:56:15

+0

这是为什么(偏见...)? – user3262424 2011-04-07 00:57:29