增量同步策略
- 解释:每日增量,就是每天只将业务数据中的新增及变化的数据同步到数据仓库中,
- 适用:表数据量大,且每天只会有新的数据插入的场景,
- 特点:采用每日增量的表,通常会在首日先进行一个全量同步。
- 例如:退单表、订单状态表、支付流水表、订单详情表、活动与订单关联表、商品评论表
Maxwell的实现原理很简单,就是将自己伪装成Slave,并遵循Mysql主从复制的协议,从master中同步数据。
Maxwell官网地址:Maxwell's Daemon Maxwellgithub地址:https://github.com/zendesk/maxwel |
一、第1章 Maxwell介绍
1.1 Maxwell概述
1. 介绍:Maxwell是由美国Zendesk公司开源,使用Java编写的MySQL变更数据抓取软件。他会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以JSON的格式发送给Kafka、Kinesi等流数据处理平台。
1.2 Maxwell输出数据格式
插入 |
更新 |
删除 |
mysql> insert into gmall.student values(1,'zhangsan'); |
mysql> update gmall.student set name = 'lisi' where id=1; |
mysql> delete from gmall.student where id =1; |
{ "database":"gmall", "table":"student", "type":"insert", "ts":1634004537, "xid":1530970, "commit":true, "data":{ "id":1, "name":"zhangsan" } } |
{ "database":"gmall", "table":"student", "type":"update", "ts":1634004657, "xid":1531916, "commit":true, "data":{ "id":1, "name":"lisi" }, "old":{ "name":"zhangsan" } } |
{ "database":"gmall", "table":"student", "type":"delete", "ts":1634004751, "xid":1532725, "commit":true, "data":{ "id":1, "name":"lisi" } } |
字段说明:
1. database:变更数据所属的数据库 2. table: 变更数据所属的表 3. type: 数据变更类型 4. ts: 数据变更发生的时间 5. xid: 事务id |