基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

news2024/10/7 2:28:02

在当今数据驱动的时代,企业对数据的实施性能力提出了前所未有的高要求。为了应对这一挑战,构建高效、灵活且可扩展的实时湖仓成为数字化转型的关键。本文将深入探讨袋鼠云数栈如何通过三大核心实践——ChunJun 融合 Flink CDC、MySQL 一键入湖至 Paimon 的实践,以及湖仓一体治理 Paimon 的实践,重塑实时湖仓的架构与管理,为企业打造实时数据分析的新引擎。

Flink CDC(Change Data Capture)是由 Apache Flink 提供的一个流数据集成工具,它允许用户通过 YAML 文件优雅地定义 ETL(Extract, Transform, Load)流程,并自动生成定制化的 Flink 算子和提交 Flink 作业。

Flink CDC 的核心特性包括:端到端数据集成框架、易于构建作业的 API、多表支持、整库同步精确一次语义、增量快照算法等诸多特性。ChunJun 融合 Flink CDC 能够更好支持数据的入湖入仓,带来了多方面的变化:

file · 高吞吐、低延迟:Flink CDC 能够以高吞吐量和低延迟的方式捕获和传输数据库的变更

· 全增量一体化:Flink CDC 支持全量数据和增量数据的同步,无需手动操作即可实现全量快照与增量日志的自动衔接

· 支持异构数据源:Flink CDC 支持多种数据源,可以轻松实现异构数据源的集成,通过 Flink SQL 定义不同类型的 CDC 表,实现数据融合

· 实时性:支持近实时的数据同步,满足对数据时效性要求高的场景

· 链路短组件少:Flink CDC 的架构设计让整个数据捕获和处理的链路变得更为简洁,所涉及的组件数量相对有限,这不但降低了系统的繁杂程度,还削减了学习与运维的成本

MySQL 一键入湖 Paimon 实践

ChunJun 融合 Flink CDC 增加了实时湖仓数据接入的方式,结合 FLink CDC 提供的 MySQL 数据到 Paimon 的数据同步能力,能够高效地将 MySQL 表数据实时写入 Paimon 中。在融合的同时,还支持历史 Json 格式构建任务、脏数据、Mertic、表血缘、可视化配置等功能。

file

接下来通过内部实践案例进行深入分析。

● 采集配置 Flink CDC 来源

实时采集配置 Flink CDC 来源为 MySQL 时,向导模式配置还原范围采用全量+增量模式。

首先,对数据库表进行全表快照读取,生成数据的一致性快照,以同步来源表的历史全量数据。在全量快照读取完成后,会自动切换至增量模式,对数据库的增量变化进行采集。表选择的方式多样,支持整库同步、分库分表同步、单表选择同步,同时也支持通过正则的方式选择表。

对于 DDL 变更,当上游产生 DDL 操作时,若选择支持,下游会自动执行;若选择不支持,则对上游产生的 DDL 做异常捕获,此时任务会失败。搭配告警功能,可及时告知出现异常的情况。出现异常后,需要手动执行 DDL 操作,任务才能恢复正常运行。

file

● 采集配置目标端

目标源通过 HiveMetastore 方式配置目标 Paimon 表。写入表的方式具有一定灵活性,支持手动选择表。对于上游存在多表写入同一下游表的场景,有一定要求,必须保证上下游表结构保持一致。

同时,支持使用相同表名、自定义表名的方式。在同步前,会先创建写入的目标表,如果已存在,则直接使用现成表。表分区方面,通过输入固定的语法,将对应上游的主键表字段作为目标 Piamon 表的分区字段。

file

● 调度运行采集任务

实时采集任务在通过语法检查后,提交至调度运维中运行。采集任务的指标包括 Mertic 输入输出指标展示、脏数据指标以及数据血缘解析等。

file

● 查询入湖数据

通过实时平台中 FlinkSQL 任务所提供的功能,对 Paimon 表进行查询并插入数据。利用 FlinkSQL 的 SqlQuery 功能构建 Select 查询语句,并采用流模式实时查询 Paimon 表,以采集插入数据的情况。

file

湖仓一体治理 Paimon 实践

在构建和维护数据湖与数据仓库(湖仓)的一体化架构进程中,袋鼠云凭借湖仓治理机制,不断推进实时数据湖的优化与完备。

然而,Paimon 在数据处理期间可能会引发数据碎片化的问题,像小文件的急剧增多、过时快照的持续累积以及孤儿文件的出现,这些状况均有可能给数据湖表的读写效率带来极为显著的不良影响。

为有效应对这一挑战,袋鼠云于数栈湖仓一体中引入了文件治理机制,支持定期开展数据整理操作,例如合并小文件、清理过期的数据快照以及清除孤儿文件等。此类治理活动旨在增强数据湖的整体读写性能,保障数据流的高效运行和分析工作的顺利开展。借由这些数据治理手段,袋鼠云能够为湖仓架构的稳定性和性能提供稳固支撑,进而助力企业在大数据时代实现敏捷决策和深度洞察。

元数据管理

● Paimon 分区概览

