离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进

2021年11月24日 阅读数:11
这篇文章主要向大家介绍离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

简介: 阿里云智能研究员 林伟 :阿里巴巴从湖到仓的演进给咱们带来了湖仓一体的思考,使得湖的灵活性、数据种类丰富与仓的可成长性和企业级管理获得有机融合,这是阿里巴巴最佳实践的宝贵资产,是大数据的新一代架构。编程

image.png
林伟,阿里云智能研究员、阿里云智能通用计算平台MaxCompute、机器学习PAI平台技术负责人segmentfault

本篇内容将从三个部分为读者讲述离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进。经过从数据湖到数仓的历史,反思为何要作湖仓一体,以及湖仓一体在今天这个阶段为何开始作离线和实时湖仓一体化的数仓。架构

  • 湖仓一体
  • 离线在线数仓一体化
  • 智能数仓

但愿此次的分享让你们进一步理解咱们为何作湖仓一体。机器学习

1、湖仓一体

(1) 阿里巴巴从数据湖到数仓历程

2007年的宁波战略会议肯定创建一个开发、协同、繁荣的电子商务生态系统,其中生态系统的核心是数据。但这个时候各个业务部门都在垂直式发展数据能力,用数据支撑商业的决策服务。这些数据中台支撑了业务部门的发展。但咱们发展到一个阶段的时候,但愿进一步挖掘出各个业务部门数据之间的关联性,从而利用这些高阶数据分析挖掘更高商业价值,咱们遇到了不少的困难,由于数据来自不一样的部门,不一样的人会提供你不一样的数据集,没有清晰数据质量监控,你也不知道这些数据是否是完整的,你就须要花费不少时间不停的去校准数据。这个过程耗时太长且多数状况会作了很是多的无用功,这样其实总体降低了公司的效率。工具

因此到了2012年,咱们决定将全部的业务部门的数据都关联起来,决心作『One Data,One Service』。其实这个过程就是典型一个数据湖升级到数仓的过程,可是由于咱们缺少很好湖仓一体的系统沉淀,这个过程很是艰难,咱们称之这个过程为“登月”。你们能够从这个名字可见中间的艰难。在这个时间段,各个团队甚至须要停下平常的自身业务发展来配合整理数据,把因此原来已有的数据分析过程,搬到统一一套数仓系统上面。最终咱们历经18个月,在花了很是大的代价,于2015年的12月完成创建了统一大数据仓库平台创建,这就是阿里巴巴的MaxCompute。经过这个统一数仓平台,不管是业务团队、服务商家仍是物流或其它环节均可以方便,迅捷,更好的挖掘商机。因此你们能够看到在阿里巴巴统一的大数据平台完成后,业务成长也进入了快车道。这正是由于有更好的数据支撑,才使得商家、客户都能快速的进行一些商业决策。性能

(2) 数据仓库和数据湖的关系

从开发人员的角度看,数据湖更为灵活,更喜欢这种为所欲为的模式,任意的引擎均可以去读、写,没有约束,启动也很是容易。学习

从数据管理者角度看,数据湖能做为起步,但达到特定规模时,把数据看成资产或者须要作更大的商业决策的时候,都但愿有一个很好的数仓。大数据

image.png

(3) 数据仓库和数据湖系统的增加曲线

image.png

上图的增加曲线,基本上也是阿里发展的曲线,最开始也是数据湖状态,各个业务部门独立发展,起步快、灵活性强。但当达到特定规模时,数据无人管理、每一个业务部门的数据的逻辑语言不一致,很难对齐。因此当时花了50%、80%的无效时间在校验数据,随着规模的不断扩大,这样的损耗愈来愈大,迫使咱们推进公司统一数据仓库的创建。阿里云

(4) 湖仓一体

正是由于咱们经历过堪比“登月”的痛苦,因此咱们不但愿MaxCompute将来的企业客户也经历这么痛苦过程,因此咱们构建湖仓一体的开发平台。当公司规模较小的时候,能够运用数据湖能力更快定制本身的分析。公司成长到必定的阶段,须要更好的数据管理和治理方式的时候,湖仓一体平台能够无缝把数据以及数据分析进行有效的升级管理,使得公司对于数据管理更加规范。这就是湖仓一体总体设计背后的核心思想。spa

image.png

