百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

如何构建新一代实时湖仓?袋鼠云基于数据湖的探索升级之路

liuian 2025-01-17 12:16 58 浏览

在之前的实时湖仓系列文章中,我们已经介绍了实时湖仓对于当前企业数字化转型的重要性,实时湖仓的功能架构设计,以及实时计算和数据湖结合的应用场景。

在本篇文章中,将介绍袋鼠云数栈在构建实时湖仓系统上的探索与落地实践,及未来规划。

数栈为什么选择实时湖仓

数栈作为一个数据开发平台,在未引入实时湖仓之前提供的是基于 Lambda 架构的开发模式,分了实时和离线两条链路,这种开发模式带来的问题在于:

· 复杂性高,需要维护流批双链路的不同组件

· 存储成本高,流批两个链路维护两份相同的数据

· 实时链路不可查,Kafka 中间数据查询困难,不支持随机查询,只支持顺序查询

· 数据口径一致性差,不同计算引擎难保证统一的数据口径

而实时湖仓则能够节省存储成本,极大地提升开发效率,并更快更好地挖掘数据价值。

· 提供了多样化的分析能力,不限于批处理、流处理,在交互式查询和机器学习方面都很友好

· 提供了 ACID 事物能力,可以更好的保障数据质量,并提供增删改查等功能,传统数仓则缺乏这一能力

· 提供了完善的数据管理能力,包括数据格式、数据 Schema 等

· 提供了存储介质可扩展的能力,支持 HDFS、对象存储、云上存储等

数栈基于实时湖仓的实践

下图便是基于实时湖仓的数栈解决方案结构图:

业务库中的数据我们通过自研的数据集成框架 ChunJun 进行实时采集和入湖,目前支持 Iceberg/Hudi 实时入湖。之后在数栈实时开发平台和离线开发平台中进行业务的开发,Flink 和 Spark 支持对接 Iceberg/Hudi,以及 Iceberg/Hudi source 指标展示。再通过 EasyLake 湖仓一体平台进行数据管理,如一键转表、湖表治理等。

基于此,实时湖仓很好地解决了上文提到的 Lambda 架构开发模式带来的痛点问题。实现了存储层和计算层的流批一体,实时链路中间数据可查,统一的数据口径,低成本存储,为企业带来更快、更灵活、更高效的数据处理体验,这就是数栈原则实时湖仓的原因。

下文将为大家重点带来实时入湖以及物化视图的介绍。

CDC 实时入湖

Flink CDC 是基于数据库日志的 CDC 技术,实现了全增量一体化读取的数据集成框架。配合 Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。不过 CDC 数据实时入湖也面临着不小的挑战:

· 实时性高:CDC 数据对实时性要求高,数据新鲜度越高,往往业务价值越高

· 历史数据量大:数据库的历史数据规模大

· 强一致性:数据处理必须要保证有序性而且结果需要一致性

· Schema 动态演进:数据库对应的 Schema 会随着业务不断变更

那么,数栈是怎么做的呢?

袋鼠云自研的数据集成框架 ChunJun 支持 CDC 数据的采集,包括 MySQL CDC、Oracle CDC、PG CDC、SQLServer CDC。CDC 数据采集完之后,写到 Iceberg/Hudi Sink 中,完成实时入湖的工作。

这样下来的整条链路和架构都是袋鼠云自主研发、完全可控的,并且实现了全增量一体化、分钟级时延,对业务稳定性也不会造成任何影响。

ChunJun:https://github.com/DTStack/chunjun.git

实时入湖落地中的问题

在实时入湖落地的过程中,我们当然也遇到过问题和挑战:

· 小文件问题:小文件影响读写效率,导致 HDFS 集群稳定性变差

· Hudi 适配 Flink1.12:客户群体使用的 Flink 版本大多还停留在1.12

· 跨集群入湖:多套 Hadoop 集群的场景下存在跨集群的需求

数栈又是如何个个突破这些问题的呢?

● 小文件问题优化

· 合理设置 Checkpoint Interval

整个 Compaction 过程是一个 I/O 比较多的操作过程,假设一味的调小 Checkpoint Interval,会产生诸如小文件问题、导致 HDFS 压力变大、checkpoint 失败、任务不稳定等一系列问题。

在经过多方实践验证后,推荐将 Checkpoint Interval 设置为 1-5 分钟为优。

· 平台化小文件治理

