https://github.com/zendesk/maxwell 2.2k
数据格式:
mysql> insert into `test`.`maxwell` set id = 1, daemon = 'Stanislaw Lem';
maxwell: {
"database": "test",
"table": "maxwell",
"type": "insert",
"ts": 1449786310,
"xid": 940752,
"commit": true,
"data": { "id":1, "daemon": "Stanislaw Lem" }
}
mysql> update test.maxwell set daemon = 'firebus! firebus!' where id = 1;
maxwell: {
"database": "test",
"table": "maxwell",
"type": "update",
"ts": 1449786341,
"xid": 940786,
"commit": true,
"data": {"id":1, "daemon": "Firebus! Firebus!"},
"old": {"daemon": "Stanislaw Lem"}
}
Maxwell主要提供了下列功能:
特色 | canal | maxwell | mysql_streamer |
---|---|---|---|
开源方 | 阿里巴巴 | zendesk | Yelp |
语言 | java | java | Python |
活跃度 | 活跃x | 活跃 | 活跃 |
HA | 支持 | 定制 | 支持 |
数据落地 | 定制 | Kafka等 | Kafka |
分区 | 支持 | 不支持 | 不支持 |
bootstrap | 不支持 | 支持 | 支持 |
数据格式 | 格式自由 | json | json |
文档 | 较详细 | 较详细 | 粗略 |
随机读 | 支持 | 支持 | 支持 |
$ vi my.cnf
[mysqld]
server_id=1
log-bin=master
binlog_format=row
CREATE USER 'maxwell'@'%' IDENTIFIED BY '123456';
GRANT ALL ON maxwell.* TO 'maxwell'@'%';
GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE on *.* to 'maxwell'@'%';
输出到 控制台
# 拉取镜像
docker pull zendesk/maxwell
# 启动maxwell,并将解析出的binlog输出到控制台
docker run -ti --rm zendesk/maxwell bin/maxwell --user='maxwell' --password='123456' --host='10.100.97.246' --producer=stdout
输出到 Kafka
docker run -it --rm zendesk/maxwell bin/maxwell --user='maxwell' \
--password='123456' --host='10.100.97.246' --producer=kafka \
--kafka.bootstrap.servers='10.100.97.246:9092' --kafka_topic=maxwell --log_level=debug
https://github.com/linkedin/databus
功能: