阿里资深技术专家姚滨晖:EB级别体量之下的高效数据赋能
本内容编辑自阿里巴巴数据技术及产品部资深技术专家姚滨晖在“2017云栖大会·阿里大数据分论坛”上的演讲。
演讲人:姚滨晖(阿里巴巴资深技术专家)
总体来看,阿里巴巴的生态可以分为六个业务板块:电商、物流、健康、文娱、金融,以及云计算。阿里巴巴通过这些业务,服务了数亿用户,上千万的小微企业,以及上千万的商家。伴随着我们的业务服务,同时截止目前,我们已经沉淀的数据量高达E B级规模。
通过全域数据体系,我们建设、融合、链接了这些来自不同业态的数据。下面这张图,勾勒了阿里巴巴大数据体系。
从下往上看,最底层的是全域数据,第二层是基础数据建设,它包括了人工智能的一些算法。在基础数据建设的上面分别是各种数据服务和数据产品开发平台。
从图中我们也可以发现,我们的数据产品和服务,实际上是通过各类不同的应用场景来达到服务阿里小二、阿里商家、消费者、合作伙伴的目的。
所以,数据服务和数据产品开发平台,它与应用场景是强相关,直接连接,他们的主要作用是把底层建设完的数据、算法,生产成可以直接赋能业务和用户的应用。
part1
数据服务和数据产品开发平台的关系
数据服务和数据产品开发平台的关系就像齿轮一样,它们是相互依存的一个整体。
为什么这么说?
从业务角度来看:业务使用数据有两个最核心的场景:
业务本身需要数据。这时候,业务会通过数据服务来直接获取数据,这是第一个场景。业务中的运营、分析师,他们需要使用数据来更好地提升数据赋能的效能,这时候,这些运营和分析师,就会通过相应的数据产品,来使用数据。所以,这就是数据产品开发平台承担的主要职责。
所以通过这两个核心的数据赋能业务的场景,我们可以发现数据服务和数据产品开发平台,之间相关依存的关系。
从优势角度来看:将数据服务好和数据产品开发平台组合起来,它们可以体现三个优势:
通过这样的一个组合,能够打破在业务之间的数据壁垒,这里要强调的是它们打破的不是在底层的数据壁垒,而是打破在业务之间的数据壁垒,因为6大业务板块,所产生的数据形态、含义、结构都有很大差异。在底层完成了整个数据打通之后,打破壁垒就是为了在业务层上,让数据在各个业务间像水一样来流通。满足灵活多变的数据需求。全域流通和按需自助实现。这个组合可以实现所有用户可以去按需自助来完成,而不需要专业开发、产品来介入。
Part2
数据服务介绍
数据服务主要由四个核心能力组成:首先,基础数据服务,它主要是提供基础数据能力,实现上万数据指标跨域获取;其次,标签画像服务,通过这个服务,可以给用户提供上百个标签刻画;第三是人群透视服务,这个服务其实是在标签智商最的提炼,在营销场景中,可以通过接入这个服务,来实现人群的圈选等;第四、除了上述三种服务之外,还有算法模型服务,通过一键服务化的方式,把算法能力通过服务透出。
上图展示了数据服务的架构。
从上往下看,portal是一个门户,通过它可以发现,整个阿里巴巴公共层,有多少基础的指标可以去获取,并且这些指标现在已经被哪些业务部门通过什么样的方式来获取。
用户只需要按照同样的方式,就能够获取到对应的数据,极大缩短用户发现数据、获取数据以及使用数据的路径。
中间这层是DSL,通过DSL我们把用户获取数据的标准和规范进行了统一,整个DSL之下有一些大的核心能力。QueryEngine实现所有跟查询相关的能力输出; PushEngine提供实时数据推送的能力;DAG可视化,可配置编排业务逻辑。Algorithm Engine输出算法和人工智能的能力。
DSL&DAG实例
现在,我们的数据服务的主要有三大应用场景:第一个是阿里集团内部,诸如搜索、推荐、营销等场景;第二就是数据大屏,大家在双11看到酷炫大屏,它其实就是通过数据服务来实现的;第三就是商业化数据产品,被商家熟知的生意参谋,它所展示的数据也是通过数据服务来实现的。
Part3
数据产品开发平台介绍
我们构建数据产品开发平台最核心的目的就是,让非专业的开发人员,也可以根据自己的需求,来搭建数据产品,从而实现自己使用数据的目的。
那么数据产品开发平台,它主要对外提供了四个能力。
用户可以完成数据分析;用户可以去自助实现报表配置;非开发人员可以利用它去实现产品配置;开发人员可以通过它,开发一些更加复杂、更加个性化、更加定制化的一些数据产品。
具体来看数据产品开发平台的架构,整个架构的核心能力依然由两个部分组成。应用端和服务端。
在应用和服务中间是DSL,所有的应用和服务,最终都会按照DSL标准来配置。通过数据产品开发平台构建完成的应用和服务,并不是一个独立运行的实体,它实际上是一个配置,渲染引擎、执行引擎等可以加载和运行这个配置;通过构建引擎生成一个配置,来实现不同国家、不同机房、不同终端都能运行的目的。
事实上,整个数据产品开发平台的构建思路主要由两个核心点:什么是变的以及什么是不变的。
其实我们只要能够对数据使用过程分析、分解出变和不变这两个要素,就能够比较快速地解决问题。
举个例子。
应用的布局、样式、分析思路……这些都是不变的;但应用中的组件,可以是一个图表、可以是功能区域,也可以是一个不可见的逻辑……这些是变化的。
继续分析一个组件:组件的类型、属性是不变的;但是每个组件它所能够表达的数据,是可以变化的;同理推导数据:对于一个数据来讲,格式是、权限是不变的;但是数据是从哪个服务能够获取到数据,这个是可以变化的。
最后到服务这一层,服务里面有两部分组成:通过SQL获取的原始数据和业务逻辑;通过业务逻辑对原始数据的加工和编排,最后以服务化的方式,把数据开放给上层应用。
了解思路之后,我们再来看一下整个平台的构建过程,它们分别是在应用端和在服务端的构建引擎。
对于应用端的构建引擎,需要注意的是非开发人员,通过构建引擎,只需要输入四个要素——样式、布局、组件以及分析思路,就能构建出一个基于DSL描述的一个应用;同理,在服务端也是一样的,非开发人员通过输入SQL,和一些业务逻辑的实现,就能够生成一个基于DSL描述的服务。在应用层,上述的服务是可以实现PC、无线和大屏的跨端。
在使用过程中,下图是一个使用过程的示意:就是通过两个引擎:渲染引擎和执行引擎,它们都会去加载DSL描述的应用和服务,然后进行交互来完成整个这个产品的实现。
目前,数据产品开发平台在阿里的应用对象主要是四块:首先是业务运营,在日常运营中,运营人员可以通过这个平台去自助的去生成所需要的产品;第二块是决策分析,分析师会帮助行业来进行业务分析指导,他们会通过整个平台来使用和开发自己的数据分析产品,完成决策分析;第三,后端营销其实也可以通过它来搭建产品;最后就是刚才提到的——生意参谋,这是通过这个平台开发商业应用产品,目前已经累积服务了2千万商家。
责任编辑:陈近梅