paimon中的Branch

Branch

https://paimon.apache.org/docs/0.9/maintenance/manage-branches/

paimon借鉴了git的管理机制,在我们开发代码的时候,为了不影响主分支的功能,我们一般会新建一个分支进行迭代,待新分支完善后,合并回主分支,在新的分支做任何数据操作都不会影响主分支。
在paimon中,我们也可以对表创建分支,相当于在当前数据状态下复制出来了一张新的表,我习惯称 新建的表叫做分支表,原表称为主表,两表互不影响,而且能够从分支表上进行合并,将分支表的数据覆盖到主表

维护Branch

创建

创建一个空的分支(数据空的)

bin/flink run \
lib/paimon-flink-action-0.9.0.jar \
create_branch \
--warehouse file:///data/soft/paimon/catalog \
--database default \
--table t_branch \
--branch_name slave

从指定tag创建分支,复制指定tag所有信息,包括数据、快照、schema等

-- 创建tg
bin/flink run \
lib/paimon-flink-action-0.9.0.jar \
create_tag \
--warehouse file:///data/soft/paimon/catalog \
--database default \
--table t_branch \
--tag_name tg 

-- 从指定tg创建分支
bin/flink run \
lib/paimon-flink-action-0.9.0.jar \
create_branch \
--warehouse file:///data/soft/paimon/catalog \
--database default \
--table t_branch \
--tag_name tg \
--branch_name slave

删除

-- 删除
bin/flink run \
lib/paimon-flink-action-0.9.0.jar \
delete_branch \
--warehouse file:///data/soft/paimon/catalog \
--database default \
--table t_branch \
--branch_name slave

快进( 覆盖

Paimon 中创建增量表(Incremental Table)主要通过其支持的增量数据摄取机制实现。Paimon 是一个基于 Apache Flink 构建的流批一体数据湖仓系统,支持从多种数据源中捕获增量数据,并将其高效地写入湖仓中。 增量表的构建通常依赖于 Flink 的 CDC(Change Data Capture)功能,例如 MySQL CDC、PostgreSQL CDC 等连接器,通过这些连接器捕获源数据库的变更日志(如 binlog),并将变更数据实时同步到 Paimon 表中。以下是创建增量表的基本方法: ### 1. 使用 Flink CDC 连接器创建增量表 以 MySQL CDC 为例,可以通过 Flink SQL 创建一个增量数据同步作业,将 MySQL 表的变更数据同步到 Paimon 表中。首先确保已配置好 Flink 环境,并将 MySQL CDC 连接器和 Paimon 的 Flink 集成模块加入依赖。 #### 示例 Flink SQL 脚本: ```sql -- 创建 MySQL CDC 源表 CREATE TABLE mysql_cdc_source ( id INT PRIMARY KEY, name STRING, age INT ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = 'localhost', 'port' = '3306', 'database-name' = 'test_db', 'table-name' = 'user_table', 'username' = 'root', 'password' = 'password' ); -- 创建 Paimon 目标表 CREATE TABLE paimon_incremental_table ( id INT PRIMARY KEY, name STRING, age INT ) WITH ( 'connector' = 'filesystem', 'path' = 'file:///path/to/paimon_table' ); -- 插入数据,实现增量同步 INSERT INTO paimon_incremental_table SELECT * FROM mysql_cdc_source; ``` 该脚本定义了一个 MySQL CDC 源表和一个 Paimon 表,并通过 `INSERT INTO ... SELECT` 实现了从源到目标的增量数据同步[^1]。 ### 2. 使用 Paimon 的主键表支持 Paimon 支持主键表(Primary Key Table),可以用于实现 UPSERT 语义,即当主键冲突时自动更新记录。这在构建增量表时非常有用,尤其适用于需要合并多个变更事件的场景。 #### 示例: ```sql -- 创建具有主键的 Paimon 表 CREATE TABLE paimon_pk_table ( id INT PRIMARY KEY, name STRING, age INT ) WITH ( 'connector' = 'filesystem', 'path' = 'file:///path/to/paimon_pk_table' ); ``` 该表结构支持基于主键的更新操作,适用于接收来自 CDC 源的变更数据流。 ### 3. 增量快照读取与时间旅行查询 Paimon 支持基于时间点的快照读取(Time Travel),可以查询某一时间点的数据快照或增量变更。这对于构建增量处理流水线、审计和回溯分析非常有帮助。 #### 示例: ```sql -- 查询某个时间点的快照数据 SELECT * FROM paimon_pk_table FOR SYSTEM_TIME AS OF '2024-01-01 00:00:00'; ``` 该功能基于 Paimon 的多版本并发控制(MVCC)机制,能够高效地管理数据版本并支持增量读取[^1]。 ### 4. 使用 Paimon 的增量消费接口 Paimon 提供了增量消费接口(Incremental Source),可以通过 Flink DataStream API 或 Paimon 的 CLI 工具订阅某个时间点之后的增量变更。这对于构建实时数据管道、变更数据捕获和事件溯源系统非常有用。 #### 示例 CLI 命令: ```bash paimon run -m yarn-cluster \ -Djobmanager.memory.process.size=2gb \ -Dtaskmanager.memory.process.size=4gb \ -jarfile /path/to/paimon-flink-action.jar \ incremental-source \ --warehouse file:///path/to/warehouse \ --database default_database \ --table paimon_pk_table \ --starting-checkpoint latest ``` 该命令启动了一个增量数据读取作业,从指定表中读取最新的变更数据并输出到下游系统[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值