运维监控利器——时序数据库

随着IT系统复杂度增加、运维监控数据激增,传统数据库在对这些时序数据进行存储、查询、分析等处理操作时捉襟见肘,迫切需要一种专门针对时序数据来做优化的数据库系统,即时间序列数据库。

一、什么是时序数据库

在介绍时序数据库之前,首先了解一下什么是时序数据。时序数据是指按照时间顺序记录系统、设备状态变化的数据,运维监控系统如APM(应用性能监控)、基础服务监控、大型机监控等监控采集的数据大部分是时序数据。时序数据看起来就是一个时间轴,表明了一些数据维度随着时间的变化,通常这些数据以插入为主,没有什么更新操作。由于这些特点,时序数据库诞生了。时序数据库全称为时间序列数据库 Time Series Database (TSDB),是用于存储和管理时间序列数据的专业化数据库,也是用于优化摄取、处理和存储时间戳数据的数据库。时序数据库的目标是实现高性能的读写,实时分析,其被广泛应用在设备信息采集、金融数据分析及可视化等众多场景当中。与常规的关系数据库SQL相比,最大的区别在于,时序数据库是以时间为索引的规律性时间间隔记录的数据库。

二、时序数据库的特点

1、高吞吐量写入能力

这是针对时序业务持续产生海量数据这么一个特点量身定做的,当前要实现系统高吞吐量写入,必须要满足两个基本技术点要求:系统具有水平扩展性和单机LSM体系结构。系统水平扩展是指能以集群化部署系统、支持动态扩缩容,LSM体系结构是用来保证单台机器的高吞吐量写入,LSM结构下数据写入只需要写入内存以及追加写入日志,这样就不再需要随机将数据写入磁盘,HBase、Kudu以及Druid等对写入性能有要求的系统目前都采用这种结构。

2、数据分级存储/TTL

这是针对时序数据冷热性质定制的技术特性。数据分级存储要求能将最近小时级别的数据放到内存中,将最近天级别的数据放到SSD,而更久远的数据会放到更加廉价的HDD或者直接使用TTL过期淘汰掉。

3、高压缩率

提供高压缩率有两个方面的考虑,一方面是节省成本,另一方面是压缩后的数据可以更容易保证存储到内存中。

4、高效时间窗口查询能力

时序业务的查询需求分为两类,一是实时数据查询,反映当前监控对象的状态;二是主要查询某个时间段的历史数据,由于历史数据的数据量非常大,所以需要对时间窗口中的大量数据查询进行优化。

5、多维度查询能力

时序数据通常会有多个维度的标签来刻画一条数据。如何根据随机几个维度进行高效查询是必须要解决的一个问题,这个问题通常需要考虑位图索引或者倒排索引技术。

6、高效聚合能力

时序业务一个通用的需求是聚合统计报表查询,比如哨兵系统中需要查看最近一天某个接口出现异常的总次数,或者某个接口执行的最大耗时时间。这样的聚合实际上就是简单的count以及max,但是如何能高效地在巨量数据的基础上将满足条件的原始数据查询出来并聚合,且统计的原始值可能会因时间久远而不在内存中,这些问题使得这是一个非常耗时的操作。目前业界比较成熟的方案是使用预聚合,即在数据写进的时候就完成基本聚合操作。

7、批量删除能力

时序业务对于过期的数据需要进行批量删除操作。

三、总结

由于运维监控中的数据一般包含以下特性,而这些特性也正是时序数据库所能够覆盖的。

所以当运维监控数据是时序数据时,不妨考虑应用时序数据库做数据存储。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值