“湖上建仓”与“仓外挂湖”的湖仓一体建设实践比较

湖仓一体平台的建设解决了流批一体面临的原子事务、一致性更新以及元数据性能瓶颈等问题,使得湖仓一体平台的构建既能满足短期业务发展的需要,又能支撑长期的数据应用诉求。

“湖上建仓”与“仓外挂湖”的湖仓一体建设实践比较
出处:大数据技术标准推进委员会

数据平台是能够为企业提供数据分析能力、支撑上层数据应用、助力企业数字化转型的底层基础设施,它包含数据存储、数据计算分析等能力的一套基础设施,通过汇聚各方数据,提供“采-存-算-管-用”全生命周期的软件支撑。经过数十年的发展,数据平台架构持续演进,主要经历了数据库、数据仓库、数据湖三个阶段。

图 1 数据平台发展历程图 来源:CCSA TC601

如今,数据仓库和数据湖是数据平台最广泛的两种架构:数据仓库具备规范性,可针对结构化数据进行集中式的存储和计算,但无法处理半结构化与非结构化数据,且其扩展能力有一定局限性;数据湖具有更好的扩展能力,能够灵活支持对于多种类型数据的高效取用,但不支持事务处理,缺乏一致性、隔离性,数据质量难以保障。数据仓库和数据湖是两套相对独立的体系,各有优劣势,无法相互替代。

为满足多种数据类型存储、多场景分析等业务诉求,企业采用数据湖+数据仓库混合架构。“数据湖+数据仓库”混合架构满足了结构化、半结构化、非结构化数据高效处理需求,解决了传统数据仓库在海量数据下加载慢、数据查询效率低、难以融合多种异构数据源进行分析的问题,但也存在混合架构复杂,开发运维难度大、成本高,数据处理链路长时效低等问题。

一、湖仓一体概念

自 2021 年“湖仓一体”首次写入 Gartner 数据管理领域成熟度模型报告以来,随着企业数字化转型的不断深入,“湖仓一体”作为新型的技术受到了前所未有的关注,越来越多的企业视“湖仓一体”为数字化转型的重要基础设施。湖仓一体平台的建设解决了流批一体面临的原子事务、一致性更新以及元数据性能瓶颈等问题,使得湖仓一体平台的构建既能满足短期业务发展的需要,又能支撑长期的数据应用诉求。

湖仓一体是指融合数据湖与数据仓库的优势,形成一体化、开放式数据处理平台的技术。通过湖仓一体技术,可使得数据处理平台底层支持多数据类型统一存储,实现数据在数据湖、数据仓库之间无缝调度和管理,并使得上层通过统一接口进行访问查询和分析。

湖仓一体架构模块图详见图 3。总的来看,湖仓一体通过引入数据仓库治理能力,既可以很好解决数据湖建设带来的数据治理难问题,也能更好挖掘数据湖中的数据价值,将高效建仓和灵活建湖两大优势融合在一起,提升了数据管理效率和灵活性。

图 3 湖仓一体架构模块图 来源:CCSA TC601

二、湖仓一体实践路径

企业需求的驱动下,数据湖与数据仓库在原本的范式之上向其限制范围扩展,逐渐形成了“湖上建仓”与“仓外挂湖”两种湖仓一体实现路径。湖上建仓和仓外挂湖虽然出发点不同,但最终湖仓一体的目标一致。

(一) 湖上建仓

湖上建仓是指基于云存储或第三方对象存储的云数据湖架构,或者基于开源 Hadoop 生态体系并以 DeltaLake、Hudi、Iceberg 三大开源数据湖作为数据存储中间层实现多源异构数据的统一存储,以统一调用接口方式调用计算引擎,最终实现上下结构的湖仓一体架构。代表产品有:华为云-FusionInsight MRS、AWS-智能湖仓、Databricks –
Delta Lake 等。

基于开源 Hadoop 生态体系,擅长海量数据离线批处理,在高并发数据集市、即席查询、事务一致性等方面存在先天的不足。所以实现途径中,实现方向为提升查询引擎、存储引擎能力。

总的来看“湖上建仓”路径本质是在湖的基础上增加仓的能力,需解决以下六大技术难点:

  • 一是统一元数据管理。元数据的统一最为核心,是确保湖仓一体在架构和应用层面达到统一的关键。湖上建仓路径通过增加元数据管理组件实现元数据的统一管理,目前大都只实现了元数据的采集和统一存储。
  • 二是事务支持。湖上建仓通过集成 Hudi、Iceberg、Delta Lake 三大开源数据湖表格式进行优化,支持数据更新,实现支持事务的存储层。
  • 三是提高查询性能。湖上建仓路径在引擎加速和存储优化方面,通过引入如缓存加速、谓词下推、元数据相关语义优化、C++重写引擎等能力来解决原有计算、存储引擎的性能瓶颈问题。
  • 四是存储兼容性。湖上建仓路径中的存储介质由原有的以 HDFS为主,扩展到支持云对象存储等多种介质存储。
  • 五是存算分离。传统的Hadoop 体系不具备云原生能力,是存储和计算部署在同一物理集群来应对网速不足、数据在节点间交换时间长的问题。湖上建仓则是将 HDFS+对象存储独立部署,实现存算分离。
  • 六是弹性伸缩。基于 K8S、Docker 等容器化技术对 Hadoop 体系组件、服务进行容器化改造。目前大部分产品有实现计算层、存储层弹性伸缩,少量产品实现了根据业务负载自动弹性伸缩计算资源。

(二) 仓外挂湖

仓外挂湖是指以 MPP 数据库为基础,使用可插拔架构,通过开放接口对接外部存储实现统一存储,在存储底层共享一份数据,计算、存储完全分离,实现从强管理到兼容开放存储和多引擎。代表产品: Snowflake、AWS Redshift、阿里云 MaxCompute/Hologres 湖仓一体。

