到底是什么是“数据湖仓”?

360影视 欧美动漫 2025-03-28 14:04 2

摘要:前面我们提到,数据仓库出现于1990年代,主要基于MPP(Massively Parallel Processing,大规模并行处理)或者关系型数据库实现,用于企业做数据存储、处理和分析,发展数据看板、BI(商业智能)等用途。

之前写了数据仓库和数据湖:

「链接」到底是什么是“数据湖仓”?

「链接」到底什么是“数据湖”?

今天是大数据专题的最后一篇,来讲讲数据湖仓

█ 为什么会有“数据湖仓”?

前面我们提到,数据仓库出现于1990年代,主要基于MPP(Massively Parallel Processing,大规模并行处理)或者关系型数据库实现,用于企业做数据存储、处理和分析,发展数据看板、BI(商业智能)等用途。

而数据湖,出现于2010年代,主要基于大数据技术(Hadoop等)生态,用于支撑多样化的数据存储,实时性更强,适合满足批处理、流式计算等业务场景。

数据仓库的特点是,先做数据处理,搞得规范整齐之后,存起来。用的时候就直接用。它主要存的是结构化(行列)数据。

数据湖的特点是,什么数据(结构化、非结构化、半结构化)都能存,不做预处理,先全部都存起来,等要用的时候,再处理。

两种技术,各有优缺点:

从成本的角度来看,数据湖的起步成本很低,但随着数据体量的增大,成本会迅速飙升。而数据仓库恰好相反,前期建设开支很大,后期成本增加趋缓。

数据仓库和数据湖,都是基于数据进行价值挖掘,只是侧重点不同。对于企业来说,两者都有价值,所以,会选择同时建设。

很显然,这不仅导致了高昂的建设投资成本,也使得数据存在冗余和重复。

基于以上种种原因,业界就开始思考:是不是可以将数据仓库和数据湖进行结合,充分发挥两者的优势,弥补各自的缺陷呢?

于是,就有一些服务商,开始研究如何将两者的能力进行“打通”。

主要思路包括两种:一种是让数据仓库支持对数据湖的访问。还有一种,是让数据湖具备数据仓库的一些能力。

前者比较有代表性的,是2017年Redshift推出的Redshift Spectrum。它支持Redsift数据仓库用户访问AWS S3数据湖的数据。

后者有代表性的比较多,包括2017年Hortonworks孵化出的Apache Atlas和Ranger项目,2018年Nexflix开源的内部增强版本元数据服务系统Iceberg。2018-2019年,Uber和Databricks相继推出了Apache Hudi和DeltaLake,推出增量文件格式,用以支持Update/Insert、事务等数据仓库功能。

所有这些尝试和努力,都多多少少存在一些缺陷(数据仓库和数据湖存在本质的区别,整合难度很大),并不算成功。

2020年,数据智能独角兽企业Databricks(没错,就是提出Delta Lake的那个公司,数据湖的代表企业)正式提出了数据湖仓(Data Lakehouse)概念。

Databricks联合创始人兼首席执行官阿里·戈德西(Ali Ghodsi)表示:

“从长远来看,所有数据仓库都将被纳入数据湖仓,这不会在一夜之间发生——这些东西会共存一段时间——在价格和性能上,数据湖仓完胜数据仓库。”

数据湖仓,也被称为湖仓一体

2021年,“湖仓一体”首次被写入Gartner数据管理领域成熟度报告。2023年6月,大数据技术标准推进委员会发布了《湖仓一体技术与产业研究报告(2023年)》。这一年的6月26日,“湖仓一体”在中国大数据产业发展大会上成功入选“2023大数据十大关键词”。

█ 数据湖仓的主要特点

数据湖仓(湖仓一体),说白了,就是一种将数据仓库和数据湖打通的新型开放式架构。它既具备数据湖的灵活性,也具备数据仓库的高性能及管理能力,为企业进行数据治理带来了更大的便利和更高的效率。

在数据湖仓的底层,支持多种数据类型并存,能实现数据间的相互共享。

在数据湖仓的上层,可以通过统一接口进行访问,可同时支持实时查询和分析。

数据仓库和数据湖这两套体系相互打通之后,数据可以在两者之间自由流动。

也就是说,数据湖里的“新鲜”数据(热数据),可以流到数据仓库里,直接被数据仓库使用。

而数据仓库里的“不新鲜”数据(冷数据),也可以流到数据湖里,低成本长久保存,供未来使用。

数据湖仓的特点,其实就是数据仓库的优点+数据湖的优点。

