自2021年“湖仓一体”首次写入Gartner数据管理领域成熟度模型报告以来,随着企业数字化转型的不断深入,“湖仓一体”作为新型的技术受到了前所未有的关注,越来越多的企业视“湖仓一体” 为数字化转型的重要基础设施。
01
数据平台的发展历程
需求催生技术革新,在存储海量数据需求的推动下,数据平台架构持续演进,经过数十年的发展,主要经历了数据库、数据仓库、数据湖三个阶段。湖仓一体是数据平台发展的重要趋势。
第一阶段:数据库
诞生于20世纪60年代,主要用于OLTP场景。代表产品: Oracle、SQL Server、Mysql等
第二阶段:数据仓库
20世纪90年代代数据仓库理论被提出,主要用OLAP场景分析。传统数仓有Clickhouse、Greenplum等,云数仓有AWS redshift、Snowflake等。
第三阶段:数据湖
2010年数据湖概念被提出,随着三大开源数据湖技术的成熟,数据湖产品加速落地。代表产品有亚马逊-S3、LakeForation,阿里云-数据湖构建DLF、数据开发治理Dataworks、对象存储OSS、开源大数据平台EMR等。
02
数据湖、数据仓库特性分析
数据仓库主要用于解决单个关系型数据库架构,无法支撑庞大数据量的数据存储问题,很好地解决了TB到PB级别的数据处理问题,但是由于数据仓库仍以结构化数据为主,无法解决业务增长带来的半结构化、非结构化数据的存储、处理问题,且其整个建设过程需要遵循一系列规范,比如标准化的数据集成模式和存储格式、统一的数据仓库分层分域模型以及指标体系建设等,带来了数据仓库建设存储成本高、维护开发难度大、扩展能力受限制等问题。
数据湖的出现很好解决了数据仓库建设存在的一系列问题,将数据管理的流程简化为数据入湖和数据分析两个阶段。数据湖支持各种 类型数据的统一存储。数据分析则以读取型(schema on read)形式,极大提升分析效率。然而数据湖对多样类型数据的支持以及灵活高效的 分析方式,带来了数据治理难的问题,比如因为缺乏治理导致数据质量下降、数据不可用等,很容易退化形成数据沼泽。
结论:数据仓库和数据湖是两套相对独立的体系,各有优劣势,无法相互替代。
△数据湖与数据仓库对比表
03
湖+仓混合业务架构
为满足存储多种数据类型、多场景分析等业务诉求,企业采用混合部署模式,数据湖、数据仓库、关系型数据库等多种架构并存,其中数据湖和数据仓库通过ETL进行数据交换。
数据湖和数据仓库是两套独立的体系,其中数据湖基于 Hadoop 技术生态 (HDFS、Spark、Flink 等技术)来实现,主要用于支撑多源异构的数 据存储,执行批处理、流处理等工作负载。数据仓库主要基于 MPP 或 者关系型数据库来实现,主要支撑结构化数据在 OLAP 场景下的 BI 分析和查询需求。
△湖+仓混合架构图
“数据湖+数据仓库”混合架构满足了结构化、半结构化、非结构化数据高效处理需求,解决了传统数据仓库在海量数据下加载慢、数据查询效率低、难以融合多种异构数据源进行分析的问题,但也存在明显的四大弊端。一是数据冗余,增加存储成本。二是两个系统间额外的 ETL(抽取、转化、加载)流程导致时效性差。三是数据一致性保障低,增加数据校验成本。四是混合架构复杂,开发运维难度大、成本高。
04
湖仓一体实践路径
“数据湖+数据仓库”混合架构是技术向业务妥协的一个产物,并不是真正意义的湖仓一体平台。2020年Databrics提出“湖仓一休”概念。湖仓一体是指融合数据湖与数据仓库的优势,形成一体化、开放 式数据处理平台的技术。通过湖仓一体技术,可使得数据处理平台底 层支持多数据类型统一存储,实现数据在数据湖、数据仓库之间无缝 调度和管理,并使得上层通过统一接口进行访问查询和分析。具备的能力包括:
-
多模存储:多样数据统一存储
-
架构统一:统一资源调度、存储管理、计算引擎、查询接口
-
性能优越:数据加工链路缩短资源复用性增加、时效性提高
-
场景多元:多样化业务场景和极致用户体验
△湖仓一体架构技术架构图
总体来看,湖仓一体通过引入数据仓库治理能力,既可以很好地解决数据湖建设的数据治理难问题,也能更好地挖掘数据湖中的数据价值,将高效建仓和灵活建湖两大优势融合在一起,提升了数据管理效率和灵活性。
企业需求的驱动下,数据湖与数据仓库在原本的范式之上向其限制范用扩展,逐渐形成了“湖上建仓”与“仓外挂湖”两种湖仓一体实现路径。湖上建仓和仓外挂湖虽然出发点不同,但最终湖仓一体的目标标一致。
△两种实现路径对比表
湖上建仓
定义:是指基于云存储或第三方对象存储的云数据湖架构,或者基于开源 Hadoop 生态体系并以 DeltaLake、Hudi、Iceberg 三大开 源数据湖作为数据存储中间层实现多源异构数据的统一存储,以统一调用接口方式调用计算引擎,最终实现上下结构的湖仓一体架构。
原理:以数据湖为基石,在数据湖中引入数据仓库的数据治理能力,实现数据湖到湖仓一体的进化。
实现方案:基于云存储或第三方对象存储的云数据湖架构,基于开源Hadoop生态体系扩展。
仓外挂湖
定义:是指以 MPP 数据库为基础,使用可插拔架构,通过开放接口对接外部存储实现统一存储,在存储底层共享一份数据,计算、 存储完全分离,实现从强管理到兼容开放存储和多引擎。
原理:以MPP数据库为核心,使用可插拔架构,通过开放接口对接外部存储实现统一存储。
实现方案:基于云原生MPP数据库构建。
05
亿信华辰湖仓一体解决方案
湖仓一体的核心是实现数据湖和数据仓库中的数据、元数据的无缝打通,并可自由流动。亿信华辰结合多年的BI和数仓实施经验,综合传统数据仓库和现代数据湖两种技术特点,推出了仓湖一体解决方案。该建设方案涵盖数据存储、数据集成、数据交换、数据共享等多个方面,综合数据湖、数据仓库两种技术演进方向,为企业用户提供云原生仓湖一体解决方案,构建企业数字化新基座。
亿信华辰仓湖一体数据中心定位于为企业提供易于部署、开发、运维的数据底座平台,平台提供的能力包括:数据的统一分类存储,数据采集加工的流程自动化,可视化的数据开发,提供多样化的数据共享访问标准接口等等。建设内容包括数据采集、数据处理、数据建模、数据交换四大方面。
湖仓一体行业正处在发展初期,总的来看湖仓一体并不是一个纯技术攻关工作,而是技术逐步融合、整合的过程,其本质是异构数据平台走向一体化的过渡阶段。亿信华辰基于客户需求和技术演进趋势持续创新,为企业客户提供仓湖一体解决方案,致力于构建企业数据资源共享池,让企业业务的创新更敏捷,业务洞察更准确,加速释放数据价值。
以上部分内容引用CCSA TC601《湖仓一体技术与产业研究报告》