如何用阿里云HiTSDB时序数据库实现百万级海量数据点秒级读写

2017/06/14 15:35
阅读数 881

阅读全文

 

2017云栖大会·上海峰会上,阿里云发布了面向物联网场景的HiTSDB时序数据库,可支持每秒1000万时序数据点写入;具备PB级别的数据存储能力,提供高效压缩算法,整体存储成本降低90%;提供时序数据插值计算,降精度计算,时间纬度聚合计算,空间纬度聚合计算的能力。

HiTSDB的能力脱胎于阿里巴巴多年的实践,面对集群规模拥有独特的分析计算能力,本文将从电商视角对HiTSDB进行深度剖析。

阿里巴巴拥有着全球最大的电商交易平台,2016双十一单日成交额突破了1207亿。而这个庞大的业务规模的背后是由上千个应用服务,几万台服务器,每天上亿的服务调用来支撑的。

image

如此大规模的应用监控需要全局监控服务APM(ApplicationPerformance Monitoring)来完成,通过采集各个服务和机器的运行数据和业务指标进行数据跟踪监控,就可以全局的掌握业务和服务运行情况,帮助进行故障诊断和业务评估。

阿里的全局监控服务叫做Ali360,通过Ali360可以进行全局的业务和服务监控。Ali360技术挑战题在于集群规模。最初面临的规模就是几百个应用,几万台的机器规模,要对每一台机器进行QPS等相关服务指标监控,应用系统依据Metric规范产生数据,上千万的数据点写入,上百万的数据点查询,这个规模是相当惊人的。

image
(天猫双11大屏也是APM的一部分)

同时,Ali360的平均写入维持在200W/S,每个数据点平均大小为200字节,那么每秒写入量在0.4G,每天就要产生34T的数据,而APM这种常见的时序领域的应用,通常数据写入都是持续进行的,按照这样的写入速度,那么每年业务存储所需存储成本变得非常的巨大,迫切需要进行成本的优化。

image

面对这个巨大的挑战,我们必须要寻找一条最合适的路。

最先排除掉的方案是通过关系型数据库的方案。百万级别的数据写入给关系数据库带来的写入压力巨大,由于关系数据库为了支持多维查询而创建的索引导致写入效率下降,同时索引存储空间也造成了整个方案的成本巨大,性能也不理想。

第二个排除的方案是NoSQL的存储方案。KV的问题在于数据的append操作通常是转化为get 和put的操作,比较适合大量小的热数据,并不适合这种监控数据的大数据写入,数据写入的效率也非常差。

从监控的业务形态和数据特点来分析,最终我们找到了阿里云HiTSDB 时序数据库来解决这个问题。由于业务监控数据最终的呈现形态都是基于时间纬度的监控数据,技术领域对这些呈现的数据统称为“TimeSeries Data 时序数据”,对于某一个指标的一系类持续数据点系列称为“TimeLine 时间线”。那么监控系统最终呈现的就是一系列的TimeLines。而时序数据库则是针对时序数据的管理进行特殊优化的数据库产品。

image

系统按照Metric的规范的通过HiTSDB提供的接口进行任意的数据写入。写入的信息可以包括任意的Tag,如:机房,区域,IP,应用,服务,方法名等以及写入指标如:异常数,QPS,TPS等,通过HiTSDB接口将时序数据写入到HiTSDB存储,HiTSDB支持任意纬度的时序数据监控应用进行监控指标的查询,以时间线的方式对应用提供服务。

 

阅读全文

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部