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

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支持任意纬度的时序数据监控应用进行监控指标的查询,以时间线的方式对应用提供服务。

image

阿里云HiTSDB 引入了倒排索引技术可支持每秒1000万时序数据点写入,可以充分满足Ali360的600W/S 数据点写入量的业务高峰。同时HiTSDB采用分布式的架构,可以进行横向的水平扩展,理论上是不存在任何的性能瓶颈,而在实际的业务应用中,资源利用率水平维持在60%以下。

同时由于每秒写入的数据点达到几百万且监控数据是24小时不断的持续写入,实际每天要产生T级别的数据,这些数据的存储成本变得非常高。

image

HiTSDB采用Gorilla的压缩算法,可以把一个时间点压缩到1.37字节,实际应用中可以做到2字节以内,那么实际只需占用1%的存储空间,1T的原始数据写入,只需要10G左右的存储空间,整体节约了90%以上的存储成本,这个压缩效果对于业务来说节省的成本非常可观,也可以提升查询速度。

Ali360的业务里包括一项业务趋势数据的查询分析功能,通常查询的时间跨度比较丰富,比如半小时、1小时、1天,设置1个月的趋势数据。同时还要提供特定纬度的计算,如将每秒的服务调用量,按照分钟级别进行sum计算,每分钟的系统负载按照AVG进行平均计算,当查询的时间线数量增加,时间跨度拉长的时候,需要查询和计算的数据规模就迅速增长。

HiTSDB提供多种计算能力,包括时序数据插值计算、降精度计算、时间纬度聚合计算和空间纬度聚合计算等,百万数据点计算响应时间小于5秒,可以充分的满足业务查询计算需求。

除了提供接口级别的数据查询外,HiTSDB也可以和Grafana以及其他的可视化系统对接,快速实现数据的展现,对于非定制化的监控系统来说可以大大提高业务分析决策的效率。

image

事实上,除了APM应用分析外,这种对于时序数据数据的管理和使用场景也广泛应用于IoT和实时分析领域,都可以通过HiTSDB 来解决,目前这款产品即将公测,欢迎有类似需求的团队试用。

本文作者:阿里巴巴资深工程师 凤豪
原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、项目简介 本项目教程以国内电商巨头实际业务应用场景为依托,同时以阿里云ECS服务器为技术支持,紧跟大数据主流场景,对接企业实际需求,对电商数仓的常见实战指标进行了详尽讲解,让你迅速成长,获取最前沿的技术经验。 二、项目架构 版本框架:Flume、DateHub、DataWorks、MaxCompute、MySql以及QuickBI等; Flume:大数据领域被广泛运用的日志采集框架; DateHub:类似于传统大数据解决方案中Kafka的角色,提供了一个数据队列功能。对于离线计算,DataHub除了供了一个缓冲的队列作用。同时由于DataHub提供了各种与其他阿里云上下游产品的对接功能,所以DataHub又扮演了一个数据的分发枢纽工作; 据上传和下载通道,提供SQL及MapReduce等多种计算分析服务,同时还提供完善的安全解决方案; DataWorks:是基于MaxCompute计算引擎,从工作室、车间到工具集都齐备的一站式大数据工厂,它能帮助你快速完成数据集成、开发、治理、服务、质量、安全等全套数据研发工作; QuickBI & DataV:专为云上用户量身打造的新一代智能BI服务平台。 三、项目场景 数仓项目广泛应用于大数据领域,该项目技术可以高度适配电商、金融、医疗、在线教育、传媒、电信、交通等各领域; 四、项目特色 本课程结合国内多家企业实际项目经验。从集群规模的确定到框架版本选型以及服务器选型,手把手教你从零开始搭建基于阿里云服务器的大数据集群。采用阿里云ECS服务器作为数据平台,搭建高可用的、高可靠的Flume数据采集通道,运用阿里云DateHub构建中间缓冲队列并担任数据分发枢纽将数据推送至阿里自主研发的DataWorks对数据进行分层处理,采用MaxCompute作为处理海量数据的方案,将计算结果保存至MySQL并结合阿里的QuickBI工作做最终数据展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值