MPP 数据库技术体系,从关系型数据库演进而来,对事务一致性、联机分析处理性能都有较好的支撑,但在分析场景方面存在较大的局限性,主要以结构化数据分析为主,无法支撑半/非结构化数据存储、实时计算、机器学习等场景。所以实现途径中,实现方向为增加存储能力,提升查询引擎效率。

总的来看,“仓外挂湖”路径本质是在仓的基础上增加湖的多类型存储等能力,需解决以下五大技术难点:

  • 一是统一元数据管理。打通不同数据系统,具备数据共享和跨库分析的能力,并支持互联互通、计算下推、协同计算,实现数据多平之间透明流动。仓外挂湖路径目前主要是将对接外部存储如Hadoop、对象存储等的元数据进行采集,统一存储、管理。
  • 二是存储开放性。仓外挂湖路径的存储开放性主要表现在:存储介质兼容方面,将非数仓自身存储如 Hadoop、云对象存储等的数据纳入管理;数据格式方面,采用开放、标准化的数据格式,既包含Hudi、 Iceberg、Delta Lake 等开放格式,也包括 Parquet、ORC、CSV 等存储格式的支持。
  • 三是扩展查询引擎。仓外挂湖路径保留原 MPP 计算引擎计算能力的基础之上,主要是增加批处理和实时数据处理的能力。其中批处理方面是融合更轻量级、高效率的计算能力,而实时处理方面则是通过微批以及增量计算的方式,增强流的计算能力。
  • 四是存算分离。仓外挂湖需进行存算分离架构改造,而传统的 MPP 存算耦合架构,不具备云原生能力。目前,仓外挂湖路径主要基于存算分离架构改造后的云原生 MPP 数据库实现。
  • 五是弹性伸缩。基于 K8S、Docker 等容器化技术对 MPP 体系的组件、服务进行容器化改造。目前该路径有实现计算层、存储层弹性伸缩,少量产品实现了根据业务负载自动弹性伸缩计算资源。

三、传统数据仓库到湖仓一体建设实践

1. 案例背景

威海市商业银行于 2012 年开始开展数据仓库建设(基于 DB2 数据仓库),按需实现数据集中接入和应用系统数据供给,支撑全行共性数据加工和报表统计分析及查询。但是伴随行内信息化进程加快,数据孤岛、开发周期较长、数据冗余、数据服务支撑能力弱、数据架构扩展性差和数据集群算力低等不足也逐步显现。

2. 拟解决的痛点、难点

1) 提升开发运维效率

采用先进大数据及分布式数据库技术,构建适用于行内的数据架构及企业级数据平 。定制一套简单、快捷的开发平 ,梳理适合开发、运维工作流程,提升开发运维工作效率。

2) 提高系统计算性能

具备海量数据存储及分析处理能力,支持横向扩展,合理配置作业并发数量,充分利用系统资源,满足日终批量处理时间要求。

3) 提升数据服务能力

通过提升数据服务,采用新的数据服务模式,利用数据发布、订 阅和数据API 等方式,提升数据服务能力;整合内部数据与外部数据、流式数据与批量数据,构建企业级数据模型,全面支撑行内经营管理 数据需求;通过数字化场景工作坊挖掘以客户为中心的数字应用场景。

3. 解决方案

威海银行采用基于MRS 和DWS 的湖仓一体方案逐步替换基于DB2的传统数据仓库,并最终实现湖仓一体对行内数据应用场景的全面支撑。威海银行于 2022 年 3 月启动湖仓一体项目建设,项目建设主要分为 3 个阶段:

第一阶段,夯实基础。明确定位,形成全行数据体系,建立全行统一数据架构,试点支撑数字化转型项目数据服务需求。截至 2022年 5 月,已完成数据湖及数据仓库集群搭建和第一期数据入湖工作,支撑关联交易、贷后管理等业务系统用数需求。

第二阶段,业务赋能。形成全行数据服务体系,构建业务主题集市,全面提升全行用数能力和水平。截至 2023 年 5 月,已构建企业级基础主题模型 200 余项,全面落实数据治理工作提出的数据标准,保障数据有序、高效、保质、安全使用;建设零售、对公、金市、风险、监管等 9 大业务集市,支撑智慧营销、财务盈利性分析和监管报送等业务应用,同时满足业务自助分析场景。

第三阶段,引领创新。持续演进湖仓一体建设,构建全面的数据智能实时服务,加深业务发展和数据服务的融合。主要开展数据应用与服务的持续优化,深度融合数据服务与业务流程、优化数据服务框架,探索数据智能应用场景,构建开放式数据服务体系等工作。

4. 价值与效果

通过湖仓一体建设实践,带来成效如下:

业务服务方面。全面支撑智慧营销、智慧运营、风险防控、监管报送等应用场景,支持 22 个数字化转型项目数据服务,智慧营销累计获客目标完成 187.5%,报表自动化率达到 88%。

能力建设方面。构建科学合理的数据架构,全面提升数据接入能力、数据整合能力和数据加工效率,在日终作业数量增加 5 倍的基础上,日终批量加工效率提升 200%;通过 BI 自助报表工具引入和自助用数培训宣贯,营造全行自助用数氛围。

平台运行方面。通过数据中 湖仓一体的建设,集群算力提升 3倍,资源利用率提升 30%,有效支撑海量数据加工分析、模型预测等场景。

本文摘编自CCSA TC601 大数据技术标准推进委员会发布的《湖仓一体技术与产业研究报告(2023)》,全文下载:

更多标准、白皮书、报告等高质量纯净资料下载,在文末扫码关注官方微信公众号“idtzed”,进入公众号菜单“治库”,或按自动回复发送引号内关键词。