实时分析时间序列数据库

时间:2016-10-02 13:17:56

标签: cassandra hbase iot phoenix opentsdb

我正在寻找一个分布式时间序列数据库,该数据库可以在群集设置模式和生产就绪中自由使用,并且必须非常适合hadoop生态系统。

我有一个基本上大约150k传感器的IOT项目,它每10分钟或1小时发送一次数据,因此我试图查看具有有用功能的时间序列数据库,如聚合度量,下采样,前-aggregate(roll-ups)我在这个Google样式表文档time series database comparative中找到了这个比较。

我测试了Opentsdb,hbaserowkey的数据模型非常适合我的用例:但是需要为我的用例开发的函数是:

  • 汇总倍数指标
  • 做汇总

我已经测试了keirosDB,这是一个带有更丰富API的opentsdb的分支,它使用Cassandra作为后端存储,事实是他们的API完成了我所寻找的下采样汇总查询倍数指标等等。

我测试了Warp10.io和Apache Phoenix,我在这里阅读Hortonworks link它将被Ambari Metrics使用,所以我认为它也非常适合时间序列数据。

我现在的问题是,对于所有类型的请求,请求在1S以下的性能进行实时分析的最佳时间序列数据库示例:我们希望50个传感器发送的聚合数据的平均值按月重新抽样5年?

我认为这样的请求不能在1S下完成,所以我相信这些请求我们需要一些汇总/预聚合机制,但我不太确定,因为有很多工具出来在那里,我无法决定哪一个最适合我的需要。

3 个答案:

答案 0 :(得分:5)

我是Warp 10的领导,所以我的回答可以被认为是自以为是。

根据您预计的数据量,150k传感器每10分钟发送一次数据,平均每秒250个数据点,在5年内不到40B。这样的卷很容易适用于简单的Warp 10独立版,如果您以后需要更大的基础架构,则可以迁移到基于Hadoop的分布式Warp 10。

就请求而言,如果您的数据已经重新采样,那么为50个传感器提取5年的月度数据只需要3000个数据点,Warp 10可以在远远少于1秒的时间内完成,并且自动汇总只是一个问题以月度方式安排WarpScript代码,没什么特别的。

最后,在与Hadoop生态系统的集成方面,Warp 10在Pig,Spark,Flink和Storm中集成了WarpScript语言。使用Warp10InputFormat,您可以从Warp 10平台获取数据,或者您可以使用任何其他InputFormat加载数据,然后使用WarpScript对其进行操作。

答案 1 :(得分:0)

在OVH,我们是@OvhMetrics的重度用户,它依赖于Warp10 / HBase,我们使用OpenTSDB / WarpScript / PromQL / ...提供协议抽象。

我对Warp10不感兴趣,但它对我们来说非常成功。关于扩展挑战和WarpScript可以涵盖的用例。

大多数情况下,我们甚至不利用hadoop / flink集成,因为使用实时WarpScript API可以轻松解决客户需求。

答案 2 :(得分:0)

对于实时分析,您可以尝试usort(由Apache维护的开源项目),也可以签出专门用于IoT的数据库:DruidGridDB。最好的方法是自己测试这些数据库,看看它们是否适合您的需求。您也可以将这些数据库作为接收器连接到Kafka。

在处理物联网项目时,需要预测将来是否需要维护大数据集,或者是否对下采样数据感到满意。某些TSDB像InfluxDB一样具有良好的压缩能力,但是其他TSDB可能无法扩展到数十TB,因此,如果您认为需要进行大规模扩展,还可以寻找具有横向扩展体系结构的扩展。