详解 OpenTSDB 的优劣势

随着业务的不断发展,数据压力的不断增加,越来越多的企业在数据库的选择上更加纠结,也更为慎重。智能制造、能源、金融、汽车等领域的企业,面对时序大数据业务场景,也逐渐将选型调研的目光转移至更为专业的时序数据库Time Series Database)之上。

作为一款较为流行的时序数据库,OpenTSDB 主要作为监控系统被广泛使用,一方面能够存储和检索指标(metric)数据并保存很长时间,另一方面如果需要增加功能也可以添加新指标。但是作为众多企业选型调研的 Database 之一,OpenTSDB 真的是一个优选方案吗?一起来看看它的优劣势。

OpenTSDB 是一个开源框架,使用 HBase 作为核心平台来存储和检索所收集的指标数据,可以灵活地增加指标,也可以支持采集上万台机器和上亿个数据点,具有高可扩展性。在时序数据库领域,OpenTSDB 算是入场较早的“玩家”之一,其基于 HBase 的产品模式有利也有弊:在为有 HBase 基础服务的企业降低门槛的同时,过度依赖 HBase,也为其性能、压缩效果加设了一个瓶颈。

具体来说,从专业性角度,其优劣势总结如下:

优势

  • 在数据压缩上,时间戳采用 delta 编码进行压缩,数据值采用 XOR 进行压缩;存储与计算解耦,为 IoT 场景海量数据、动态热点的数据特征量身打造,方便按照并发度和存储量按需独立扩容。
  • 采用分布式架构,支持横向水平扩展。
  • 较强的时序数据计算能力,主要体现为:插值,缺失的数据点,支持线性插值数据补全;降精度,支持预降精度和实时降精度计算,满足高效查询需求;空间聚合,支持按照不同的 tag 进行空间聚合和分组计算。

劣势

  • 依赖其他软件:比如 Gnuplot ,需要提前安装,版本要求为最小 4.2 最大 4.4。
  • 安装部署较复杂:因为底层是基于 HBase 设计的,而 HBase 又是建立在 Hadoop 集群之上,所以在部署方面相对复杂,由此还带来了后期的维护成本增加的问题;ZooKeeper 也需要单独配置部署。
  • 在使用方面,OpenTSDB 不支持 SQL 语言,对于很多用户来说并不友好,特别是之前使用关系库的用户来讲,如果支持 SQL 语言,那学习成本会降低很多。
  • 支持的函数相对较少,不支持表连接。
  • 使用过程中如遇到问题,寻求帮助的渠道较少,不像国产的时序数据库,可以轻松地找到技术人员协助支持。

而在企业的具体实践上,随着业务量的攀升,OpenTSDB 的劣势越来越明显。很多企业在使用 OpenTSDB 设计和实现监控系统时,因为其在数据存储上过于依赖 Kafka、Spark 和 HBase 等大数据组件,会导致大数据处理链路越来越长,不仅运维和使用成本越来越高,系统的可靠性保障也遭受到了极大挑战——一旦监控系统本身出现漏洞,业务系统存在的问题便将难以定位,进而就可能会造成巨大的实际业务损失。