阿里巴巴实时数据公共层助力双11媒体直播互联网

2014-11-24    来源:IDCUN    编辑:IDCUN
今年的双11,相信大家对上面央视新闻图片中的数字大屏不会陌生了,除了媒体之外,在阿里巴巴西溪园区的媒体报告厅、指挥部等“要地”都有它的身影。当天,这一大屏在全球400多家

  今年的双11,相信大家对上面央视新闻图片中的数字大屏不会陌生了,除了媒体之外,在阿里巴巴西溪园区的媒体报告厅、指挥部等“要地”都有它的身影。当天,这一大屏在全球400多家媒体前面惊艳出场,并完美谢幕。

  阿里巴巴数据技术与产品部的实时数据公共层团队承担了这背后的实时数据计算的工作,不仅做到了后台数据全天24小时不间断,而且保证了数据的准确性。

  实时的后台数据不仅用在全球媒体大屏,阿里巴巴生意参谋的商家数据实时直播、天猫赛马的实时数据、广告投放系统的实时数据都来自实时数据公共层。

  那么,什么是数据公共层,而实时数据公共层又是什么呢?

  数据公共层,是阿里巴巴服务于全集团的基础数据中心,由数据技术与产品部承建。数据公共层分为离线数据公共层和实时数据公共层。离线数据公共层即传统的数据仓库ODS层和DW层,而实时数据公共层顾名思义,可以理解成经过清洗和加工后的“实时”基础数据。

  实时数据公共层的架构如下:

  实时数据公共层有如下特征:

  1、高性能和可扩展性

  实时计算的核心是基于Storm的实时计算引擎Galaxy和实时调度引擎Gallardo,系统的架构可以高性能、横向线性扩展。目前实时公共层主备计算集群的机器数量已接近2千台。从2012年开始,实时公共层团队经过近3年的技术积累,积累了丰富的实时计算性能优化经验。本次双11全天订单创建及支付过程有近60亿的变更量, 0点瞬时订单量超过每秒7万笔,全天日志量更是达到数百亿之多,数百个实时应用均能秒级响应。

  2、高可用性和SLA服务保障

  为了保障服务的高可用性,实时数据公共层在各个环节都做了容灾备份。如数据源层面,除了TT提供服务外,还接入了MetaQ数据源,两个数据源都可以提供交易订单数据;在数据计算层面,实时计算平台Galaxy和HBase都有多套独立提供服务。为了配合容灾,OpenAPI可以做到5秒内完成接口切换,对整个前端应用透明,使整个后台数据服务做到高可用。

  3、平衡高精度和高吞吐量

  实时数据有两大主要业务,交易和日志。交易数据要求高精度,在尽可能的情况下每一笔订单数据都不能遗漏;而日志数据则要求高吞吐量,允许一定范围内的数据误差。因此,在这两种不同的业务场景,公共层使用了不同的计算方式。在计算交易数据时,每一条消息都带有事务ID,在消息接收、消费的过程中需要对事务ID进行校验,一旦发生消息丢失可以请求数据源重发消息;而在计算日志数据时,利用了Bloom Filter特性,牺牲了精确度以换取时间和空间。

  4OneData和OneService

  由于阿里巴巴集团的业务繁多,对数据分析的需求量极其庞大,因此,阿里巴巴的数据公共层团队致力于建设一个基础的、公共的核心数据层,这里所有的数据都是经过OneData指标规范化和数据建模的,通过统一的数据服务OneService对集团的内外数据产品提供服务,从根本上避免了数据使用过程中指标定义不一致、重复建设等诸多问题。在实时数据公共层的建设过程中,通过对集团的实时交易、日志数据进行DWD建模,最终上线了100多个实时接口就服务了17个不同的团队,OneService接口每日调用次数接近1.5亿次,通过这项工作下线的重复计算任务直接节省的计算资源超过230万元。

  作者简介:

  罗金鹏,阿里巴巴集团数据技术与产品部高级技术专家,负责集团实时数据公共层和淘宝网数据公共层、应用层建设。

  殷霞,阿里巴巴集团数据技术与产品部技术专家,负责集团实时数据公共层建设,熟悉实时计算Storm架构和Hadoop、Hive、HBase等多项技术。

1
3