第1章 Maxwell简介
1.1 Maxwell概述
Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控MySQL数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数据处理平台。官网地址:Maxwell's Daemon
1.2 Maxwell输出数据格式
注:Maxwell输出的json字段说明:
字段 |
解释 |
database |
变更数据所属的数据库 |
table |
表更数据所属的表 |
type |
数据变更类型 |
ts |
数据变更发生的时间 |
xid |
事务id |
commit |
事务提交标志,可用于重新组装事务 |
data |
对于insert类型,表示插入的数据;对于update类型,标识修改之后的数据;对于delete类型,表示删除的数据 |
old |
对于update类型,表示修改之前的数据,只包含变更字段 |
第2章 Maxwell原理
Maxwell的工作原理是实时读取MySQL数据库的二进制日志(Binlog),从中获取变更数据,再将变更数据以JSON格式发送至Kafka等流处理平台。
2.1 MySQL二进制日志
二进制日志(Binlog)是MySQL服务端非常重要的一种日志,它会保存MySQL数据库的所有数据变更记录。Binlog的主要作用包括主从复制和数据恢复。Maxwell的工作原理和主从复制密切相关。