博客 湖仓一体由来

湖仓一体由来

   沸羊羊   发表于 2023-08-07 10:19  505  0

湖仓一体(Lakehouse)是一种新兴的数据处理架构,它将数据仓库(Data Warehouse)和数据湖(Data Lake)的最佳实践相结合,形成一种统一的数据管理平台。这种架构的由来,是因为传统的数据仓库和数据湖在数据处理方面都存在一些不足,无法满足现代数据分析和人工智能的需求。

数据仓库的由来可以追溯到20世纪80年代,当时的企业需要将海量的数据整合起来,以便进行决策支持和分析。为了解决这个问题,数据仓库技术应运而生。数据仓库是一个集成了多个数据源和数据目标的中央存储库,可以对数据进行清洗、整合和转换,使得数据更加易于访问、理解和分析。但是,随着数据量不断增加,数据仓库的扩展性和灵活性受到了限制,无法满足现代数据分析和人工智能的需求。

数据湖的由来则比较新,大概是2010年左右。数据湖是一个存储结构化、半结构化和非结构化数据的存储库,可以支持多种数据源的接入,并且支持多种数据处理和查询技术。数据湖具有很高的灵活性和可扩展性,可以支持大数据处理、实时流数据处理、机器学习等多种应用场景。但是,数据湖也存在一些问题,比如数据质量难以保证、数据管理和治理难度大等。

因此,将数据仓库和数据湖的最佳实践相结合的湖仓一体架构,就成为了现代数据处理的一种新兴趋势。湖仓一体可以将数据仓库和数据湖的优势互补,既具有数据仓库的数据处理和管理能力,又具有数据湖的灵活性和可扩展性。

湖仓一体的基本架构包括三个层次:存储层、计算层和应用层。存储层包括一个统一的数据存储库,可以存储结构化、半结构化和非结构化数据,并且支持多种数据源的接入;计算层包括一系列的数据处理和查询技术,可以对数据进行清洗、整合和转换,并且支持实时流数据处理和机器学习等多种应用场景;应用层则是对外提供统一的接口服务,支持多种数据分析和人工智能应用。

湖仓一体的实现需要一系列的技术和工具,包括分布式文件系统、元数据管理、数据质量监控、安全和隐私保护等。这些技术和工具可以帮助实现湖仓一体的可扩展性、高可用性、安全性和可靠性。

总之,湖仓一体是一种新兴的数据处理架构,它将数据仓库和数据湖的最佳实践相结合,形成一种统一的数据管理平台。这种架构可以满足现代数据分析和人工智能的需求,具有很高的灵活性和可扩展性。随着技术的发展,湖仓一体将成为未来数据处理的一种重要趋势。


下图是一种实时湖仓解决方案,利用湖存储的特性和 Flink 的流批计算能力,统一存储和计算,解决 Lambda 架构的问题。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/77f0a5b2ed66ffd7e42894e2822f1cf2..jpg


本文以 Paimon 为例,Paimon 是 Flink 内部基于 Flink Tablestore 孵化的一款湖存储产品。和 Hudi/Iceberg 相比,Paimon 和 Flink 引擎有着更完整的兼容能力。


下面将就袋鼠云的实践经验,展开说说如何使用“Flink+数据湖”三步构建实时湖仓。


● Step1:搭建实时 ODS 层

不管是通过 Flink 消费 Kafka,还是通过 FlinkCDC 采集日志,都可以将源库数据实时同步至 Paimon 中。


这样,无论上层是要做批计算还是流计算,都有份统一的实时 ODS 数据做基础,避免了数据不一致和存储冗余的问题。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/301dbad0976dacb19e96ac8575c7542d..jpg


● Step2:加工湖仓中间层

关于实时湖仓的层级设计,可以参考成熟的离线数仓划分方案。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/6390655852ffafa9be6bb7450ffebd07..jpg


从上面的架构图中可以看出,Paimon 存储将文件分为 DataFile 和 LogFile:

· DataFile 用于存量数据的批计算

· LogFile 用于增量数据的流计算,但毕竟是一种文件存储格式,其实时性只能做到分钟级别。如果业务场景对实时性有秒级/毫秒级要求,Paimon 也支持将 Kafka 外挂为 LogFile 使用,同时对上层应用暴露的,仍然只有一张 Paimon 表。


基于上面的特性,如何在实际应用体现出流/批一体能力,可以参考如下几种开发场景:

01

流、批独立任务

根据实际业务场景需要,使用 Flink+Paimon 的统一技术栈,进行离线任务和实时任务的独立开发。

02

批流一体任务

在很多实时统计类的数据开发场景下,往往需要在完成存量数据统计的基础上,再衔接实时增量计算。传统的 Lambda 架构要完成这种场景,实现上相对比较复杂,而使用 Flink+Paimon,一个任务即可满足

03

流批一体任务

传统的 Lambda 架构中,为了保障 Flink+Kafka 实时计算的准确性,往往需要将 Kafka 数据双写一份到离线存储中,然后通过离线定时任务对实时计算结果做一次覆盖修正。而使用 Flink+Paimon,一个任务即可满足


● Step3:湖仓分析应用层

这层有两种不同的落地方案,可以根据企业技术栈自由选型:

· ADS 层数据也在数据湖加工落地,然后使用 OLAP 引擎如 Trino、StarRocks 直接对接数据湖,向上层提供数据分析能力。这样做可以实现存储的完全统一,但是在查询分析性能上会有一定的牺牲。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/d48115cffc84a4a272fbfcc5505470df..jpg


· 将 DWS 层数据加工后打入 StarRocks 或者 ClickHouse 这类存储+分析的统一引擎。该方案可以充分利用这类引擎的查询加速能力,对于 OLAP 场景有较高要求的企业,是个比较合适的方案。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/daf3bd19b29770319d7b080bad8130dd..jpg



《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
上一篇:湖仓一体规划
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群