Maxwell
-
定义
实时读取Mysql二进制日志,并生成JSON格式的消息。作为生产者发送给 kafka,kinesis 等
-
原理
把自己伪装成MySQL的一个slave,然后以slave的身份假装从MySQL(master)复制数据。
-
安装
-
下载、解压
-
修改被监控数据库 /etc/my.cnf,增加
[mysqld] server_id=1 log-bin=mysql-bin binlog_format=row binlog-do-db=csmar_log_new_4.7.1
并重启
-
CREATE DATABASE maxwell;
-
启动
#普通启动 bin/maxwell --user='root' --password='csm@2020' --host='10.1.240.61' --producer=stdout #配置文件启动 bin/maxwell --config ./config.properties #写到kafka bin/maxwell --user='root' --password='csm@2020' --host='10.1.240.61' --producer=kafka --kafka.bootstrap.servers=hadoop02:9092 --kafka_topic=maxwell #配置文件启动 bin/maxwell --config ./config-kafka.properties
-
kafka接收到的数据结构
{ "database":"csmar_log_new_4.7.1", "table":"modelinfo202212", "type":"insert", "ts":1670828972, "commit":true, "data":{ "ModelID":1165860, "Account":"csmarcpnbzh10051", "AccountType":"机构账号", "CousManageId":"685522738157228032", "CousManageName":"CSMAR产研部", "ClickTime":"2022-12-12 15:09:32", "ModuleName":"首页_产品动态", "ModuleInfo":"【数据库提升】中国上市公司财务报告审计意见数据库", "appName":"CSMAR Solution", "TrackId":"e9b9c8d6893b4124b15eaf8f69983e43", "Lang":"简体", "nowPage":"首页", "goToPage":"【数据库提升】中国上市公司财务报告审计意见数据库_产品动态详情页", "pageAuthority":"null", "cookie":"85c68cc2-76f6-4602-8fc5-cb4427754ba7" } }
-
-
指定表数据输出控制台
bin/maxwell --user='maxwell' --password='123456' --host='hadoop102' --filter 'exclude: *.*, include:test_maxwell.test' --producer=stdout
-
全量输出
insert into maxwell.bootstrap(database_name,table_name) values('test_maxwell','test2'); bin/maxwell-bootstrap --database gmall202004 --table base_province --client_id maxwell_1 ./maxwell-bootstrap --database csmar_log_new_4.7.1 --table databaseinfo202101 --config ../config-kafka.properties ./maxwell-bootstrap --database csmar_log_new_4.7.1 --table databaseinfo202101 --host '10.1.240.61' --user root --password 'csm@2020' --client_id maxwell_first bin/maxwell --user='root' --password='csm@2020' --host='10.1.240.61' --producer=stdout
插入后重启maxwell