我的数据
它主要监视每个受监视设备上以每个受监视值的Timestamp:Value形式传递的数据.它经常通过许多设备和许多监控值收集.
此外,它具有许多这些数据值的奇特特征,这些数据值是在源处导出的,计算会不时变化.这意味着我的数据有效版本化,我需要能够只调用最新版本的计算数据. 注意:这不是旧值被覆盖的版本控制.我只是有时间戳截止,超出该截止时间数据会改变其含义.
我的用法
在下游,我将对数据进行各种未定义的数据挖掘/机器学习用途.目前尚不清楚这些用途是什么,但很明显我将用Python编写所有下游代码.此外,我们是一个非常小的商店,所以我真的只能处理下游应用程序的设置,维护和接口这么多的复杂性.我们没有那么多人.
选择
我不允许使用SQL RDBMS来存储这些数据,所以我必须找到合适的NoSQL解决方案.这是我到目前为止所发现的:
- 卡桑德拉
- 看起来对我很好,但似乎有些主要用户已经转移.这让我想知道它是不会成为一个充满活力的生态系统.这篇SE帖子似乎有好话要说:卡桑德拉时间序列数据
- Accumulo
- 再次,这似乎很好,但我担心这不是一个主要的,积极开发的平台.看起来这会让我对工具和文档有点匮乏.
- MongoDB的
- 我对Mongo人群有一种,也许是非理性的,强烈的厌恶,我正在寻找任何理由将其作为一种解决方案.在我看来,对于具有这种静态,规则结构的东西,Mongo的数据模型是完全错误的.我的数据甚至进入(并且必须保持)订单.也就是说,每个人和他们的母亲似乎都喜欢这个东西,所以我真的想评估它的适用性.看到这个和许多其他SE帖子:NoSQL数据库用于稀疏时间序列如数据?
- HBase的
- 这是我目前正在倾向的地方.它似乎是Cassandra的继任者,对我的问题有一个完全可用的方法.也就是说,这是一项很重要的技术,如果我选择的话,我很关心真正知道我要注册的是什么.
- OpenTSDB
- 这基本上是一个基于HBase的时间序列特定数据库.完美,对吗?我不知道.我试图找出另一层抽象给我买的东西.
我的标准
- 开源
- 适用于Python
- 适合小团队
- 记录很好
- 具有利用有序时间序列数据的特定功能
- 帮助我解决一些版本化的数据问题
那么,NoSQL数据库实际上可以帮我解决我的需求呢?它可以是我的清单中的任何东西.我只是想了解哪个平台实际上有代码,而不仅仅是使用模式,这些代码支持我的超级特定,易于理解的需求.我不是问哪一个最好或哪一个更酷.我试图了解哪种技术可以最本地存储和操作此类数据.
有什么想法吗?