还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据湖与数据仓库的新将来阿里提出湖仓一体架构InfoQ2022-09-26点击上方关注,星标或者置顶一起成长免费送精品学习资源1024GB作者关涛、李睿博、孙莉莉、张良模、贾扬清(from阿里云智能计算平台)黄波、金玉梅、于茜、刘子正(from新浪微博机器学习研发部)近几年,随着数据湖概念的衰亡,业界对于数据仓库和数据湖的对照甚至争辩向来不断数据仓库和数据湖的区分到底是什么?本文作者来自阿里巴巴计算平台部门,在深度参预阿里巴巴大数据/数据大陆与台湾领域建设之后,将对数据湖和数据仓库的来龙去脉进行深化剖析,阐述两者融合演进的新方向——湖仓一体大数据20年发展的变与不变概述大数据从本世纪初发展到现在,已经受20年从宏观层面观看其中的进展规律,可以高度概括成如下五个方面]大数据作为新的生产要素,得到广泛认可.在可见的未来,数据规模保持高速增长Big data•dets tetitut6to vomnnouaend complex9Mt traotionaiOotaprocotng aop*cMon eoftwerem tod**l w4h hamVolume-Mil燮理Wf-IMKWtooty.mt询Oif.电・£!*Wradty-佰卬二to.・rwed toMWF dttU图.阿里巴巴双十一单日处理数据量增长i数据保持高速增长经过对数据湖和数据仓库的深化阐述和比较,本文认为数据湖和数据仓库作为大数据系统的两条不同演进路线,有各自特有的优势和局限性数据湖和数据仓库一个面对初创用户友好,一个成长性更佳对企业来说,数据湖和数据仓库能否必需是一个二选一的选择题?能否能有一种方案同时兼顾数据湖的机警性和云数据仓库的成长性,将二者有效结合起来为用户实现更低的总体拥有成本?将数仓和数据湖融合在一起也是业界近年的趋势,多个产品和项目都做过对应的尝试数仓支持数据湖访问2022年Redshift推出RedshiftSpectrum,支持Redsift数仓用户访问S3数据湖的数据2022年阿里云MaxCompute推出外包力量,支持访问包括OSS/OTS/RDS数据库在内的多种外部存储但是无论是Redshift Spectrum还是MaxCompute的外部表,照旧需要用户在数仓中通过创建外部表来将数据湖的开放存储路径纳入数仓的概念体系一一由于一个单纯的开放式存储并不能自发描述其数据本身的变化,于是为这些数据创建外部表、添加分区(本质上是为数据湖中的数据建立schema)无法彻底自动化(需要人工或者定期触发Alter tableaddpar出io或者nmsck)这对于低频暂时查询尚能接受,对于生产使用来说,不免有些简单数据湖支持数仓力量2022年,Hadoop开源体系公司Hortonworks开头了Apache Atlas和Ranger两个开源项目的开辟,分别对应数据血缘追踪和数据权限安全两个数仓核心力量但两个项目发展并不算顺当,直到2022年才完成孵化,时至今日,在社区和工业界的部署都还远远不够活跃核心原由是数据湖具备与生俱来的机警性例如Ranger作为数据权限安全统一管理的组件,自然要求全部引擎均适配它才干保证没有安全漏洞,但对于数据湖中强调机警的引擎,特别是新引擎来说,会优先实现功能、场景,而不是把对接Ranger作为第一优先级的目标,使得Ranger在数据湖上的位置向来很尴尬2022年,Nexflix开源了内部添加版本的元数据服务系统Iceberg,供应包括MVCC(多版本并发把握)在内的添加数仓力量,但由于开源HMS已经成为现实标准,开源版本的Iceberg作为插件方式兼容并协作HMS,数仓管理力量大打折扣2022-2022年,Uber和Databricks相继推出了Apache Hudi和DeltaLake,推出增量文件格式用以支持Update/Insert事务等数据仓库功能新功能带来文件格式以及组织方式的转变,打破了数据湖原有多套引擎之间关于共用存储的简约商定为此,Hudi为了维持兼容性,不得不创造了诸如Copy-On-Write、Merge-On-Read两种表,SnapshotQueryIncremental QueryRead Optimized Query三种查询类型,并给出了一个支持矩阵(如图9),极大提升了使用的简单度Copy-On-Write tablesQuery Engine SnapshotOwr IncrwvtalQueriesHive YrSptrk SQL Y YSparkDstaBOurce YYPresto YNlioela YNMerge-On-Read tablesQu«ryEngineSnapshot QuertMlncr«ntal QuerRoad OptiHiz«dQu«ri..Hive YY YSparkSQLYYSpark DatasourceN NYPresto N N YIfipalaNNY图(来自网络)
9.Hudi SupportMatri x而DeltaLake则选择了保证以Spark为次要支持引擎的体验,相对牺牲对其他主流引擎的兼容性这对其他引擎访问数据湖中的Delta数据形成为了诸多的限制和使用不便例如Presto要使用DeltaLake表,需要先用Spark创建manifest文件,再依据manifest创建外部表,同时还要留意manifest文件的更新问题;而Hive要使用DeltaLake表限制更多,不只会形成元数据层面的混乱,甚至不能写表上述在数据湖架构上建立数仓的若干尝试并不成功,这表明数仓和数据湖有本质的区分,在数据湖体系上很难建成完善的数仓数据湖与数据仓库两者很难直接合并成一套系统,于是作者团队,开头基于融合两者的思路进行探索提出下一代的大数据技术演进方向湖仓一体,即打通数据仓库和数据湖两套体系,让数据和计算在湖和仓之间自在流淌,从而构建一个完整的有机的大数据技术生态体系我们认为,构建湖仓一体需要处理三个关键问题
1.湖和仓的数据/元数据无缝打通,且不需要用户人工干涉;
2.湖和仓有统一的开辟体验,存储在不同系统的数据,可以通过一个统一的开辟/管理平台操作;
3.数据湖与数据仓库的数据,系统担任自动caching/moving,系统可以依据自动的规章打算哪些数据放在数仓,哪些保留在数据湖,进而构成一体化;我们将在下一章具体引见阿里云湖仓一体方案如何处理这三个问题阿里云湖仓一体方案全体架构阿里云MaxCompute在原有的数据仓库架构上,融合了开源数据湖和云上数据湖,最终实现了湖仓一体化的全体架构(图10)在该架构中,虽然底层多套存储系统并存,但通过统一的存储访问层和统一的元数据管理,向上层引擎供应一体的封装接口,用户可以同时查询数据仓库和数据湖中的表MuxCompiilr/ljC例/CRA*―KAMU—》•filtimi tflUR^M学Midt^ovecisMoCumput9图阿里云湖仓一体全体架构
10.针对上文提到的湖仓一体的三个关键问题,MaxCompute实现了以下4个关键技术点快速接入MaxCompute全新自创PrivateAccess网络连通技术,在遵照云虚拟网络安全标准的前提下,实现多租户模式下特定用户作业定向与IDC/ECS/EMR Hadoop集群网络全体打通力量,具有低延迟、高独享带宽的特点经过快速简约的开通、平安配置步骤即可将数据湖和购买的MaxCompute数仓相连通统一数据/元数据管理MaxCompute实现湖仓一体化的元数据管理,通过DB元数据一键映射技术,实现数据湖和MaxCompute数仓的元数据无缝打通,无须联邦查询方式里的人工操作MaxCompute通过向用户开放创建external project的方式,将数据湖HiveMetaStore中的整个database直接映射为MaxCompute的projec,t对Hive Database的改动会实时反应在这个project中与此同时,阿里云EMR数据湖处理方案在今年云栖大会也推出了Data Lake Formation,湖仓一体方案也会支持对该数据湖中的统一元数据服务的一键映射力量MaxCompute实现湖仓一体化的存储访问层,不只支持内置优化的存储系统,也无缝的支持外部存储系统既支持HDFS数据湖,也支持OSS云存储数据湖,可读写各种开源文件格式统一开辟体验数据湖里的Hive DataBase映射为MaxCompute externalproject和普通project别无二致,同样享受MaxCompute数仓里的数据开辟、追踪和管理功能基于DataWorks强大的数据开辟/管理/管理力量,供应统一的湖仓开辟体验,降低两套系统的管理成本MaxCompute高度兼容Hive/Spark,支持一套任务可以在湖仓两套体系中机警无缝的运转同时,MaxCompute也供应高效的数据通道接口,可以让数据湖中的Hadoop生态引擎直接访问,提升了数仓的开放性自动数仓湖仓一体需要用户依据本身资产使用情况将数据在湖和仓之间进行合理的分层和存储,以最大化湖和仓的优势MaxCompute开辟了一套智能cache技术,依据对历史任务的分析来识别数据冷热度,从而自动利用闲时带宽将数据湖中的热数据以高效文件格式cache在数据仓库中,进一步加速数据仓库的后续数据加工流程不只处理了湖仓之间的带宽瓶颈问题,也达到了无须用户参预即可实现数据分层管理/管理以及功能加速的目的构建湖仓一体化的数据大陆与台湾基于MaxCompute湖仓一体技术,DataWorks进一步对湖仓两套系统进行封装,屏蔽湖和仓异构集群信息,构建一体化的大数据大陆与台湾,实现一套数据、一套任务在湖和仓之上无缝调度和管理企业可以使用湖仓一体化的数据大陆与台湾力量,优化数据管理架构,充分融合数据湖和数据仓库各自优势使用数据湖做集中式的原始数据存储,发挥数据湖的机警和开放优势又通过湖仓一体技术将面对生产的高频数据和任务,无缝调度到数据仓库中,以得到更好的功能和成本,以及后续一系列面对生产的数据管理和优化,最终让企业在成本和效率之间找到最佳平衡既合用于全新构建大数据平台的企业,也适合已有大数据平台的企业进行架构升级,可以爱护现有投资和实现资产利100新潮物博的湖仓一体应用图湖仓一体化数据大陆与台湾
11.DataWorks微博机器学习平台团队,次要做社交媒体领域里的推荐次要做社交媒体领域里的推荐/排序、文本/图象分类、反垃圾/反做弊等技术技术架构上次要环绕开源Hadoop数据湖处理方案,一份HDFS存储+多种计算引擎(hive、spark、flinjt,以满足以AI为主的多计算场景需求但微博作为国内Top的社交媒体应用,当前的业务体量和简单性已然进入到开源无“人区”,开源数据湖方案在功能和成本方面都无法满足微博的要求微博借助阿里巴巴飞天大数据和AI平台力量(MaxCompute+PAI+DataWorks),处理了超大规模下的特征工程、模型训练以及矩阵计算的功能瓶颈问题,进而构成为了阿里巴巴MaxCompute平台(数仓)+开源平台(数据湖)共存的格局微博期望借助这两套异构的大数据平台,既保持面对AI的各类数据和计算的机警性,又处理超大规模下的计算和算法的功能/成本问题但由于这两套大数据平台在集群层面彻底是割裂的,数据和计算无法在两个平台里自在流淌,无形之中添加了大量的数据挪移和计算开辟等成本,进而制约了业务的发展次要的痛点是支配专人专项担任训练数据同步,工作量巨大;训练数据体量大,导致耗时多,无法满足实时训练的要求;rMRBte/MaxCompute】DC雪阕as做jfHmk Hadoop后却3习日新写SQL数据处理query,无法复用Hive SQL原有query0图.新浪微博业务痛点示意图12为了处理上述的痛点问题,阿里云产品团队和微博机器学习平台团队联合共建湖仓一体新技术,打通了阿里巴巴MaxCompute云数仓和EMR Hadoop数据湖,构建了一个跨湖和仓的AI计算大陆与台湾MaxCompute产品全面升级网络基础设备,打通用户VPC私域,且依托Hive数据库一键映射和强大完善的SQL/PAI引擎力量,将MaxCompute云数仓和EMR Hadoop数据湖技术体系无缝对接,实现湖和仓的统一且智能化管理和调度大数据作为新的生产要素,得到广泛认可数据管理力量成为新的关注点引擎技术进入收敛期平台技术演进出两个趋势,数据湖VS数据仓库两者均关注数据存储和管理(平台技术),但方向不同从大数据技术发展看湖和仓纵观大数据的发展历史,可以看出数据仓库和数据湖有着截然不同的进展脉络大体上,计算机科学领域的数据处理技术的发展,次要分为四个阶段阶段一数据库时代数据库最早诞生于20世纪的60年月,今日人们所熟知的关系型数据库则泯灭在20世纪70年月,并在后续的30年左右时间里大放异彩,诞生了不少优秀的关系型数据库,如Oracle.SQL Server、MySQL、PostgresSQL等,成为当时主流计算机系统不行或者缺的组成部份到20世纪90年月,数据仓库的概念诞生此时的数据仓库概念更多表达的是如何管理企业中多个数据库实例的方法论,但受限于单机数据库的处理力量以及多机数据库(分库分表)长期以来的昂扬价格,此时的数据仓库距离普通企业和用户都还很遥远人们甚至还在争辩数据仓库(统一集中管理)和数据集市(按部门、领域的集中管理)哪个更具可行性阶段二大数据技术的「探索期」2000年摆布,随着互联网的迸发,动辄几十亿、上百亿的页面以及海量的用户点击行为,开启了全球的数据量急剧添加的新时代传统的数据库方案再也无力以可接受的成本供应计算力,巨大的数据处理需求开头查找突破口,大数据时代开头萌芽Google先后发表3篇经典论文(GFS、MapReduce、BigTable),奠基了这个大数据时代的基本技术框架,即分布式存储、分布式调度以及分布式计算模型随后,几乎是在同一时期,诞生了包括Google,微软Cosmos以及开源Hadoop为代表的优秀分布式技术体系,固然,这其中也包括阿里巴巴的飞天系统此时人们兴奋于追求数据的处理规模,即『大』数据,没有闲暇争辩是数据仓库还是数据湖阶段三大数据技术的「发展期」21世纪其次个10年,随着越来越多的资源投入到大数据计算领域,大数据技术进入一个蓬勃发展的阶段,全体开头从能用转向好用代替手写MapReduce作业,是如雨后春笋般泯灭的各种以SQL为表达的计算引擎,极大降低了大数据技术的使用成本,数据库时代人们幻想的大一统的数据仓库最终成为现实,各种数据库时代的方法论开头抬头这个时期技术路线开头泯灭细分云厂商主推的如AWSRedshift、Google BigQuery,包括MaxCompute这样的集成系统称为大数据时代的数据仓库而以开源Hadoop体系为代表的的开放式HDFS存储、开放的文件格式、开放的元数据服务以及多种引擎(Hive、Presto SparkFlink等)协同工作的模式,则构成了数据湖的雏形阶段四大数据技术「普及期」当前,,大数据技术早已不是什么火箭科技,而已经渗透到各行各业,大数据的普及期已经到来市场对大数据产品的要求,除了规模、功能、简约易用,提出了成本、安全、稳定性等愈加全面的企业级生产的要求开源Hadoop线,引擎、元数据、存储等基础部件的迭代更替进入相对稳态,大众对开源大数据技术的认知达到空前的水平一方面,开放架构的便利带来了不错的市场份额,另一方面开放架构的松散则使开源方案在企业级力量构建上遇到瓶颈,特别是数据安全、身份权限强管控、数据管理等方面,协同效率较差同时引擎本身的发展也对已有的开放架构提出了更多挑战,Delta Lake.Hudi这样自闭环设计的泯灭使得一套存储、一套元数据、多种引擎协作的基础泯灭了某种程度的裂痕真正将数据湖概念推而广之的是AWS oAWS构筑了一套以S3为中心化存储、Glue为元数据服务,E-MapReduce、Athena为引擎的开放协作式的产品处理方案它的开放性和开源体系类似,并在2022年推出LakeFormation处理产品间的安全授信问题这套架构对于开源技术体系的用户来说,架构相近理解简约,仍旧相当有吸引力AWS之后,各个云厂商也纷纷跟进数据湖的概念,并在本人的云服务上供应类似的产品处理方案云厂商主推的数据仓库类产品则发展良好,数仓核心力量方面持续添加功能、成本方面极大提升(如MaxCompute连续三年刷新TPCx-BigBench世界记录),数据管理力量空前添加(发展出数据大陆与台湾建模理论和智能数仓,企业级安全力量大为富强如细粒度数据安全把握、服务可用性SLA等,在联邦计算方面也普遍做了添加,肯定程度上开头将非数仓本身存储的数据纳入管理,和数据湖的边界日益模糊综上所述,数据仓库和数据湖是伴有着大数据技术发展,进化而来的两种不同的大数据平台技术,有着各自的特点和应用场景,在企业数字化建设中均扮演着重要的角色mWHftJ大做・检术【点・■】本XM MB・・―••尸■图年大数据发展之路
2.20数据湖的本质和技术架构演进近几年数据湖的概念分外火热,各家对数据湖的定义不尽相同,但不论如何,数据湖的本质其实都包含如下四部份
1.统一的存储系统
2.存储原始数据
3.丰富的计算模型/范式
4.数据湖与上云无关从上述四个标准判断,开源大数据的Hadoop HDFS存储系统就是一个标准的数据湖架构,具备统一的原始数据存储架构而近期被广泛谈到的数据湖,其实是一个狭义的概念,特指基“于云上托管存储系统的数据湖系统,架构上接受存储计算分别的体系”例如基于AWSS3系统或者阿里云OSS系统构建的数据湖下图是数据湖技术架构的演进过程,全体上可分为三个阶段:1崖升葬收赵£”何外毋叁射・二IdHMtfitttS»)(***一体)*1Mt**M图.数据湖技术架构演进3阶段一自建开源Hadoop数据湖架构,原始数据统一存放在HDFS系统上,引擎以Hadoop和Spark开源生态为主,存储和计算一体缺点是需要企业本人运维和管理整套集群,成本高且集群稳定性差阶段二云上托管Hadoop数据湖架构(即EMR开源数据湖),底层物理服务器和开源软件版本由云厂商供应和管理,数据仍统一存放在HDFS系统上,引擎以Hadoop和Spark开源生态为主这个架构通过云上laaS层提升了机器层面的弹性和稳定性,使企业的全体运维成本有所下降,但企业仍旧需要对HDFS系统以及服务运转形态进行管理和管理,即应用层的运维工作同时由于存储和计算耦合在一起,两种资源无法独立扩展阶段三云上数据湖架构,即云上纯托管的存储系统逐渐取代HDFS,成为数据湖的存储基础设备,并且引擎丰富度也不断扩展除了Hadoop和Spark的生态引擎之外,各云厂商还发展出面对数据湖探查分析产品这个架构仍旧保持了一个存储和多个引擎的特性,相对于原生HDFS的数据湖架构的优势在于挂念用户摆脱原生HDFS系统运维艰难的问题分别后的存储系统可以独立扩展,再也不需要与计算耦合,可降低全体成本当用户接受数据湖架构之后,客观上也挂念客户完成为了存储统一化(处理多个HDFS数据孤岛的问题)FSttW•村•丁亳■食♦■卬二•Ando丙・•・Ta力E图.阿里云数据湖架构4EMR数据仓库的诞生及与数据大陆与台湾的关系数据仓库的概念最早来源于数据库领域,次要处理面对数据的简单查询和分析场景随着大数据技术发展,大量自创数据库的技术,例如SQL言语、查询优化器等,构成为了大数据的数据仓库,因其强大的分析力量,成为主流近几年,数据仓库和云原生技术相结合,又演生出了云数据仓库,处理了企业部署数据仓库的资源供应问题云数据仓库作为大数据的高阶(企业级)平台力量,因其开箱即用、无限扩展、简易运维等力量,越来越遭到人们的注目笔者认为,数据仓库的本质包含如下三部份
1.内置的存储系统,数据通过笼统的方式供应(例如接受Table或者View),不暴露文件系统;
2.数据需要清洗和转化,通常接受ETL/ELT方式;
3.强调建模和数据管理,供商业智能决策从上述的标准判断,无论传统数据仓库还是新兴的云数据仓库系统(AWS Redshift、Google BigQuery阿里云MaxCompute)均体现了数仓的设计本质,它们均没有对外暴露文件系统,而是供应了数据进出的服务接口这个设计可以带来多个优势L引擎深度理解数据,存储和计算可做深度优化
4.数据全生命周期管理,完善的血缘体系
5.细粒度的数据管理和管理4,完善的元数据管理力量,易于构建企业级数据大陆与台湾正由于如此,阿里巴巴飞天大数据平台建设之初,在选型的时候就接受了数据仓库的架构,即MaxCompute大数据平台MaxCompute(原ODPS)既是阿里巴巴经济体的大数据平台,又是阿里云上的在线大数据计算服务(百度搜索阿里云官网-左侧大数据与人工智能选择)MaxComputeSMIfM■广迂施用本网■£巴住济体.新・IL箝BL trra网干**户产品优劣•■MIAKW・无・晅・荣种,开EX•且••・IUM•MMMA raeenim图云数仓产品架构
5.MaxCompute得益于MaxCompute数据仓库的架构,阿里巴巴上层逐渐构建了数“据安全体系”、数据质量”、数据管理、数据腌等管理力量,并最终构成为了阿里巴巴的大数据大陆与台湾可以说,作为最早数据大陆与台湾概念的提出者,阿里巴巴的数据大陆与台湾得益于数据仓库的架构MM图.阿里巴巴数据大陆与台湾架构6数据湖VS数据仓库综上,数据仓库和数据湖,是大数据架构的两种设计取向两者在设计的根本分歧点是对包括存储系统访问、权限管理、建模要求等方面的把控数据湖优先的设计,通过开放底层文件存储,给数据入湖带来了最大的机警性进入数据湖的数据可以是结构化的,也可以是半结构化的,甚至可以是彻底非结构化的原始日志此外,开放存储给上层的引擎也带来了更多的机警度,各种引擎可以依据本人针对的场景任凭读写数据湖中存储的数据,而只需要遵照像当宽松的兼容性商定(这样的松散商定固然会有隐患,后文会提到)但同时,文件系统直接访问使得不少更高阶的功能很难实现,例如,细粒度(小于文件粒度)的权限管理、统一化的文件管理和读写接口升级也分外艰难(需要完成每一个访问文件的引擎升级,才算升级完毕)而数据仓库优先的设计,愈加关注的是数据使用效率、大规模下的数据管理、安全/合规这样的企业级成长性需求数据经过统一但开放的服务接口进入数据仓库,数据通常事后定义schema,用户通过数据服务接口或者计算引擎访问分布式存储系统中的文件数据仓库优先的设计通过笼统数据访问接口/权限管理/数据本身,来换取更高的功能(无论是存储还是计算)、闭环的安全体系、数据管理的力量等,这些力量对于企业长远的大数据使用都至关重要,我们称之为成长性下图是针对大数据技术栈,分别比较数据湖和数据仓库各自的取舍图.数据湖和数据仓库在技术栈上的对照7机警性和成长性,对于处于不同时期的企业来说,重要性不同当企业处于初创阶段,数据从产生到消费的生命周期还需要一个创新探究的阶段才干渐渐沉淀下来,那末用于支撑这种业务的大数据系统,机警性就愈加重要,数据湖的架构更合用当企业渐渐成熟起来,已经沉淀为一系列数据处理流程,问题开头转化为数据规模不断增长,处理数据的成本不断添加,参预数据流程的人员、部门不断增多,那末用于支撑这种业务的大数据系统,成长性的好坏就打算了业务能够发展多远数据仓库的架构更合用不少企业(特别是新兴的互联网行业)正在经受这样一个从探索创新到成熟建模的过程在这个过程中,由于数据湖架构太过机警而缺少对数据监管、把握和必要的管理手段,导致运维成本不断添加、数据管理效率降低,企业落入了数“据沼泽”的境界,即数据湖中汇聚了太多的数据,反而很难高效率地提炼真正有价值的那部份最终只要迁移到数据仓库优先设计的大数据平台,才处理了业务成长到肯定规模后所泯灭的运维、成本、数据管理等问题阿里巴巴的数据大陆与台湾战略,正是在2022年先后阿里巴巴全集团完成MaxCompute(数据仓库)对多个Hadoop(数据湖)的彻底替换(登月项目)才逐渐构成的下二代演进方向湖仓二体图.数据湖的机警性数据仓库的成长性的运亶图8VS。
个人认证
优秀文档
获得点赞 0