前提开启了mysql的binlog在cannel使用的时候已经讲解
创建保存断点续传的数据库,并且创建maxwell用户密码为123456,对于shishimaxwell数据库给maxwell授予权限
mysql -uroot -p123456
CREATE DATABASE shishimaxwell ;
#maxwell是用戶名
GRANT ALL ON shishimaxwell.* TO 'maxwell'@'%' IDENTIFIED BY '123456';
#maxwell是用戶名
GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO maxwell@'%';
tar -zxvf maxwell-1.25.0.tar.gz
cp config.properties.example
vi config.properties
producer=kafka
kafka.bootstrap.servers=master:9092,node1:9092,node2:9092
#需要添加
kafka_topic=gmall_db
# mysql login info,这里的mysql既是开启binlog的mysql,也是自己创建保存读取位置shishimaxwell的mysql
#数据库host
host=master
#数据库用户
user=maxwell
#数据库密码
password=123456
#需要添加 后续bootstrap初始化会用
client_id=maxwell_1
#指定消费位置保存的数据库
schema_database=shishimaxwell
注意:默认还是输出到指定 Kafka 主题的一个 kafka 分区,因为多个分区并行可能会打乱
binlog 的顺序
如果要提高并行度,首先设置 kafka 的分区数>1,然后设置 producer_partition_by 属性
可选值 producer_partition_by=database|table|primary_key|random| column
如果是修改了表的结构,修改以后打印的数据为
ADD COLUMN `xinde` varchar(255) NULL COMMENT '修改时间' AFTER `operate_time`" to gmall, new schema id is 2tbeat=0] after applying "ALTER TABLE `gmall`.`comment_info`
但是如果没有配置schema_host那么修改表结构的数据是不会发送到kafka的,也就是说普通模式只会吧增删改查的数据发送到kafka
/home/bigdata/shishishell/maxwell/maxwell-1.25.0/bin/maxwell --config /home/bigdata/shishishell/maxwell/maxwell-1.25.0/config.properties >/dev/null 2>&1 &
查看数据库是否生成了表
{
"database": "gmall",
"table": "comment_info",
"type": "insert",
"ts": 1657694285,
"xid": 79219,
"commit": true,
"data": {
"id": 1547108081146556427,
"user_id": 682,
"nick_name": null,
"head_img": null,
"sku_id": 24,
"spu_id": 8,
"order_id": 6897,
"appraise": "1204",
"comment_txt": "评论内容:82154639985516955573787189871861313164594735727667",
"create_time": "2022-06-28 14:38:04",
"operate_time": null
}
}
{
"database": "gmall",
"table": "base_dic",
"type": "delete",
"ts": 1657694385,
"xid": 111301,
"commit": true,
"data": {
"dic_code": "1101",
"dic_name": "支付宝",
"parent_code": "11",
"create_time": null,
"operate_time": null
}
}
{
"database": "gmall",
"table": "base_dic",
"type": "update",
"ts": 1657694417,
"xid": 111341,
"commit": true,
"data": {
"dic_code": "1103",
"dic_name": "银联1",
"parent_code": "11",
"create_time": null,
"operate_time": null
},
"old": {
"dic_name": "银联"
}
}
--client_id maxwell_1就是上面配置的东西,它的作用是bootstap只是查询出了数据,而--client_id maxwell_1是指点配置文件里面使用maxwell的一个客户端同步数据
bin/maxwell-bootstrap --user maxwell --password 123456 --host master --database gmall --table user_info --client_id maxwell_1
生成的数据如下
开始的一条数据为空
{
"database": "gmall",
"table": "user_info",
"type": "bootstrap-start",
"ts": 1657718813,
"data": {}
}
{
"database": "gmall",
"table": "user_info",
"type": "bootstrap-insert",
"ts": 1657718505,
"data": {
"id": 6800,
"login_name": "m9ml9e7xq4bx",
"nick_name": "寒寒",
"passwd": null,
"name": "元寒",
"phone_num": "13132628314",
"email": "[email protected]",
"head_img": null,
"user_level": "1",
"birthday": "1998-05-28",
"gender": "F",
"create_time": "2022-06-29 04:49:45",
"operate_time": null,
"status": null
}
}
下面文章还行
Maxwell安装、配置、脚本制作_maxwell-bootstrap_江畔独步的博客-CSDN博客