四大模块,带你了解阿里大数据产品技术架构
2014年,马云提出:“人类正从IT时代走向DT时代”。
如果说在IT时代是以自我控制、自我管理为主,那么到了DT (Data Technology)时代,则是以服务大众、激发生产力为主。以互联网(或者物联网)、云计算、大数据和人工智能为代表的新技术革命正在渗透至各行各业,悄悄地改变着我们的生活。
在DT时代,人们比以往任何时候更能收集到更丰富的数据。
IDC的报告显示:预计到2020年,全球数据总量将超过40ZB (相当于40万亿GB),这一数据量是2011年的22倍!正在呈“爆炸式”增长的数据,其潜在的巨大价值有待发掘。数据作为一种新的能源,正在发生聚变,变革着我们的生产和生活,催生了当下大数据行业发展热火朝天的盛景。
但是,如果不能对这些数据进行有序,有结构地分类组织和存储。如果不能有效利用并发掘它,继而产生价值,那么它同时也成为一场“灾难”。无序、无结构的数据犹如堆积如山的垃圾,给企业带来的是令人昨舌的高额成本。
在阿里巴巴集团内,我们面临的现实情况是:集团数据存储达到EB级别,部分单张表每天的数据记录数高达几千亿条,在2016年“双”购物狂欢节”的24小时中,支付金额达到了1207 亿元人民币,支付峰值高达12万笔/秒,下单峰值达17.5万笔/秒,媒体直播大屏处理的总数据量高达百亿且所有数据都需要做到实时、准确地对外披露……
这些给数据采集、存储和计算都带来了极大的挑战。
在阿里内部,数据工程师每天要面对百万级规模的离线数据处理工作。阿里大数据井喷式的爆发,加大了数据模型、数据研发、数据质量和运维保障工作的难度。
同时,日益丰富的业态,也带来了各种各样、纷繁复杂的数据需求。如何有效地满足来自员工、商家、合作伙伴等多样化的需求?提高他们对数据使用的满意度,是数据服务和数据产品需要面对的挑战。
如何建设高效的数据模型和体系,使数据易用,避免重复建设和数据不一致性,保证数据的规范性?如何提供高效易用的数据开发工具?如何做好数据质量保障:如何有效管理和控制日益增长的存储和计算消耗?如何保证数据服务的稳定,保证其性能?如何设计有效的数据产品高效赋能于外部客户和内部员…..这些都给大数据系统的建设提出了更多复杂的要求。
本文介绍的阿里巴巴大数据系统架构,就是为了满足不断变化的业务需求,同时实现系统的高度扩展性、灵活性以及数据展现的高性能而设计的。
如图1.1所示是阿里巴巴大数据系统体系架构图,从图中可以清晰地看到数据体系主要分为数据采集、数据计算、数据服务和数据应用四大层次。
一、数据采集层
阿里巴巴是一家多业态的互联网公司,几亿规模的用户(如商家、消费者、商业组织等)在平台上从事商业、消费、娱乐等活动,每时每刻都在产生海量的数据。
数据采集作为阿里大数据系统体系的第一环尤为重要。因此,阿里巴巴建立了一套标准的数据采集体系方案,致力全面、高性能、规范地完成海量数据的采集,并将其传输到大数据平台。
阿里巴巴的日志采集体系方案包括两大体系: Aplus.JS 是Web端日志采集技术方案; UserTrack 是APP端日志采集技术方案。
在采集技术基础之上,阿里巴巴用面向各个场景的埋点规范,来满足通用浏览、点击、特殊交互、APP事件、H5及APP里的HS和Native日志数据打通等多种业务场景。
同时,还建立了一套高性能、高可靠性的数据传输体系,完成数据从生产业务端到大数据系统的传输。在传输方面,采用TimeTunnel (TT), 它既包括数据库的增量数据传输,也包括日志数据的传输。
TT作为数据传输服务的基础架构,既支持实时流式计算,也支持各种时间窗口的批量计算。另外,也通过数据同步工具(DataX和同步中心,其中同步中心是基于DataX易用性封装的)直连异构数据库(备库)来抽取各种时间窗口的数据。
二、数据计算层
数据只有被整合和计算,才能被用于洞察商业规律,挖掘潜在信息,从而实现大数据价值,达到赋能于商业和创造价值的目的。
从采集系统中收集到的大量原始数据,将进人数据计算层中被进一步整合与计算。
面对海量的数据和复杂的计算,阿里巴巴的数据计算层包括两大体系:数据存储及计算云平台(离线计算平台MaxCompute和实时计算平台StreamCompute)和数据整合及管理体系(内部称之为“OneData”)。
其中,MaxCompute 是阿里巴巴自主研发的离线大数据平台,其丰富的功能和强大的存储及计算能力使得阿里巴巴的大数据有了强大的存储和计算引擎: StreamCompute 是阿里巴巴自主研发的流式大数据平台,OneData是数据整合及管理的方法体系及工具。
阿里巴巴的大数据工程师在这一体系下,构建统一、规范、可共享的全域数据体系,避免数据的冗余和重复建设,规避数据烟囱和不一致性,充分发挥阿里巴巴在大数据海量、多样性方面的独特优势。
借助这一统一化数据整合及管理的方法体系,我们构建了阿里巴巴的数据公共层,并可以帮助相似大数据项目快速落地实现。
从数据计算频率角度来看:阿里数据仓库可以分为离线数据仓库和实时数据仓库。
离线数据仓库主要是指:传统的数据仓库概念,数据计算频率主要以天(包含小时、周和月)为单位——如T-1,则每天凌晨处理上一天的数据。
但是,随着业务的发展特别是交易过程的缩短,用户对数据产出的实时性要求逐渐提高,所以阿里的实时数据仓库应运而生。“双11”实时数据直播大屏,就是实时数据仓库的种典型应用。
阿里数据仓库的数据加工链路也是遵循业界的分层理念,包括:操作数据层(Operational Data Store, ODS)、 明细数据层(Data WarehouseDetail, DWD)、汇总数据层(Data Warehouse Summary, DWS)和应用数据层(Application Data Store, ADS)。通过数据仓库不同层次之间的加工过程实现从数据资产向信息资产的转化,并且对整个过程进行有效的元数据管理及数据质量处理。
在阿里大数据系统中,元数据模型整合及应用是一个重要的组成部分,主要包含:数据源元数据、数据仓库元数据、数据链路元数据、工具类元数据、数据质量类元数据等。
元数据应用主要面向数据发现、数据管理等,如用于存储、计算和成本管理等。
三、数据服务层
当数据已被整合和计算好之后,需要提供给产品和应用进行数据消费。
为了有更好的性能和体验,阿里巴巴构建了自己的数据服务层,通过接口服务化方式对外提供数据服务。针对不同的需求,数据服务层的数据源架构在多种数据库之上,如:MySQL和HBase等。后续将逐渐迁移至阿里云2数据库ApsaraDB for RDS(简称”RDS )和表格仔储(Table Store)等。
开放给集团内部各应用使用:现在,数据服务每天拥有几十亿的数据调用量,如何在性能、稳定性、扩展性等方面更好地服务于用户?如何满足应用各种复杂的数据服务需求?如何保证“双11” 媒体大屏数据服务接口的高可用……
随着业务的发展,需求越来越复杂,因此数据服务也在不断地前进。
数据服务可以使应用对底层数据存储透明,将海量数据方便高效的开放给集团内部各应用使用。现在,数据服务每天拥有几十亿的数据调用量,如何在性能、稳定性、扩展性等方面更好地服务于用户?如何满足应用各种复杂的数据服务需求?如何保证“双11”媒体大屏数据服务接口的高可用……随着业务的发展,需求越来越复杂,因此数据服务也在不断地前进。
数据服务层对外提供数据服务主要是通过统一的数据服务平台 (为方便阅读,简称为“OneService”)。
OneService 以数据仓库整合计算好的数据作为数据源,对外通过接口的方式提供数据服务,主要提供简单数据查询服务、复杂数据查询服务(承接集团用户识别、用户画像等复杂数据查询服务)和实时数据推送服务三大特色数据服务。
四、数据应用层
数据已经准备好,需要通过合适的应用提供给用户,让数据最大化地发挥价值。
阿里对数据的应用表现在各个方面,如:搜索、推荐、广告、金融、信用、保险、文娱、物流等。商家,阿里内部的搜索、推荐、广告、金融等平台,阿里内部的运营和管理人员等,都是数据应用方:ISV、研究机构和社会组织等也可以利用阿里开放的数据能力和技术。
我们相信:数据作为新能源,为产业注人的变革是显而易见的。我们对数据新能源的探索也不仅仅停留在狭义的技术、服务和应用上。我们正在挖掘大数据更深层次的价值,为社会经济和民生基础建设等提供创新方法。
作者:Wilton(董超华),曾任职科大讯飞,现任富力环球商品贸易港大数据产品经理。公众号名称:改变世界的产品经理。
本文由@华仔 原创发布于产品100,未经许可,禁止转载。
题图来自Unsplash, 基于CC0协议。