【问题标题】:Storing and processing timeseries with Hadoop使用 Hadoop 存储和处理时间序列
【发布时间】:2016-09-12 13:01:51
【问题描述】:
我想存储来自设备的大量时间序列。此外,这些时间序列必须经过验证,可以由操作员修改,并且必须导出到其他系统。必须找到时间序列中的漏洞。时间序列必须显示在按序列号和日期范围过滤的 UI 中。
我们已经考虑过在这个场景中使用 hadoop、hbase、opentsdb 和 spark。
你怎么看? Spark可以轻松连接opentsdb吗?
谢谢
【问题讨论】:
标签:
hadoop
apache-spark
hbase
time-series
opentsdb
【解决方案1】:
OpenTSDB 非常适合存储大量时间序列数据。在内部,它以 HBase 为基础——这意味着它必须找到绕过 HBase 限制的方法才能获得良好的性能。结果,时间序列的表示被高度优化并且不容易解码。 AFAIK,没有开箱即用的连接器可以将数据从 OpenTSDB 提取到 Spark。
以下 GitHub 项目可能会为您提供一些指导:
Achak1987's connector
如果您正在寻找可以帮助您处理时间序列的库,请查看 spark-ts - 它还包含用于缺失数据插补的有用函数。
【解决方案2】:
Warp 10 提供 WarpScript 语言,可从 Spark/Pig/Flink 使用该语言来操作时间序列并通过 Warp10InputFormat 访问存储在 Warp 10 中的数据。
Warp 10 是开源的,可从 www.warp10.io 获得
免责声明:我是 Cityzen Data 的 CTO,Warp 10 的制造商。
【解决方案3】:
看看Axibase Time Series Database,它有一个相当独特的versioning 功能来维护相同时间戳的值更改历史。启用按指标粒度后,数据库会跟踪值修改的来源、状态和时间,以进行审计跟踪或数据核对。
我们有客户使用网络 API 从 Spark 应用程序流式传输数据,通常是在数据通过附加元数据(aks 系列标签)丰富后进行下游报告。
您可以使用 REST API 或 SQL 从 ATSD 查询数据。
免责声明:我为 Axibase 工作。