Paimon 运用了与 Apache Hive 相同的分区理念来对数据进行分离。分区属于一种可选的形式,能够依据日期、城市和部门等特定列的值,将表划分成相关的部分。每个表能够拥有一个或多个分区键,以识别某一特定的分区。分区概览会展示分区的数据记录、文件数量以及文件的大小,并且支持对分区的删除操作。

file

● Paimon 快照概览

快照记录了一个表在某一特定时间点的状态。用户能够借助最新的快照获取一个表的最新数据。利用时间旅行,用户还可以通过较早的快照访问表的先前状态。快照概览展示了当前表的所有快照、最新 snapshot,支持手动创建标签并在列表中展示引用关系,同时支持快照的删除和回滚操作。

file

● Paimon 标签概览

标签是对快照的引用,能够基于某个特定快照创建。用户能够在特定的快照上添加标签,如此一来,即便快照过期且被删除,只要标签仍然存在,就能够通过标签访问到相应的数据。标签概览展示了表的所有历史标签版本、标签与快照的引用关系,并且支持标签的删除操作。

file

湖表治理

● Paimon 小文件合并

随着时间的不断推移,持续的写入操作或许会产生大量的小文件,这将致使查询性能降低,原因在于系统需要打开并读取更多的文件。Compaction 能够通过合并这些小文件,从而减少文件的总数。在数据文件治理中,支持对 Paimon Table、Database 的小文件进行治理。

Compaction Table 支持三种排序策略,通过配置不同的治理方式,支持周期性地对表进行治理。Compaction Database 支持对单个或者多个库执行文件的合并操作。

file

● Paimon 孤儿文件清理

孤儿文件指的是那些不再被任何快照所引用的文件,其可能因异常的写入操作、未完成的事务或者错误的删除操作而出现。清理此类孤儿文件是维系数据湖健康状态的关键环节,毕竟它们会占据存储空间。

袋鼠云实时湖仓能够通过配置表的孤儿文件清理策略,支持清理 24 小时以前的孤儿文件,同时还能够通过配置周期治理,实现周期性地对孤儿文件进行治理。

file

● Paimon 过期快照清理

Paimon Writer 在每次提交数据时,会生成一个或两个快照。这些快照可能包含新增的数据文件,也可能将一些旧的数据文件标记为删除。需要注意的是,即使数据文件被标记为删除,它们也不会立即从物理存储中真正删除。通过配置过期快照清理和过期快照保留数量,可以对快照进行物理存储的删除操作。

file

一键 Hive 表转 Paimon 表

● 原地转表

使用 Spark 内置的 migrate_table 进行表迁移时,会先创建一个临时的 Paimon 表,然后将源表的文件直接移动到该临时表中,接着对临时 Paimon 表进行 rename 操作,使其表名与源表一致,这样原来的 Hive 表就不再存在。

● New 新表

袋鼠云实时湖仓自定义了一个全新的存储过程 migrate_to_target_table ,该存储过程会读取源表的数据,创建目标 Target 表,并把源表的数据写入到新创建的 Target 表中,在此过程中原有的 Hive 表依然得以保留。

file 《行业指标体系白皮书》下载地址:https://www.dtstack.com/resources/1057?src=szsm

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1868408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI绘画Stable Diffusion:超级质感真人大模型,逼真青纯!

大家好,我是设计师阿威 今天和大家分享一个具有超级质感的基于SD1.5的真人大模型:极致质感-DgirlV5,该模型追求质感的不断优化,细到发丝,当前最新版本是V5.1,修正了V5版本整体色彩发红的问题。 作者对该模…

OFDM 802.11a的FPGA实现:发射部分,bug更正,以及更新说明。

目录 bug1bug2bug3bug4 微信公众号获取更多FPGA相关源码: OFDM 802.11a的FPGA实现:发射部分完整工程 经过各位朋友的提醒,这部分内容有些许bug,目前已经更正,后续还会持续更新。获取更新内容,可以进上述链接&#xf…

BurpSuite2024.5.3专业版,仅支持Java21以上

01更新介绍 此版本引入了对 WebSocket 的 Burp Scanner 支持、对录制的登录编辑器的改进、WebSocket 匹配和替换规则以及许多性能改进。我们还删除了一些冗余的扫描检查。 Burp Scanner 对 WebSockets 的支持我们更新了内部代理的配置,以允许 WebSocket 流量。这使…

CORE Mobility Errorr的调试

在运行CORE tutorial 3中的mobility示例时,出现如下错误: 当看到这个问题的时候,并没有仔细去分析日志和现象,在core-daemon的进程打印界面只看了一下最后的出错堆栈: 2024-06-27 10:43:48,614 - ERROR - _server:_ca…

Arduino - 旋转编码器 - 伺服电机

Arduino - 旋转编码器 - 伺服电机 Arduino - Rotary Encoder In this tutorial, We are going to learn how to program Arduino to rotate a servo motor according to the rotary encoder’s output value. 在本教程中,我们将学习如何对Arduino进行编程&#xff…

浏览器页面打不开(网络连接正常的情况下)