咱们把湖的系统和仓的系统有机结合在一块儿,一开始是没有元数据,你想要创建数仓的时候,咱们有能够在湖上面来抽取这个元数据,这个元数据是和仓的元数据放在一个一体化的元数据的分析平台上面。在这个元数据之上能够创建不少数据仓库的数据管理平台。

同时,在数据仓库湖仓一体的平台上面,咱们有效支持不少分析引擎,有任务型的计算引擎,包括像MaxCompute是批处理、Flink是流式处理、机器学习等,还有开源的组件能够分析咱们的数据;也有服务性质数据引擎能够支持交互式查询服务,可以去更加实时性很好的展现咱们的数据,从而使得用户能够在这个服务性引擎上去构建本身数据服务应用。

在引擎之上咱们构建丰富数据管理工具从而可以让业务部门可以进行高效总体的数据治理。而这都得益于咱们把湖和仓的数据打通,这也是总体湖仓一体设计的核心。

2、离线在线数仓一体化

现今社会愈来愈便捷,客户须要更快的作出商业决策。在双十一GMV实时大屏、春晚直播实时大屏等数据分析,以及机器学习从离线模型走向在线模型的趋势中咱们均可以看到。这些需求推进了实时数仓的发展。

其实实时数仓和离线数仓有着类似的发展过程。当时实时系统发展的早期,咱们首先考虑的是引擎,由于只有先有引擎了你才能够进行实时数据分析,因此阿里巴巴把研发精力放在Flink这样的流计算引擎上。可是只有流计算引擎,相似数据湖的阶段,咱们缺少将分析出来的结果数据进行管理,因此到了第二阶段,咱们利用咱们离线数仓产品来管理这些分析结果,从而把分析结果纳管到咱们总体数据仓库和数据管理中。可是把实时分析以后的结果放在离线数仓里面,显然这样是对于实时商业决策是不够的及时。因此咱们如今发展第三个阶段:实时数仓。

image.png

咱们会把流式引擎的分析结果结果实时的写到实时数仓Hologres里面,从而可以让分析的结果更实时的进行BI的分析,从而有效的支持客户实时商业决策。

这就是离线和在线数仓一体化的设计。

image.png

总结一下,原有的分析在离线和在线的数仓一体化以前是一个很纷繁的过程,有离线、有在线的、有不少不一样的引擎,如今把它总结到或者简化成上图的架构。咱们会用实时的引擎作预处理,作完预处理后,咱们把这些数据写入到MaxCompute离线的数仓,也能够同时写入到Hologres实时数仓中里面,从而能够作更加实时的服务化的BI分析。而MaxCompute离线的数仓存储的成本更低,吞吐的性能更好,能够作大量的离线数据分析,这就是离在线数仓一体化的设计。

有了一体化的设计,就能够给客户带来一个很是平衡的系统。根据数据的场景或者是业务的场景,你能够用批处理。而且经过数据的压缩、冷存,数据根据热和冷的方式作不一样梯度的存储,就能够获得更低成本的离线分析。

当对于数据的实时性的价值更加剧视,能够用流计算的引擎去作。同时又但愿有很快的交互式,但愿快速经过各类方式的、各类维度、角度去观察已生成好的报表。这时候能够利用交互式引擎,在高度提纯过数据后的进行各个维度的洞察。

但愿用湖仓一体化平台就可以达到一个好的平衡,根据实际的业务体量、要求、规模成本达到更好点。

image.png

总的来讲,但愿湖仓一体系统上,不论是离线仍是在线。经过不一样的分析引擎,支持各种分析,同时经过在线服务型引擎可以实时进行BI,可以达到低成本、自定义能力,以及实时和在线服务的各类平衡。让客户可以根据实际业务场景选择。

3、智能数仓

有了统一的数仓平台,咱们就能够在此之上创建强大的数据治理或者是分析平台,这个就是咱们的DataWorks。在这个平台上面有不少数据建模工具,提供数据的质量和标准、提供血缘的分析、提供编程助理等等。正是由于湖仓一体在线和离线的一体化的底座能力,才赋予了咱们有这样的可能性去作到大数据开发和治理平台更加智能化的方式。从而将更多通过验证过有效数据治理经验分享到咱们企业客户上。

image.png

原文连接
本文为阿里云原创内容,未经容许不得转载。