智能监控利器:时序数据库

本文作者 彭冬

微博广告基础架构团队负责人、技术专家,商业大数据平台及智能监控平台发起人,目前负责广告核心引擎基础架构、Hubble智能监控系统、商业基础数据平台(D+)等基础设施建设。关注计算广告、大数据、人工智能、高可用系统架构设计、区块链等方向。在加入微博之前,曾就职于百度负责大数据平台建设,曾担任趣点科技联合创始人兼CTO等职位。毕业于西北工业大学,曾在国内外知名期刊发表多篇学术论文,拥有9项发明专利。

什么是时序数据

在介绍时序数据库之前,我们先来看看什么是时序数据。时序数据就是基于时间排序的数

据,再通过时间坐标将这些数据连接起来,形成一个折线图,直观地展示一个指标在过去一段时间内的走势和规律,帮助定位数据异常点。

时序数据库就是用来存储这些时序数据的数据库。与传统数据库相比,时序数据库需要能

够长时间保存数据,且需要实时展示,这就要求时序数据库能做到持久化存储,以及数据读写的高性能。此外,对于一些复杂的场景,比如广告业务的多维度多指标,时序数据库还需要做到多维查询、指标聚合等。图 8-1 展示了某服务最近 6 小时的 QPS 走势。

图8-1 QPS走势图

时序数据库的特点

  • 数据写入
  • 数据实时写入。
  • 高并发写入。
  • 无须更新或删除操作(除了修复数据)。
  • 连续性:时序数据会按照指定的时间粒度持续写入。
  • 数据读取
  • 写多读少:时序数据的写入是持续的,但是一般并不会持续地读取数据,只有在需要 的时候才会查询最近一段时间内的指定维度指标。
  • 多时间粒度读取:一般来说,我们会对最近 7 天的数据以一个比较细的时间粒度来存储一个相对精确的值,而对于 7 天或者一个月以前的数据,通常会把它们聚合成一个比较粗的时间粒度存储,比如按照小时或者天来存储,以便节省磁盘空间,提高读取历史数据的效率。
  • 指定维度读取:在广告业务中,时序数据存储的维度可能有成百上千个,那么在读取 数据时不会把所有的维度都读取出来,因为这样做不仅没必要,而且对系统的 I/O 也是一个极大的考验。所以,只会选择读取所需要的维度和指标。
  • 实时聚合:通常实时的时序数据存储的是不同维度下的一个比较细的时间粒度数据, 查询时需要在不同维度下对一个或多个指标进行各种聚合的操作,如 sum、max、avg 等。
  • 数据存储
  • 按列存储:通过数据的查询特征,可以发现时序数据更适合将一个指标放在一起存储,任何列都能被作为索引。在读取数据时,只会读取所需要的维度所在的列,这样就可以大大减小 I/O 的损耗和内存的使用,提高执行效率。
  • 以不同的时间粒度存储:数据的读取特征决定了可以将历史数据聚合成一个比较粗的 粒度存储,将最近的数据以一个比较细的粒度存储,这样可以大大减少磁盘的使用空 间。
  • 冷热存储:通常我们只会查询最近一天或者 7 天的数据,而半年或一年以前的数据使 用率很低,因此可以把历史的冷数据和最近的热数据分开存储,以提高读取数据的效 率,减少磁盘的使用空间。
  • 时序数据库的特性

上面介绍的时序数据库的这些特点,决定了时序数据库具有以下特性。

  • 高并发、高吞吐量,实时写入和读取数据。
  • 高可用性、高可靠性,分布式架构、数据分片。
  • 支持海量数据存储,一般时序数据都是 TB 或 PB 级别的体量。
  • 支持数据聚合分析,满足实时的多维聚合分析。
  • 时序数据库的组成(不同的数据库定义可能不一样)
  • Timestamp:这是时序数据库的关键所在,因为是以时间排序的数据,所以需要记录所 有数据的时间。
  • Metric:需要存储的指标数据有很多,比如在广告业务中,分析用到的指标更是成千上万,那么在时序数据库中就需要通过Metric 字段来标识每个指标数据,如 QPS、Status 等
  • Dimension:数据的属性,比如数据类型、地域、年龄、性别等。而一般指标的结果都 是基于单维度或多维度分析得到的。比如在广告业务中,一个指标有时需要上百个维 度经过不同的组合得到不同的结果。
  • 时序数据库的模型

表 8-1 显示了在同一个时间、不同维度下 QPS 的变化情况。其中地域和性别就是Dimension,北京、上海等就是地域维度的类别,QPS 就是 Metric,QPS 列的数据就是 QPS 指标每秒钟在地域和性别组合维度下的值。

表 8-1 时序数据库模型

时序数据库的对比

目前,市面上的时序数据库种类繁多,比较老牌的有 Graphite、RRD Tool 等,后起之秀有InfluxDB、OpenTSDB、Prometheus 等,还有一些虽然不能定位为时序数据库,但是可以轻松实现时序数据存储的功能,支持海量数据做实时聚合运算,且功能强大,比如 Druid、Elasticsearch、ClickHouse 等。表 8-2 对比了目前主流时序数据库的优缺点。