目录 一、代理被打开 二、DNS被篡改 三、网络配置出现问题 四、浏览器配置问题 一、代理被打开 1. 右击Wifi图标 2.点击“打开网络和internet设置” 3. 点击代理,把该窗口所有的东西都关闭,尤其是代理服务器 二、DNS被篡改 如果第一个方法不行&am…

平板WPS转换的PDF文件保存位置解析

在日常工作和生活中,我们经常需要将文档转换成PDF格式进行分享,以确保接收者能够无障碍地查看文件内容,不受软件版本或操作系统的限制。WPS作为一款功能强大的办公软件,也提供了文档转换为PDF的功能。然而,有时在转换并…

一本顶三本?入门LLM大模型必读《大模型应用开发极简入门》附PDF书籍

今天带来的是最近刚出版的新书: 《大模型应用开发极简入门:基于 GPT-4 和ChatGPT》 。 这本书是 O’Reilly 出版的,两位共同作者是来自 Worldline 公司的机器学习研究员 Olivier Caelen 和 数据工程师 Marie-Alice Blete。这两位作者一位侧重…

Kafka入门到精通(二)-安装Zookeeper

前言:因为我们要学习kafka,那么我们必须先安装了解下Zookeeper; Zookeeper简介 Zookeeper是一个开源的分布式协调服务,由Apache维护,旨在为分布式系统提供一致性、可靠性和高效的数据管理。 它通过提供一系列简单…

【Java Web】MVC架构模式

目录 一、MVC是什么? 二、MVC组成结构 三、MVC模式下项目常见包 一、MVC是什么? MVC(ModelViewController)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织…

Django项目部署:uwsgi+daphne+nginx+vue部署

一、项目情况 项目根目录:/mnt/www/alert 虚拟环境目录:/mnt/www/venv/alert 激活虚拟环境:source /mnt/www/venv/alert/bin/activate 二、具体配置 1、uwsgi启动配置 根目录下:新增 uwsgi.ini 注意:使用9801端…

LSTM理解

目录 一、LSTM的本质 二、LSTM的原理 三、LSTM的应用 本文将从LSTM的本质、LSTM的原理、LSTM的应用三个方面,带您一文搞懂长短期记忆网络Long Short Term Memory | LSTM。 一、LSTM的本质 RNN 面临问题:RNN(递归神经网络)在处理…

劳易测应用案例:橡胶密炼生产线安全改造项目(下)

橡胶密炼是汽车轮胎制造流程中的核心环节,主要负责将橡胶与多种添加剂混合,确保均匀分散,以制备合格的橡胶材料。橡胶密炼生产线由多个关键设备组成,包括切胶机、导切机、称重和输送系统、密炼机、开炼机以及胶片冷却机等&#xf…

《分析模式》漫谈07-怎样把一张图从不严谨改到严谨

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 下图是《分析模式》原书第2章的图2.10,里面有一些错误和考虑不周的地方: 2004中译本和2020中译本的翻译如下: 基本上都是照搬,没有改过…

Flutter第十五弹 Flutter插件

目标: 1.Flutter插件是什么?有什么作用? 2.怎么创建Flutter插件? 一、什么是插件 在flutter中,一个插件叫做一个package,使用packages的目的就是为了达到模块化,可以创建出可被复用和共享的代…

数据库逻辑结构设计-实体和实体间联系的转换、关系模式的优化

一、引言 如何将数据库概念结构设计的结果,即用E-R模型表示的概念模型转化为关系数据库模式。 E-R模型由实体、属性以及实体间的联系三个要素组成 将E-R模型转换为关系数据库模式,实际上就是要将实体及实体联系转换为相应的关系模式,转换…

iOS包ShaderVariantCollection预热慢问题

1)iOS包ShaderVariantCollection预热慢问题 2)使用SBP打Bundle如何读取AssetBundleManifest 3)如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用 4)为什么我的水这么干净,和UE教程里的有差别 这是第392篇…

位运算算法系列|概念讲解|例题讲解

大家好,我是LvZi,今天带来位运算算法系列|概念讲解|例题讲解 一,位运算基本概念 1.基础位运算 <<:左移操作,相当于 *2>>:右移操作,相当于 /2~:按位取反&:按位与操作,有0则0|:按位或操作,有1则1^:按位异或操作,相同为0,相异为1/无进位相加 注:对于^操作,无进…

昇思25天学习打卡营第4天|linchenfengxue

需求&#xff1a;建立一个图像分类模型&#xff0c;提供自动识别有(猫、狗、飞机、汽车等等) 图片的功能 ResNet50图像分类 图像分类是最基础的计算机视觉应用&#xff0c;属于有监督学习类别&#xff0c;如给定一张图像(猫、狗、飞机、汽车等等)&#xff0c;判断图像所属的类…

【直播倒计时】面向AI领域的开发工程师:TinyML在国产FPGA的边缘AI加速应用

TinyML是机器学习中的一个新兴领域&#xff0c;专注于开发可在低功耗、内存受限的设备上运行的算法和模型。其核心目标是将先进的机器学习算法和模型移植到体积小巧、能耗极低的嵌入式设备中&#xff0c;使这些设备具备边缘智能&#xff0c;能够在没有外部服务器支持的情况下进…