在数据存储方面,继承了数据湖的优势,支持多样化数据,且以HDFS或云对象存储为基础,实现了低成本、高可用。数据以原始格式或开放文件格式(如 Parquet、ORC)存储,具备高效的压缩比与列存储特性,方便查找。

开放文件格式,也保障了数据在不同计算引擎间的通用性。

数据湖仓同样支持Iceberg、Hudi、Delta Lake等开放表格式。它们不仅支持数据的近实时更新、高效的快照管理,还兼容 SQL 标准,使得数据既可以像传统数据库表一样进行事务性操作,又能充分利用数据湖的分布式存储与弹性计算优势。

在计算引擎方面(采用存算分离架构),整合了Spark、Flink、Presto、Doris等多样的计算引擎。通过统一的调度与资源管理,不同引擎可以共享存储资源,协同处理复杂的数据工作流,满足企业从实时监控到深度分析的全方位计算需求。

阿里云数据湖仓架构(来自阿里云官网)

在数据一致性方面,提供ACID(原子性、一致性、隔离性、持久性)保证,确保数据写入的一致性,保证了多方同时读取或写入数据时的数据准确性。

在数据管理方面,数据湖仓实现了统一的元数据管理,支持全链路血缘,提供统一的命名空间、全局的数据目录。无论数据存储在何处,使用何种计算引擎,用户都能通过统一的API进行快速检索、理解与访问数据。数据治理,变得非常高效。

在数据安全方面,数据湖仓一般还支持多租户和库表列级数据权限,能够很好地进行租户隔离和数据权限管控,确保了数据的安全性和隐私性。

当然了,数据湖仓也不是没有缺点。

作为一项融合的技术架构,它的复杂性比较高,需要很高的技术门槛。而且,它的早期投资比较大,对企业来说有一定的成本压力。

数据湖仓的性能优化、数据治理以及安全防护,也存在一定的挑战。这些门槛和挑战,往往会让企业用户望而却步。

█ 数据湖仓的参考架构

数据湖仓诞生至今的时间并不是很长。从最开始的仓和湖独立建设,到后来,逐渐形成了“湖上建仓”“仓外挂湖”两种实践路径。

湖上建仓,是指基于数据湖架构,或者以数据湖作为数据存储中间层,实现多源异构数据的统一存储。然后,以统一调用接口方式调用计算引擎,最终实现上下结构的湖仓一体架构。

仓外挂湖,是指以MPP数据库为基础,使用可插拔架构,通过开放接口对接外部存储,实现统一存储。

随着时间的推移,也有企业开始推出两种架构的深入融合。

目前,在数据湖仓领域比较有代表性的服务商,包括国外的AWS(亚马逊云科技)、微软Azure 、Databricks、Snowflake,以及国内的阿里云、腾讯云、华为云、星环科技等。

各大服务商的架构有较差的差异,但基本上都包括存储层、元数据管理层、计算引擎层、服务与治理层等。

以下是几个比较有代表性的架构,供参考。

科杰的数据湖仓架构:

图片来自网络

Azure的数据湖仓架构:

图片来自网络

AWS的数据湖仓(他们叫智能湖仓)架构:

图片来自“特大号”

基于Apache Doris的湖仓一体架构:

图片来自网络

█ 最后的话

目前来看,数据湖仓正在加速成为企业重要的战略性基础设施,用于长期的数据价值挖掘,以及发展AI应用。

根据毕马威的报告显示,86%的海外企业计划统一其分析数据,以支持AI业务的开发。国内也是如此。例如腾讯、B站、小红书等头部互联网企业,都采用了数据湖仓架构,用于不同程度的AI应用。

数据湖仓在实时流处理与机器学习方面表现出色,能够很好地满足大模型的训练需求,相信未来几年会得到更好的发展。

好啦,以上就是关于数据湖仓的介绍。鲜枣课堂大数据专题系列到此结束。感谢大家的耐心观看!

参考文献:

1、《数据库、数据湖、数据仓库、湖仓一体、智能湖仓,分别都是什么鬼》,特大号;

2、《从数据湖到湖仓一体:统一数据架构演进之路》,Light Gao,知乎;

3、《数据仓库、数据湖、湖仓一体,究竟有什么区别?》,SelectDB,知乎;

4、《什么是湖仓一体?湖仓一体解决了什么问题?》,帆软;

5、《2024大数据“打假”:什么才是真湖仓一体?》,张友东;大数据在线;

6、《大数据架构系列:如何理解湖仓一体?》,叶强盛,腾讯云开发者社区;

7、百度百科,维基百科,各大服务商官网。

来源:鲜枣课堂

相关推荐