【数据资讯】阿里巴巴数据仓库发展的四个阶段

2018-03-16 21:00:40 xiaoyi 6
未来学家认为,机器智能最终会超越人的智慧,而这两者的临界点就被称为「奇点」。从这点来说,我们可以认为,阿里巴巴已经跨越了奇点,真正成为一家数据公司。

在数据史上,2015年是一个重要的关口:2015年全年产生的数据量等于历史上所有人类产生数据的总和,这是数据从乘数型增长全面转向了指数型增长的方向标,海量数据处理成为全人类的挑战;

同一时间,阿里巴巴向外发布了DT时代的提法,用Data Technology(DT,数据技术)替代了Information Technology(IT,信息科技),强调数据技术将成为未来商业的驱动力。

一个标志性的事件是:阿里巴巴用几百人的运营团队支撑了几万亿的GMV,其中60%-70%来源于数据支持的机器决策,机器智能赋能业务,用更低的成本,更高的效率去服务顾客,提供千人干面的个性化体验。

未来学家认为,机器智能最终会超越人的智慧,而这两者的临界点就被称为「奇点」。从这点来说,我们可以认为,阿里巴巴已经跨越了奇点,真正成为一家数据公司。

下面我们从数据的角度来梳理下这个过程。

阿里巴巴的数据处理经历了四个阶段,分别是:

一、数据库阶段,主要是OLTP(联机事务处理)的需求;

二、数据仓库阶段,OLAP(联机分析处理)成为主要需求;

三、数据平台阶段,主要解决BI和报表需求的技术问题;

四、数据中台阶段,通过系统来对接OLTP(事务处理)和OLAP(报表分析)的需求,强调数据业务化的能力。

第一个阶段:数据库阶段。

淘宝还只是一个简单的网站,淘宝的整个结构就是前端的一些页面,加上后端的DB(DataBase,数据库),只是个简单的OLTP系统,主要就是交易的事务处理。

这个阶段,互联网黄页才刚刚出现,数据来源大部分还是传统商业的ERP/CRM的结构化数据,数据量并不大,也就是GB的级别。简单的DB就能满足需求。

这里要说明的是,OLTP的交易场景和OLAP的分析场景区别在于,前者强调高并发、单条数据简单提取和展示(增删改查),后者对并发的要求不高,但是需要打通不同的数据库,比如ERP、CRM、行为数据等等,并且能够进行批量的数据处理,也就是通常说的低并发,大批量(批处理)、面向分析(query+计算,用于制作报表)。

随着淘宝用户超过100万,分析需求的比重就越来越大。淘宝需要知道它的交易来自于哪些地区,来自于哪些人,谁在买淘宝的东西等等,于是,就进入了数据处理的第二个阶段。

第二个阶段:数据仓库阶段

正如前文所述,OLTP和OLAP对数据存储和计算的需求非常不一样,前者处理的是结构化的交易数据,而OLAP对应的是互联网数据,而互联网里面数据量最大的是网页日志,90%以上的数据都是点击(log)什么的非结构化的数据,而且数据量已经达到了TB的级别。

针对分析需求,就诞生了数据仓库(DW,DataWarehouse),我2004年加入阿里,用Oracle RAC搭建了阿里巴巴第一个DW,解决大量数据的存储和计算需求,也就是去把非结构化的数据转化成结构化数据,存储下来。

这个阶段,DW支持的主要就是BI和报表需求。

顺带提一下,数据库(DB)这时也在从传统DB转向分布式DB。主要原因是以前交易稳定,并发可控,传统DB能满足需求,但是后来随着交易量的增长,并发越来越不可控,对分布式DB的需求也就出来了。

随着数据量越来越大,从TB进入了PB级别,原来的技术架构越来越不能支持海量数据处理,这时候就进入了第三个阶段。

第三个阶段:数据平台阶段

这个阶段解决的还是BI和报表需求,但是主要是在解决底层的技术问题,也就是数据库架构设计的问题。

这在数据库技术领域被概括为「Shared Everything、Shared Nothing、或Shared Disk」,说的就是数据库架构设计本身的不同技术思路之争。

Shared Everything一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力是最差的,典型的代表SQLServer。

Shared Disk的代表是Oracle RAC,用户访问RAC就像访问一个数据库,但是这背后是一个集群,RAC来保证这个集群的数据一致性。

问题在于,Oracle RAC是基于IOE架构的,所有数据用同一个EMC存储。在海量数据处理上,IOE架构有天然的限制,不适合未来的发展。阿里巴巴的第一个数据仓库就是建立在Oracle RAC上,由于数据量增长太快,所以很快就到达20个节点,当时是全亚洲最大的Oracle RAC集群,但阿里巴巴早年算过一笔账,如果仍然沿用IOE架构,那么几年后,阿里的预计营收还远远赶不上服务器的支出费用,就是说,如果不去IOE,阿里会破产。

Shared Nothing的代表就是Hadoop。Hadoop的各个处理单元都有自己私有的存储单元和处理单元,

各处理单元之间通过协议通信,并行处理和扩展能力更好。中间有一个分布式调度系统,会把表从物理存储上水平分割,分配给多台服务器。

Hadoop的好处是要增加数据处理的能力和容量,只需要增加服务器就好,成本不高,在海量数据处理和大规模并行处理上有很大优势。

综上,用一个关键词来概括第三阶段就是「去IOE」,建立Shared Nothing的海量数据处理平台来解决数据存储成本增长过快的问题。在阿里巴巴,前期是Hadoop,后期转向自研的ODPS。

第四阶段:数据中台阶段

这个阶段的特征是数据量的指数级增长,从PB迈向了EB级别,未来会到什么量级,我也说不清楚。

主要是因为,2015年之后,IOT(物联网)发展起来,带动了视图声(视频、图像、声音)数据的增长,未来90%的数据可能都来自于视图声的非结构化数据,这些数据需要视觉计算技术、图像解析的引擎+视频解析的引擎+音频解析的引擎来转换成结构化数据。5G技术的发展,可能会进一步放大视图声数据的重要性。

线下要想和线上一样,通过数据来改善业务,就要和线上一样能做到行为可监测,数据可收集,这是前提。线下最大量的就是视图声数据,而这些数据靠人来手工收集,肯定是不靠谱的,依靠IOT技术和算法的进步,最终会通过智能端来自动化获取数据。

要使用这些数据,光有视觉算法和智能端也不行,要有云来存储和处理这些数据,以及打通其他领域的数据。

另一方面,从业务来看,数据也好,数据分析也好,最终都是要为业务服务的。也就是说,要在系统层面能把OLAP和OLTP去做对接,这个对接不能靠人来完成,要靠智能算法。

目前的数据中台,最底下的数据平台还是偏技术的,是中台技术方案的其中一个组件,主要解决数据存储和计算的问题;在上面就是一层数据服务层,数据服务层通过服务化API能够把数据平台和前台的业务层对接;数据中台里面就没有人的事情,直接系统去做对接,通过智能算法,能把前台的分析需求和交易需求去做对接,最终赋能业务。

综合上述两个方面,我认为未来要做好数据中台,只做云或者只做端都不靠谱,需要把两者合起来做。智能端负责数据的收集,云负责数据的存储、计算、赋能。端能够丰富云,云能够赋能端。

未来的数据中台,一定是「AI驱动的数据中台」,这个中台包括「计算平台+算法模型+智能硬件」,不仅要在端上具备视觉数据的收集和分析能力,而且还要能通过Face ID,帮助企业去打通业务数据,最终建立线上线下触达和服务消费者的能力。

真正做到「一切业务数据化,一切数据业务化」。