mysql binlog记录insert update delete的记录方式与flink sql不一样

系列文章目录

实践数据湖iceberg 第一课 入门
实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式
实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg
实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到iceberg(升级版本到flink1.12.7)
实践数据湖iceberg 第五课 hive catalog特点
实践数据湖iceberg 第六课 从kafka写入到iceberg失败问题 解决
实践数据湖iceberg 第七课 实时写入到iceberg
实践数据湖iceberg 第八课 hive与iceberg集成
实践数据湖iceberg 第九课 合并小文件
实践数据湖iceberg 第十课 快照删除
实践数据湖iceberg 第十一课 测试分区表完整流程(造数、建表、合并、删快照)
实践数据湖iceberg 第十二课 catalog是什么
实践数据湖iceberg 第十三课 metadata比数据文件大很多倍的问题
实践数据湖iceberg 第十四课 元数据合并(解决元数据随时间增加而元数据膨胀的问题)
实践数据湖iceberg 第十五课 spark安装与集成iceberg(jersey包冲突)
实践数据湖iceberg 第十六课 通过spark3打开iceberg的认知之门
实践数据湖iceberg 第十七课 hadoop2.7,spark3 on yarn运行iceberg配置
实践数据湖iceberg 第十八课 多种客户端与iceberg交互启动命令(常用命令)
实践数据湖iceberg 第十九课 flink count iceberg,无结果问题
实践数据湖iceberg 第二十课 flink + iceberg CDC场景(版本问题,测试失败)
实践数据湖iceberg 第二十一课 flink1.13.5 + iceberg0.131 CDC(测试成功INSERT,变更操作失败)
实践数据湖iceberg 第二十二课 flink1.13.5 + iceberg0.131 CDC(CRUD测试成功)
实践数据湖iceberg 第二十三课 flink-sql从checkpoint重启
实践数据湖iceberg 第二十四课 iceberg元数据详细解析
实践数据湖iceberg 第二十五课 后台运行flink sql 增删改的效果
实践数据湖iceberg 第二十六课 checkpoint设置方法
实践数据湖iceberg 第二十七课 flink cdc 测试程序故障重启:能从上次checkpoint点继续工作
实践数据湖iceberg 第二十八课 把公有仓库上不存在的包部署到本地仓库
实践数据湖iceberg 第二十九课 如何优雅高效获取flink的jobId
实践数据湖iceberg 第三十课 mysql binlog记录insert update delete的记录方式与flink sql不一样



前言

查看insert,update,delete在mysql binlog中是如何进行记录的
在flink sql中,update会转化为一条delete和一条insert, 故想看看在mysql binlog的记录方式


一、建表语句

构造insert, update,delete 场景进行测试

CREATE TABLE `test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `age` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into test values(1,11,'星星之火');
update test set name='星星'  where id=1;
delete from test where id=1;

二、binlog信息

使用命令查binlog:

[root@hadoop103 mysql]# mysqlbinlog -v --base64-output=decode-rows mysql-bin.000002 
CREATE TABLE `test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `age` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!*/;
# at 8899204
#220420 15:47:25 server id 1  end_log_pos 8899269 CRC32 0x9eb77eea      Anonymous_GTID  last_committed=14326    sequence_number=14327   rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 8899269
#220420 15:47:25 server id 1  end_log_pos 8899347 CRC32 0x4668adc8      Query   thread_id=69258 exec_time=0     error_code=0
SET TIMESTAMP=1650440845/*!*/;
BEGIN
/*!*/;
# at 8899347
#220420 15:47:25 server id 1  end_log_pos 8899404 CRC32 0xa1553fa2      Table_map: `xxzh_stock`.`test` mapped to number 265
# at 8899404
#220420 15:47:25 server id 1  end_log_pos 8899466 CRC32 0xadefe641      Write_rows: table id 265 flags: STMT_END_F
### INSERT INTO `xxzh_stock`.`test`
### SET
###   @1=1
###   @2=11
###   @3='星星之火'
# at 8899466
#220420 15:47:25 server id 1  end_log_pos 8899497 CRC32 0xef6b3913      Xid = 13347790
COMMIT/*!*/;
# at 8899497
#220420 15:47:25 server id 1  end_log_pos 8899562 CRC32 0xdd949283      Anonymous_GTID  last_committed=14327    sequence_number=14328   rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 8899562
#220420 15:47:25 server id 1  end_log_pos 8899640 CRC32 0x384e2f34      Query   thread_id=69258 exec_time=0     error_code=0
SET TIMESTAMP=1650440845/*!*/;
BEGIN
/*!*/;
# at 8899640
#220420 15:47:25 server id 1  end_log_pos 8899697 CRC32 0x50755998      Table_map: `xxzh_stock`.`test` mapped to number 265
# at 8899697
#220420 15:47:25 server id 1  end_log_pos 8899781 CRC32 0x65d5e7ac      Update_rows: table id 265 flags: STMT_END_F
### UPDATE `xxzh_stock`.`test`
### WHERE
###   @1=1
###   @2=11
###   @3='星星之火'
### SET
###   @1=1
###   @2=11
###   @3='星星'
# at 8899781
#220420 15:47:25 server id 1  end_log_pos 8899812 CRC32 0xa8f1b87f      Xid = 13347791
COMMIT/*!*/;
# at 8899812
#220420 15:47:25 server id 1  end_log_pos 8899877 CRC32 0x00de2b56      Anonymous_GTID  last_committed=14328    sequence_number=14329   rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 8899877
#220420 15:47:25 server id 1  end_log_pos 8899955 CRC32 0x85923293      Query   thread_id=69258 exec_time=0     error_code=0
SET TIMESTAMP=1650440845/*!*/;
BEGIN
/*!*/;
# at 8899955
#220420 15:47:25 server id 1  end_log_pos 8900012 CRC32 0x402f0426      Table_map: `xxzh_stock`.`test` mapped to number 265
# at 8900012
#220420 15:47:25 server id 1  end_log_pos 8900068 CRC32 0xd81ab133      Delete_rows: table id 265 flags: STMT_END_F
### DELETE FROM `xxzh_stock`.`test`
### WHERE
###   @1=1
###   @2=11
###   @3='星星'
# at 8900068
#220420 15:47:25 server id 1  end_log_pos 8900099 CRC32 0x0755e4b8      Xid = 13347792
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

insert 语句:

### INSERT INTO `xxzh_stock`.`test`
### SET
###   @1=1
###   @2=11
###   @3='星星之火'

update语句:


### UPDATE `xxzh_stock`.`test`
### WHERE
###   @1=1
###   @2=11
###   @3='星星之火'
### SET
###   @1=1
###   @2=11
###   @3='星星'

delete语句:

### DELETE FROM `xxzh_stock`.`test`
### WHERE
###   @1=1
###   @2=11
###   @3='星星'

总结

mysql binglog中 insert ,update,delete 都是直接用sql语义进行记录。 和flink-sql的方式不一样。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值