jsm*_*h54 10 hbase mongodb cassandra nosql accumulo
它主要监视每个受监视设备上以每个受监视值的Timestamp:Value形式传递的数据.它经常通过许多设备和许多监控值收集.
此外,它具有许多这些数据值的奇特特征,这些数据值是在源处导出的,计算会不时变化.这意味着我的数据有效版本化,我需要能够只调用最新版本的计算数据. 注意:这不是旧值被覆盖的版本控制.我只是有时间戳截止,超出该截止时间数据会改变其含义.
在下游,我将对数据进行各种未定义的数据挖掘/机器学习用途.目前尚不清楚这些用途是什么,但很明显我将用Python编写所有下游代码.此外,我们是一个非常小的商店,所以我真的只能处理下游应用程序的设置,维护和接口这么多的复杂性.我们没有那么多人.
我不允许使用SQL RDBMS来存储这些数据,所以我必须找到合适的NoSQL解决方案.这是我到目前为止所发现的:
那么,NoSQL数据库实际上可以帮我解决我的需求呢?它可以是我的清单中的任何东西.我只是想了解哪个平台实际上有代码,而不仅仅是使用模式,这些代码支持我的超级特定,易于理解的需求.我不是问哪一个最好或哪一个更酷.我试图了解哪种技术可以最本地存储和操作此类数据.
有什么想法吗?
听起来你正在描述Cassandra最常见的用例之一.时间序列数据通常非常适合cassandra数据模型.更具体地说,许多人存储您所描述的度量/传感器数据.看到:
至于你对社区的关注,我不确定是什么给你这种印象,但是有相当大的社区(参见irc,邮件列表)以及越来越多的cassandra用户.
http://www.datastax.com/cassandrausers
关于您的标准:
我还要注意到,Accumulo,HBase和Cassandra都具有基本相同的数据模型.对于每个数据库提供的特定功能,您仍会发现有关数据模型的细微差别,但基础知识将相同.
三者之间的较大差异将是系统的架构.Cassandra从亚马逊的Dynamo中获取其架构.群集中的每个服务器都是相同的,并且设置起来非常简单.HBase和Accumulo或更多BigTable的直接克隆.它们具有更多移动部件,并且需要更多设置/类型的服务器.例如,设置HDFS,Zookeeper和HBase/Accumulo特定服务器类型.
免责声明:我为DataStax工作(我们与Cassandra合作)
我只有 Cassandra 和 MongoDB 的经验,但我的经验可能会增加一些东西。
那么您基本上是在做基于时间的指标吗?
好吧,如果我理解正确的话,您可以使用时间戳作为版本控制机制,以便您可以根据某个时间戳进行查询,比如说要获取最新的计算结果,您可以根据指标 ID 或其他内容获取 ts DESC 并去掉第一行?
有时听起来像是版本化的键值存储。
考虑到这一点,我可能不会推荐我使用过的两者中的任何一个。
Cassandra 太严格了,太传统了,太基于你的查询方式,以至于你只能从列族(我猜你想用图表来绘制这些指标)中创建一个图表数据枢轴,这太疯狂了,这就是为什么我放弃了它。至于搜索(Facebook 使用它,仅此而已),也没有那么令人印象深刻。
MongoDB,嗯,我喜欢 MongoDB,我是用户组中的精英,如果您没有使用键值存储策略,它可以在这里工作,但最终如果您没有下定决心并且您不喜欢那么让我第一个说:不要使用它!你不会擅长你不喜欢的技术,所以远离它。
虽然我会想象这种情况在 Mongo 中发生的情况很像:
{
_id: ObjectID(),
metricId: 'AvailableMessagesInQueue',
formula: '4+5/10.01',
result: NaN
ts: ISODate()
}
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式查询计算的最新版本:
var results = db.metrics.find({ 'metricId': 'AvailableMessagesInQueue' }).sort({ ts: -1 });
var latest = results.getNext();
Run Code Online (Sandbox Code Playgroud)
这将输出您在上面看到的文档结构。在不了解更多具体信息的情况下,您希望如何查询以及一般服务器和应用程序场景等,这就是我能想到的最好的。
我喜欢 HBase 上的这个线程:http://mail-archives.apache.org/mod_mbox/hbase-user/201011.mbox/%3C5A76F6CE309AD049AAF9A039A39242820F0C20E5@sc-mbx04.TheFacebook.com%3E
这可能会令人感兴趣,它似乎支持 HBase 是一个很好的基于时间的键值存储的论点。
我个人没有使用过 HBase,所以不要认真对待我所说的任何内容......
我希望我已经添加了一些内容,如果没有,您可以尝试缩小您的标准,以便我们可以回答更专门的问题。
希望能有点帮助,
| 归档时间: |
|
| 查看次数: |
3516 次 |
| 最近记录: |