【发布时间】:2012-06-25 08:34:17
【问题描述】:
我的数据
主要是监控数据,以 Timestamp: Value 的形式传递,对于每个受监控的值,在每个受监控的设备上。它通过许多设备和许多监控值定期收集。
此外,它还有一个古怪的特点,即许多这些数据值都是从源头导出的,并且计算会不时发生变化。这意味着我的数据被有效地版本化,并且我需要能够仅调用最新版本的计算中的数据。 注意:这不是覆盖旧值的版本控制。我只是有时间戳截断,超过它的数据会改变其含义。
我的使用情况
在下游,我将对数据进行各种未定义的数据挖掘/机器学习用途。目前还不清楚这些用途是什么,但很明显我将用 Python 编写所有下游代码。此外,我们是一家非常小的商店,所以我真的只能处理设置、维护和与下游应用程序接口方面的如此多的复杂性。我们只是没有那么多人。
选择
我不允许使用 SQL RDBMS 来存储这些数据,所以我必须找到合适的 NoSQL 解决方案。以下是我目前发现的:
- 卡桑德拉
- 在我看来完全没问题,但似乎一些主要用户已经离开了。这让我想知道它是否不会成为一个充满活力的生态系统。这个 SE 帖子似乎有好话要说:Cassandra time series data
- 累积
- 同样,这看起来不错,但我担心这不是一个主要的、积极开发的平台。看起来这会让我有点缺乏工具和文档。
- MongoDB
- 我对 Mongo 人群有一种可能是非理性的强烈厌恶,我正在寻找任何理由放弃它作为解决方案。在我看来,Mongo 的数据模型对于具有这种静态、规则结构的事物来说都是错误的。我的数据甚至按顺序排列(并且必须保持不变)。也就是说,每个人和他们的母亲似乎都喜欢这个东西,所以我真的在尝试评估它的适用性。请参阅此帖子和许多其他 SE 帖子:What NoSQL DB to use for sparse Time Series like data?
- HBase
- 这是我目前的方向。它似乎是 Cassandra 的继任者,它为我的问题提供了一种完全可用的方法。也就是说,它是一项重要的技术,如果我选择它,我担心是否真的知道我要注册的是什么。
- OpenTSDB
- 这基本上是一个时间序列特定的数据库,建立在 HBase 之上。完美,对吧?我不知道。我正试图弄清楚另一层抽象能给我带来什么。
我的标准
- 开源
- 适用于 Python
- 适合小团队
- 非常有据可查
- 具有利用有序时间序列数据的特定功能
- 帮助我解决一些版本化数据问题
那么,哪个 NoSQL 数据库实际上可以帮助我满足我的需求?它可以是任何东西,无论是否来自我的列表。我只是想了解哪个平台实际上有代码,而不仅仅是使用模式,这些代码支持我的超级具体、很好理解的需求。我不是在问哪个最好或哪个更酷。我正在尝试了解哪种技术最能原生地存储和操作此类数据。
有什么想法吗?
【问题讨论】:
-
如果“我不允许使用 SQL RDBMS 存储此数据”,您可能会遇到根本问题。选择技术解决方案应该没有偏见,并且应该根据手头问题的价值主张来做出技术产品/服务的决策。
标签: mongodb cassandra hbase accumulo nosql