实时分析时间序列数据库

Real time analytics Time series Database

我正在寻找一个分布式时间序列数据库,它可以在集群设置模式和生产就绪中免费使用,而且它必须很好地适应 hadoop 生态系统。

我有一个 IOT 项目,基本上大约有 150k 个传感器,每 10 分钟或一小时发送一次数据,所以我正在尝试查看具有有用功能的时间序列数据库,例如聚合指标、下采样、预-聚合(汇总)我在这个 Google 样式表文档 time series database comparative 中发现了这个比较。

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

我也测试了 keirosDB,它是 opentsdb 的一个分支,具有更丰富的 API 并且它使用 Cassandra 作为后端存储 事情是他们的 API 完成了我寻找的下采样汇总查询多个指标等等。

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

我的问题是,到目前为止,什么是最好的时间序列数据库来对所有类型的请求示例进行请求性能低于 1 秒的实时分析:我们想要 50 个传感器在一段时间内发送的聚合数据的平均值5 年按月重采样 ?

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

我是 Warp 10 的负责人,所以我的回答可以被认为是自以为是。

鉴于您的预计数据量,15 万个传感器每 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 操作它们。

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

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

大多数时候我们甚至不利用 hadoop/flink 集成,因为我们的客户需求可以通过实时 WarpScript API.

轻松满足

对于实时分析,您可以尝试 Druid, an open source project maintainted by Apache, or you can also check out database specialized for IoT: GridDB and CrateDB。最好的方法是自己测试这些数据库,看看它们是否适合您的需要。您还可以将这些数据库作为接收器连接到 Kafka。

在处理 IoT 项目时,您需要预测将来是否需要维护大型数据集,或者您是否对下采样数据感到满意。一些 TSDB 像 InfluxDB 一样具有很好的压缩性,但其他的可能无法扩展到数十 TB 以上,所以如果你认为你需要扩展,也可以寻找一个具有横向扩展架构的。