调整 Checkpoint,能够缓解小文件的产生,之后还要进行平台化的小文件治理,从根本上解决问题。

EasyLake 湖表治理功能支持数据文件治理,支持快照文件治理,支持 Hudi MOR 增量文件合并,将小文件数量控制在一定的范围内,提升治理效率。

● Hudi 适配 Flink 1.12 版本做法

数栈在这方面并不是一张白纸,首先我们基于 hudi-flink1.13.x 模块开发 hudi-flink1.12,将 Flink 版本修改成1.12.7,再针对不兼容的点逐个进行修复,最后进行完整的功能测试即完成了适配的工作。

· 跨集群入湖方案

Hudi 和 Iceberg Sink 默认从 HADOOP_CONF_DIR 环境变量获取 core-site.xml 和 hdfs-site.xml 访问对应的 HDFS。

数栈基于自研的 ChunJun,在 ChunJun iceberg-connector 和 hudi-connector 中对 hadoop conf dir 的获取方式进行扩展,支持通过指定 hadoopConfig 自定义参数的方式。

如此便能够使集群之间的数据流动起来,打破数据孤岛,完成跨集群入湖的支持。

ETL 加速探索-物化视图

在介绍数栈在物化视图方面的探索之前,必须先理清楚我们为什么需要物化视图?

在实时湖仓中包含三类任务,实时 ETL、离线 ETL 和 OLAP,以上三类任务在 ODS -> ADS 的加工过程中,都会出现聚合操作越来越多,IO 越来越密集,多个任务 SQL 中具有相同逻辑的 SQL 片段等现象。

物化视图可以将表连接或者聚合等耗时较多的结果进行预计算并将计算结果保存下来,在对复杂 SQL 进行查询的时候,直接基于上一步预计算的结果进行计算,从而避免耗时的操作,更快的得到结果。

而在实时湖仓中基于数据湖构建的物化视图可实现流、批和 OLAP 任务之间的共享,从而进一步降低实时数据湖中数据在整条链路中的延时。为实时加工链路加速,并节省计算成本,提高查询性能和响应速度。

● 实时湖仓中落地物化视图需要完成的内容

· 平台化数据湖物化视图管理

· Spark 支持基于数据湖表格式管理物化视图

· Trino 支持基于数据湖表格式管理物化视图

· Flink 支持基于数据湖表格式管理物化视图

目前数栈实时湖仓已经完成了 Spark 和 Trino 的部分,之后也会将这四部分内容都完成落地,充分发挥物化视图的作用。

● 物化视图实现原理

· 创建物化视图语法

CREATE MATERIALIZED VIEW (IF NOT EXISTS)? multipartIdentifier
          ('(' colTypeList ')')? tableProvider?
          ((OPTIONS options=tablePropertyList) |
           (PARTITIONED BY partitioning=partitionFieldList) |
           skewSpec |
           bucketSpec |
           rowFormat |
           createFileFormat |
           locationSpec |
           commentSpec |
           (TBLPROPERTIES tableProps=tablePropertyList))*
          AS query  

· 示例

CREATE MATERIALIZED VIEW mv
AS SELECT
  a.id, 
  a.name 
FROM jinyu_base a 
JOIN jinyu_base_partition b 
ON a.id = b.id;

未来规划

袋鼠云基于实时湖仓的实践之路远不止于此,未来还将进行更多、更深层次的探索,为企业提供更高效、更灵活、更智能的数据处理解决方案。

· 易用性:增加平台湖表管理的易用性

· 引入 Paimon:平台支持对接 Paimon、增加基于 Paimon 的湖仓一体建设

· 提升入湖性能:深入并增强内核,提升入湖的的性能

· 安全性探索:实时湖仓提供数据共享、支持多引擎,探索实时湖仓的安全管理方案

本文根据《实时湖仓实践五讲第三期》直播内容总结而来,感兴趣的朋友们可点击链接观看直播回放视频及免费获取直播课件。

直播课件:

https://www.dtstack.com/resources/1054?src=szsm

直播视频:

https://www.bilibili.com/video/BV1Ee411d7Py/?spm_id_from=333.999.0.0&

《数据治理行业实践白皮书》下载地址:
https://www.dtstack.com/resources/1001?src=szsm

《数栈V6.0产品白皮书》下载地址:
https://www.dtstack.com/resources/1004?src=szsm

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

开源项目地址:
https://github.com/DTStack

相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...