阿里巴巴实时数据公共层助力双11直播
- +1 你赞过了
【天极网办公频道11月24日消息】在今年的双十一期间,大家都通过央视新闻看到了现场大屏幕上的数字,相信大家对数字大屏不再陌生,除了现场的媒体外,在阿里巴巴西溪园区的媒体报告厅、总部指挥处等地都会看到它的身影,它在当天完美的呈现在了大家的面前,并且成功的完成了任务,完美谢幕。
而在这背后的数据计算工作则是有阿里巴巴的数据技术与产品部的实时数据公共层团队抗下了这次的重任,不仅全天24小时做到了不间断后台数据更新,并且有效的保证了数据的准确性。
而阿里巴巴的实时后台数据不仅用在了这次的双十一直播上,阿里巴巴的实时数据公共层更是用在了阿里巴巴生意相关商家的数据实时直播、广告投放系统实时数据等各方面上。
那么,我们不禁会问到,数据公共层是什么?而实时数据公共层又是什么呢?
数据公共层,是基于阿里巴巴内部数据,服务于全集团的基础数据中心,由上文提到的数据技术与产品部搭建起来的。数据公共层由离线数据公共层和实时数据公共层组成,而离线数据公共层即为我们所熟知的传统数据仓库ODS层和DW层。那么实时数据公共层呢?顾名思义,实时可以理解为经过加工清洗后呈现的实时基础数据的公共层。
数据公共层,是阿里巴巴服务于全集团的基础数据中心,由数据技术与产品部承建。数据公共层分为离线数据公共层和实时数据公共层。离线数据公共层即传统的数据仓库ODS层和DW层,而实时数据公共层顾名思义,可以理解成经过清洗和加工后的“实时”基础数据,能够随时通过数据的转换实时转播呈现在大家眼前部分数据的公共层。
通过下表展现出来的实时数据公共层的架构相信可以进一步的了解到实时数据公共层的内容和结构。
实时数据公共层有以下几个特征:
高性能和可扩展性
实时数据需要实时计算作为基础和保证,那么实时计算的核心便是基于Storm的实时计算引擎Galaxy和实时调度引擎Gallardo,并且实时数据应用的系统的架构能够含有高性能、横向线性扩展。目前的实时公共层主备计算集群的机器数量已接近2千台。从2012年开始至今,阿里巴巴的实时公共层团队经过了长达3年的技术累计,有用了丰富的实时计算性能优化的经验,在双十一当天产生的订单及支付过程大概约有60亿的变更量。当天0点瞬间订单量超过了每秒7万笔,全天的日志量更是数以亿计。阿里巴巴的实时团队,凭借团队的经验已经阿里实时数据公共层的优秀表现,成功的应对了数百个实时应用秒级响应,快速的响应才能使实时数据更有说服力。
高可用性和SLA服务保障
为了使服务的高可用性得到良好的保障,实时数据公共层在各个环节及重要部署地点都做了容灾备份,例如数据源层面,不仅TT提供服务,还另外接入了MetaQ数据源,两个数据源相辅相成,都可以提供订单数据的交换。而在数据计算的层面,实时计算平台Galaxy和HBase也都配有多套的独立提供服务,能够成功的应对出现的问题。而且为了配合容灾备份和容灾保护,OpenAPI能够做到5秒内的接口转换,整个公共层的前端应用透明,这样可以使得整个后台数据反应更加快速,能够使后台数据服务做到高可用。
平衡高精度和高吞吐量
对于实时数据而言,最主要的业务有两大方面,一个是交易,一个是日志,能够成功的快速响应,高精准的提供交易数据才能尽可能使每一笔订单都不遗漏,并且对于日志数据来说,则需要拥有高吞吐量,这样才能够在瞬间完成多笔甚至上万笔的交易信息记录,在一定的范围内可以容易数据误差的存在。所以,在不同的两种业务环境下,数据公共层提供了不同的计算方式,在计算交易数据时,消息都附带事务ID,在接收信息等一系列过程中需要对ID进行校验,如果发生丢失现成则可以重新请求数据源发送;而在计算日志数据时,利用了Bloom Filter特性,用一定量的精准度换取更少的时间和更大的空间,以便得到更多了数据信息。
OneData和OneService
阿里巴巴集团旗下的业务众多,对于分析数据需求量是一个十分庞大的数字,所以,阿里巴巴的数据公共层团队致力于一个基础、公共的核心数据层。将OneData指标规范化和数据建模应用到所有数据上面,集团的内外数据产品依靠统一的数据服务OneService提供服务。可以便面数据在调取使用过程中出现的指标不一致、多次建设、重复建设等问题。在实时数据公共层的搭建过程中,通过对集团的实时交易、日志数据进行DWD建模。上线了100多个实时数据接口服务于17个不同的团队,而OneService接口调用次数接近每日1.5亿次,通过这项工作下线的重复计算任务直接节省的计算资源超过230万元。
实时数据库重要特性就是实时性,包括数据实时性和事务实时性。作为实时数据库,不能不考虑数据实时性。一般数据的实时性主要受现场设备的制约,特别是对于一些比较老的系统而言,事务实时性是指数据库对其事务处理的速度。它可以是事件触发方式或定时触发方式。事件触发是该事件一旦发生可以立刻获得调度,这类事件可以得到立即处理,但是比较消耗系统资源;而定时触发是在一定时间范围内获得调度权。作为一个完整的实时数据库,从系统的稳定性和实时性而言,必须同时提供两种调度方式。而阿里巴巴集团成功的解决了这个问题,在双十一期间依靠自身强大的实时数据公共层呈现给大家一个震撼的直播。