表 8-2 主流时序数据库的优缺点

————

本文新作《智能运维:从0搭建大规模分布式AIOps系统》。本书来自作者在智能运维岗位上一路打怪升级的数载经验、心得,既有切肤之痛,也不乏高屋建瓴,更有国内一线AIOps团队的酷炫打法,还有面向未来的高瞻远瞩与精辟阐析。互联网车轮滚滚前行,如若不想让自己的脚步放慢,请直击下方阅读原文,颠覆固有的思想,智能化自己的技能。

内容简介:《智能运维:从0搭建大规模分布式AIOps系统》结合大企业的智能运维实践,全面完整地介绍智能运维的技术体系,让读者更加了解运维技术的现状和发展。同时,帮助运维工程师在一定程度上了解机器学习的常见算法模型,以及如何将它们应用到运维工作中。《智能运维:从0搭建大规模分布式AIOps系统》共分4篇。第1篇运维发展史,重点阐述当前运维的发展现状及面临的技术挑战;第2篇智能运维基础设施,重点讲述大数据场景下的数据存储、大数据处理和分析的方法与经验,以及海量数据多维度多指标的处理分析技术;第3篇智能运维技术详解,重点关注在新时期大数据时代下智能化的运维技术,包括数据聚合与关联、数据异常点检测、故障诊断和分析、趋势预测算法;第4篇技术案例详解,为大家梳理了通过开源框架ELK快速构建智能监控系统的整体方案,还将分享微博平台和微博广告两个不同业务场景下智能监控系统的技术实践。《智能运维:从0搭建大规模分布式AIOps系统》适合运维、开发、架构、DevOps工程师及广大互联网技术爱好者研读和借鉴。

原文发布于微信公众号 - 前沿技墅(Edge-Book)

原文发表时间:2018-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

私有云计算的发展与应用

似乎业界所有人都在谈论云计算。但是,虚拟化是对发展私有云战略的重要一步。如果你已经虚拟化了部分的基础设施,那么你可能比想象的更接近私有云计算。 采用云计算的好处...

37750
来自专栏企鹅号快讯

可编程技术在网络芯片上的应用

网络是数据中心里的交通枢纽,连接着所有运行应用业务的设备。没有网络,也就没有数据中心,没有互联网的今天,网络在数据中心里发挥着非常关键的作用,所以网络技术一直是...

25550
来自专栏微信公众号:Java团长

总结下我在架构师升级过程中的那些坑以及各种体会

先说明,本文说的是技术架构,而不是业务架构,另外,这个架构是指目前比较热门的高并发大数据的架构。论能力,我还达不到架构师的水平,所以我目前还在不断努力。

11210
来自专栏前沿技墅

监控系统的前世今生

微博平台监控技术负责人,负责微博平台、PC微博大规模监控系统的建设,主要关注实时大数据、运维自动化、智能化方向,2014年加入微博,之前曾在新浪、搜狐等公司从事...

33840
来自专栏web前端教室

前端新人,除了js还缺少啥?

简短截说,前端新人除了js还缺少二样东西,一是规则;二是沟通; 规则是指,日常工作中的事务性工作,例如日志,邮件,会议,记录,讨论,发言...等等这些东西。 例...

203100
来自专栏BestSDK

4种主流评论功能设计:虎扑最悬疑,豆瓣最人性

不管是在qq空间,微信朋友圈,在好友的状态下抖一波机灵,还是在新闻下面吐槽最近雾霾又严重了;不管是在纠结吃什么的时候,打开团购app看下大家的评分和点评,还是在...

73160
来自专栏安全领域

五个可预见的物联网挫折

简单的原型实现设备,与支持上亿软硬件都不同的设备之间存在巨大差异。一些故障并不会直接影响收入和用户的体验,因此可能会在早期的应用和敏捷开发迭代中被忽略。物联网的...

42880
来自专栏魏艾斯博客www.vpsss.net

百度搜索资源平台(站长工具)抓取频次归零的解决过程

有朋友找老魏说自己网站的百度抓取频次归零了,自己对网站的操作没有变化,不知道百度这次为什么这么对待自己。魏艾斯博客也是第一次见到这种情形,琢磨了一下找到思路并开...

32430
来自专栏达摩兵的技术空间

项目发布验收不严格带来思考

经常会遇到小公司的很多项目在测试环境针对测试数据库 草率的测试完之后就进行上线,然后生产环境暴露出大量问题,而且每个似乎都很严重需要马上纠正的问题。

15810
来自专栏SDNLAB

通用客户端设备(uCPE)详解

通用客户端设备(Universal customer premise equipment,uCPE)正在吸引服务提供商的注意力,AT&T目前已经宣布了其uCPE...

49560

扫码关注云+社区

领取腾讯云代金券