当前位置: 首页 > 后端技术 > Java

离线实时集成数仓和湖仓集成——云原生大数据平台的不断演进

时间:2023-04-01 19:30:38 Java

简介:阿里云智能研究员林伟:阿里巴巴从湖到仓的演进给我们带来了湖仓集成的思考,湖的灵活、数据的丰富多样、仓库的增长、企业级管理有机地融合在一起。这是阿里巴巴最佳实践和新一代大数据架构的宝贵财富。林伟,阿里云智能通用计算平台研究员,阿里云智能通用计算平台MaxCompute,机器学习PAI平台技术总监本文将分三部分为读者讲述离线实时集成数仓和湖仓——云原生大数据平台续进化。通过从数据湖到数据仓库的历史,反思为什么做湖仓一体化,为什么湖仓一体化现阶段开始做离线和实时湖仓一体化的数据仓库。湖仓集成离线在线数仓集成智能数仓希望通过这次分享让大家更加了解我们为什么要做湖仓集成。一、湖仓融合(一)阿里巴巴从数据湖到数据仓库的历程2007年宁波战略会议决定建立一个发达、协调、繁荣的电子商务生态系统,生态系统的核心是数据。但此时,各个业务部门都在垂直发展数据能力,用数据来支持业务决策服务。这些数据中心支撑着业务部门的发展。但是当我们发展到一定阶段,我们希望进一步挖掘各个业务部门的数据之间的关联性,从而利用这些高层次的数据分析来挖掘更高的业务价值。我们遇到了很多困难,因为数据来自不同的部门。不同的人会给你提供不同的数据集。没有清晰的数据质量监控,你不知道数据是否完整,因此你需要花费大量时间来校准数据。这个过程耗时太长,在大多数情况下会做很多无用功,反而降低了公司的整体效率。所以在2012年,我们决定把所有业务部门的数据打通,立志做“一个数据,一个服务”。这个过程其实就是一个典型的从数据湖升级到数据仓库的过程。但是,由于我们缺乏很好的湖和仓库系统的集成,所以这个过程非常困难。我们称这个过程为“登月”。从名字就可以看出这中间的难度。这段时间,各个团队甚至需要停止日常业务开发,配合数据整理,将现有的数据分析流程迁移到统一的数据仓库系统中。最终我们用了18个月的时间,花了很多钱,在2015年12月完成了统一的大数据仓库平台的搭建,这就是阿里巴巴的MaxCompute。通过这个统一的数据仓库平台,无论是业务团队、服务商、物流还是其他环节,都可以方便、快捷、更好地挖掘商机。所以大家可以看到,阿里巴巴统一大数据平台完成后,业务增长也进入了快车道。正是因为有更好的数据支持,商家和客户才能快速做出一些商业决策。(2)数据仓库和数据湖的关系从开发者的角度来看,数据湖更加灵活,他们更喜欢这种任意的模型。任何引擎都可以读写,没有限制,非常容易上手。从数据管理者的角度来看,数据湖可以作为一个起点,但是当它达到一定的规模,当数据作为一种资产,或者需要做出更大的业务决策时,希望有一个好的数据仓库。(3)数据仓库和数据湖系统的增长曲线上图中的增长曲线基本就是阿里的发展曲线。一开始也是数据湖的状态,各个业务部门独立开发,起步快,灵活性强。但是当它达到一定规模时,数据无人管理,各个业务部门的数据逻辑语言不一致,很难对齐。所以当时50%到80%的无效时间都花在了校验数据上。随着规模的不断扩大,这种损失越来越大,迫使我们推动建立公司统一数据仓库。(4)湖仓融合正是因为我们经历过堪比“登月”的痛苦,所以我们不希望MaxCompute未来的企业客户经历这样痛苦的过程,所以我们构建了一个湖合一的开发平台和仓库。当公司规模较小时,可以利用数据湖能力更快地定制自己的分析。当企业发展到一定阶段,需要更好的数据管理和治理方式时,沪仓一体化平台可以无缝升级管理数据,有效进行数据分析,让企业在数据管理上更加规范。这是湖仓一体化整体设计的核心思想。我们将湖系统和仓库系统有机地结合起来。一开始,没有元数据。当你想建立一个数据仓库时,我们可以从湖中提取这个元数据。这个元数据就是仓库的元数据。数据放在一个集成的元数据分析平台上。许多数据仓库数据管理平台可以建立在这个元数据之上。同时,在数仓、湖、仓一体化平台上,我们有效支持了很多分析引擎,包括任务型计算引擎,包括MaxCompute等批处理,Flink的流处理和机器学习,以及开源组件可以分析我们的数据;还有一个面向服务的数据引擎,可以支持交互式查询服务,可以更加实时的展示我们的数据,这样用户就可以在这个服务引擎上构建自己的数据服务应用。在引擎之上,我们构建了丰富的数据管理工具,使业务部门能够进行高效的整体数据治理。而这一切都得益于我们打通了湖与仓的数据,这也是湖与仓整体设计的核心。2.离线和在线数据仓库的整合当今社会越来越便利,客户需要更快地做出商业决策。我们在双十一GMV实时大屏、春晚直播实时大屏等数据分析,以及机器学习从线下模型到线上模型的趋势中都能看到。这些需求推动了实时数据仓库的发展。事实上,实时数仓和离线数仓有着相似的发展过程。在实时系统的发展初期,我们首先考虑的是引擎,因为只有引擎才能进行实时数据分析,所以阿里巴巴将研发重点放在了Flink等流计算引擎上。但是只有流计算引擎,类似数据湖阶段,我们缺乏对分析结果数据的管理,所以在第二阶段,我们使用我们的离线数仓产品来管理这些分析结果,从而对分析结果进行管理到我们的整体数据仓库和数据管理。但是,将实时分析的结果放在离线数仓中,对于实时的业务决策来说显然不够及时。所以我们现在在发展第三阶段:实时数仓。我们会将流式引擎的分析结果实时写入实时数仓Hologres,让分析结果可以被BI实时分析,从而有效支持客户的实时业务决策。这就是离线和在线数据仓库一体化的设计。综上所述,在离线和在线数据仓库集成之前,原始分析是一个非常复杂的过程。有离线、在线和许多不同的引擎。现在总结或者简化成上图所示的架构。我们将使用实时引擎进行预处理。经过预处理后,我们将数据写入MaxCompute的离线数仓,也可以同时写入Hologres实时数仓,这样可以做更多的实时业务。商务智能分析。另一方面,MaxCompute的离线数仓存储成本更低,吞吐性能更好,可以做大量的离线数据分析。这就是离线数仓的一体化设计。通过集成设计,可以为客户带来一个非常平衡的系统。根据数据场景或业务场景,可以使用批处理。并通过数据压缩和冷存储,将数据按照冷热方式进行不同梯度存储,以更低的成本获得离线分析。当更加强调数据的实时价值时,可以使用流计算引擎来实现。同时希望有快速交互,希望通过各种方式、各种维度、各种角度快速观察生成的报告。这时候就可以利用交互引擎,对数据进行高度纯化后,进行各个维度的洞察。希望能和湖仓一体化平台做一个很好的平衡,根据实际的业务量、需求、规模成本等,做一个更好的点。总的来说希望湖仓一体的系统可以用,不管是离线还是在线。通过不同的分析引擎,支持各种类型的分析,同时可以通过在线服务引擎实时进行BI,可以实现低成本、定制化能力,以及实时和在线服务的各种平衡.允许客户根据实际业务场景进行选择。3.智能数据仓库有了统一的数据仓库平台,我们可以在其之上构建强大的数据治理或分析平台。这是我们的DataWorks。这个平台上有很多数据建模工具,提供数据质量和标准,提供血液分析,提供编程助手等等。正是因为有了沪仓线上线下一体化的基础能力,我们才有可能实现更加智能化的大数据开发治理平台。为了与我们的企业客户分享更多经过验证和有效的数据治理经验。原文链接本文为阿里云原创内容,未经许可不得转载。