阿里EB级大数据体系_如何做到秒级响应、高效赋能?

176 阅读9分钟
原文链接: click.aliyun.com

阿里巴巴如何构建一个从底层的数据采集、处理,到挖掘算法、应用、产品服务的全链路、标准化的大数据体系,使得超过EB级别的海量数据能够高效融合,并以秒级的响应速度,服务并驱动阿里巴巴的业务和外部千万用户的发展?阿里巴巴数据技术及产品部资深技术专家姚滨晖,在2017云栖大会上做了一次非常精彩的分享,今天我们一起来重温。


d6b512f307bcbefdf6e31dadaa70e3ea2cb0f46f


总体来看,阿里巴巴的生态可以分为六个业务板块:电商、物流、健康、文娱、金融,以及云计算。阿里巴巴通过这些业务,服务了数亿用户,上千万的小微企业,以及上千万的商家。伴随着我们的业务服务,同时截止目前,我们已经沉淀的数据量高达EB级规模。

通过全域数据体系,我们建设、融合、链接了这些来自不同业态的数据。下面这张图,勾勒了阿里巴巴大数据体系。


0052c4386bb4bd57445a6577a1111b225b378159  


从下往上看,最底层的是全域数据,第二层是基础数据建设,它包括了人工智能的一些算法。在基础数据建设的上面分别是各种数据服务和数据产品开发平台。

从图中我们也可以发现,我们的数据产品和服务,实际上是通过各类不同的应用场景来达到服务阿里小二、阿里商家、消费者、合作伙伴的目的。

所以,数据服务和数据产品开发平台,它与应用场景是强相关,直接连接,他们的主要作用是把底层建设完的数据、算法,生产成可以直接赋能业务和用户的应用。

数据服务和数据产品开发平台的关系是什么?

数据服务和数据产品开发平台的关系就像齿轮一样,它们是相互依存的一个整体。为什么这么说?

从业务角度来看:业务使用数据有两个最核心的场景:

第一、业务本身需要数据。这时候,业务会通过数据服务来直接获取数据,这是第一个场景。

第二、业务中的运营、分析师,他们需要使用数据来更好地提升数据赋能的效能。这时候

运营和分析师,就会通过相应的数据产品,来使用数据。所以,这就是数据产品开发平台承担的主要职责。所以通过这两个核心的数据赋能业务的场景,我们可以发现数据服务和数据产品开发平台,之间相关依存的关系。

从优势角度来看,将数据服务好和数据产品开发平台组合起来,它们可以体现三个优势:

第一、通过这样的一个组合,能够打破在业务之间的数据壁垒。这里要强调的是它们打破的不是在底层的数据壁垒,而是打破在业务之间的数据壁垒,因为6大业务板块,所产生的数据形态、含义、结构都有很大差异。在底层完成了整个数据打通之后,打破壁垒就是为了在业务层上,让数据在各个业务间像水一样来流通。

第二、满足灵活多变的数据需求。

第三、全域流通和按需自助实现。这个组合可以实现所有用户可以去按需自助来完成,而不需要专业开发、产品来介入。

数据服务介绍

数据服务主要由四个核心能力组成:首先,基础数据服务,它主要是提供基础数据能力,实现上万数据指标跨域获取;其次,标签画像服务,通过这个服务,可以给用户提供上百个标签刻画;第三是人群透视服务,这个服务其实是在标签智商最的提炼,在营销场景中,可以通过接入这个服务,来实现人群的圈选等;第四、除了上述三种服务之外,还有算法模型服务,通过一键服务化的方式,把算法能力通过服务透出。


a0b45a8aa04365a4f1a3985859631842dbf4b1af


上图展示了数据服务的架构。   

从上往下看,portal是一个门户,通过它可以发现,整个阿里巴巴公共层,有多少基础的指标可以去获取,并且这些指标现在已经被哪些业务部门通过什么样的方式来获取。

用户只需要按照同样的方式,就能够获取到对应的数据,极大缩短用户发现数据、获取数据以及使用数据的路径。

