用什么的NoSQL数据库对于稀疏时间序列数据等?(What NoSQL DB to use for

2019-07-29 00:08发布

我打算在那里我将与时间序列,如数据打交道,想给那些闪亮的新的NoSQL DB的尝试之一,并正在寻找一个推荐方项目。

对于(成长)一套symbols我会的(名单timevalue )元组(随时间提高)。 并非所有的symbols将被更新; 一些symbols可能,而其他人可能不会更新,全新的symbols可以被添加。

因此,数据库应该允许:

  • 添加初始一个元素(元组)列表符号。 例如,A:[(2012-04-14 10点23分,50)]
  • 更新的符号与新的记录。 (追加该元组到该符号的列表)。
  • 读出的数据为给定的符号。 (理想情况下甚至让我指定哪些数据应当返还的时间框架)

在创建和更新操作应该可能是原子的。 如果读取多个符号一次是可能的,这将是有趣的。

性能并不重要。 更新/创建大致会每隔几个小时发生。

Answer 1:

我认为,从字面上所有主要NoSQL数据库将支持这一要求,特别是如果你实际上并没有大量的数据(这引出了一个问题,为什么NoSQL的?)。

这就是说,我不得不最近设计和工作用的NoSQL数据库的时间序列数据,从而可以给上设计,然后可以推断,所有其他一些输入。

我们选择的数据库是Cassandra ,而我们的设计如下:

  • 所有的“符号”单个密钥空间
  • 每个符号是一个新行
  • 每一次进入是对于相关行新列
  • 每个值(可以是多于一个单值)的时间项的值部

这可以让你达到你要求的一切,最明显的是读取数据的一个符号,以及使用范围(如有必要,柱范围通话)。 虽然你说的表现并不重要,这对我们来说,这是相当高性能的也是 - 所有数据对任何单个符号被定义排序(列名排序),并总是存储在同一节点上(简单查询无交叉节点的通信)。 最后,这样的设计转化井有具有动态列其他NoSQL数据库。

继此,这里使用的MongoDB(并加盖集合如果需要的话)的时间序列存储一些信息: MongoDB中的时间序列数据库

最后,这里的SQL VS的NoSQL的时间序列的讨论: https://dba.stackexchange.com/questions/7634/timeseries-sql-or-nosql

我可以添加到讨论如下:

  • 学习曲线的NoSQL会更高,你不免费获得更多的灵活性和功能的“软成本”条款。 谁将会在操作上支持这个数据库?
  • 如果您希望此功能在未来的增长(无论是作为多个字段添加到每个时间条目,或符号或符号的时间序列的大小数方面更大的容量)的话,肯定与NoSQL的去。 灵活性的好处是巨大的,对双方你(与上述设计)的可扩展性“每个符号”和“数目的符号”的基础上几乎是无限的(我说的几乎是无限的 - 每行的最大列数是在数十亿美元,最大每个密钥空间行是无界的,我相信)。


Answer 2:

看看opentsdb.org其使用HBase的一个开源的时间序列数据库。 他们一直对他们如何存储TS智能。 大家都记录在这里: http://opentsdb.net/misc/opentsdb-hbasecon.pdf



文章来源: What NoSQL DB to use for sparse Time Series like data?