中间这层是DSL,通过DSL我们把用户获取数据的标准和规范进行了统一,整个DSL之下有一些大的核心能力。QueryEngine实现所有跟查询相关的能力输出;PushEngine提供实时数据推送的能力;DAG可视化,可配置编排业务逻辑。Algorithm Engine输出算法和人工智能的能力。


e9d32938fa1e1da26bc4821d11287a5894ff295a


现在,我们的数据服务的主要有三大应用场景:第一个是阿里集团内部,诸如搜索、推荐、营销等场景;第二就是数据大屏,大家在双11看到酷炫大屏,它其实就是通过数据服务来实现的;第三就是商业化数据产品,被商家熟知的生意参谋,它所展示的数据也是通过数据服务来实现的。

数据产品开发平台

我们构建数据产品开发平台最核心的目的就是,让非专业的开发人员,也可以根据自己的需求,来搭建数据产品,从而实现自己使用数据的目的。

那么数据产品开发平台,它主要对外提供了四个能力:

第一、用户可以完成数据分析;
第二、用户可以去自助实现报表配置;
第三、非开发人员可以利用它去实现产品配置;

第四、开发人员可以通过它,开发一些更加复杂、更加个性化、更加定制化的一些数据产品。

具体来看数据产品开发平台的架构,整个架构的核心能力依然由两个部分组成:应用端和服务端。


319771375a309314ec5d19247000908604df6d0e


在应用和服务中间是DSL,所有的应用和服务,最终都会按照DSL标准来配置。通过数据产品开发平台构建完成的应用和服务,并不是一个独立运行的实体,它实际上是一个配置,渲染引擎、执行引擎等可以加载和运行这个配置;通过构建引擎生成一个配置,来实现不同国家、不同机房、不同终端都能运行的目的。


e036f972a3c77bc8dbcb8ce0567941bd892efc32


事实上,整个数据产品开发平台的构建思路主要由两个核心点:什么是变的以及什么是不变的。其实我们只要能够对数据使用过程分析、分解出变和不变这两个要素,就能够比较快速地解决问题。

举个例子:对于一个应用,我们怎么来分解变和不变两个要素。


e036f972a3c77bc8dbcb8ce0567941bd892efc32


应用的布局、样式、分析思路……这些都是不变的;但应用中的组件,可以是一个图表、可以是功能区域,也可以是一个不可见的逻辑……这些是变化的。

继续分析一个组件:组件的类型、属性是不变的;但是每个组件它所能够表达的数据,是可以变化的;同理推导数据:对于一个数据来讲,格式是、权限是不变的;但是数据是从哪个服务能够获取到数据,这个是可以变化的。

最后到服务这一层,服务里面有两部分组成:通过SQL获取的原始数据和业务逻辑;通过业务逻辑对原始数据的加工和编排,最后以服务化的方式,把数据开放给上层应用。

了解思路之后,我们再来看一下整个平台的构建过程,它们分别是在应用端和在服务端的构建引擎。

对于应用端的构建引擎,需要注意的是非开发人员,通过构建引擎,只需要输入四个要素——样式、布局、组件以及分析思路,就能构建出一个基于DSL描述的一个应用;同理,在服务端也是一样的,非开发人员通过输入SQL,和一些业务逻辑的实现,就能够生成一个基于DSL描述的服务。在应用层,上述的服务是可以实现PC、无线和大屏的跨端。

在使用过程中,下图是一个使用过程的示意:就是通过两个引擎:渲染引擎和执行引擎。


7a514d279e65f22f8fbc949de3ef36dd2faa8acb


它们都会去加载DSL描述的应用和服务,然后进行交互来完成整个这个产品的实现。

数据产品开发平台在阿里的应用对象主要是四块:

首先是业务运营,在日常运营中,运营人员可以通过这个平台去自助的去生成所需要的产品;

第二块是决策分析,分析师会帮助行业来进行业务分析指导,他们会通过整个平台来使用和开发自己的数据分析产品,完成决策分析;

第三,后端营销其实也可以通过它来搭建产品;

最后就是刚才提到的——生意参谋,这是通过这个平台开发商业应用产品,目前已经累积服务了两千万商家。


原文发布时间为:2017-11-3

本文作者:姚滨晖

本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术 ”微信公众号