Maxwell简介使用

Maxwell 介绍

      Maxwell 是由美国 zendesk 开源,用 java 编写的 Mysql 实时抓取软件, 其抓取的 原理也是基于 binlog。

官网

https://maxwells-daemon.io/

Maxwell 和 canal 工具对比

Maxwell 没有 canal 那种 server+client 模式,只有一个 server 把数据发送到消息队列 或 redis。如果需要多个实例,通过指定不同配置文件启动多个进程。
Maxwell 有一个亮点功能,就是 canal 只能抓取最新数据,对已存在的历史数据没有办
法处理。而 Maxwell 有一个 bootstrap 功能,可以直接引导出完整的历史数据用于初
始化,非常好用。
Maxwell 不能直接支持 HA,但是它支持断点还原,即错误解决后重启继续上次点儿读
取数据,canal也支持
Maxwell 只支持 json 格式,而 Canal 如果用 Server+client 模式的话,可以自定义格
式。
Maxwell 比 Canal 更加轻量级。

安装使用

前提开启了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": "银联"}
}

bootstap全量

--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": "m9ml9e7xq4bx@yeah.net","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}
}

总结数据特点

日志结构
      canal 每一条 SQL 会产生一条日志,如果该条 Sql 影响了多行数据,则已经会通过集
合的方式归集在这条日志中 。(即使是一条数据也会是数组结构)
maxwell 以影响的数据为单位产生日志,即每影响一条数据就会产生一条日志。如果
想知道这些日志是否是通过某一条 sql 产生的可以通过 xid 进行判断,相同的 xid 的日志来
自同一 sql。
数字类型
        当原始数据是数字类型时, maxwell 会尊重原始数据的类型不增加双引 ,变为字符串。
canal 一律转换为字符串。
带原始数据字段定义
canal 数据中会带入表结构 。maxwell 更简洁。

配置文件模板

log_level=info#producer=stdout
producer=kafka
kafka.compression.type=snappy
kafka.batch.size=10000
kafka.request.timeout.ms = 360000
kafka.retries=3
kafka.acks=-1
kafka.bootstrap.servers=ip:9092,ip:9092,ip:9092
kafka_topic=%{database}_%{table}
#output_ddl=true
producer_partition_by=primary_key
kafka_partition_hash=murmur3# mysql login info
host=localhost
port=3306
user=maxwell
password=密码replication_host=mysql_host
replication_user=username
replication_password=password
replication_port=3306
filter=exclude: *.*, include: 数据库.表, include: 数据库.表, include: 数据库.表
jdbc_options=serverTimeZone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
client_id=maxwell_1
replica_server_id=1

下面文章还行 

Maxwell安装、配置、脚本制作_maxwell-bootstrap_江畔独步的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254538.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Maxwell 一款简单易上手的实时抓取Mysql数据的软件

第一章 Maxwell概述 1.1、Maxwell简介 Maxwell 是由美国 Zendesk 开源,用 Java 编写的 MySQL 实时抓取软件。 实时读取MySQL 二进制日志 Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Googl…

maxwell理论知识

1 Maxwell是什么 Maxwell 是由美国 Zendesk 开源,用 Java 编写的 MySQL 实时抓取软件。 实时读取 MySQL 二进制日志 Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、 RabbitMQ、Redis、Google Cloud Pub/Sub、文…

maxwell render中文版

教程: 1、下载软件包解压,双击exe程序安装软件,点击下一步。 2、软件协议界面,选择我接受协议,点击下一步。 3、选择安装路径,选择C盘之外的磁盘安装。 4、选择安装组件,全部勾选&#xff0…

Maxwell简单使用

1.Maxwell简介 Maxwell 是由美国 Zendesk 开源,用 Java 编写的 MySQL 实时抓取软件。 实时读取MySQL 二进制日志 Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或…

Maxwell 介绍、安装、部署、运行(MYSQL -> Maxwell -> kafka)

Maxwell 安装、部署、运行(MYSQL -> Maxwell -> kafka) 一、Maxwell 概述 Maxwell 用 Java 编写的 MySQL 实时抓取软件。 实时读取MySQL 二进制日志 Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka等消费中心。 …

Maxwell的简介与使用

一、简介 Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数据处理平台。 Maxwell…

推荐三款动态壁纸软件,足够让你的桌面惊艳!

点击上方“码农的后花园”,选择“星标” 公众号 精选文章,第一时间送达 今天给大家推荐三款动态壁纸软件,给你的桌面添加一点精彩,心情也更美呢 ~ 1,WinDynamicDesktop 进入软件界面,默认提供了5套苹果系统使用过的动态…

找壁纸不用愁了:壁纸网站/APP/工具合集

苏生不惑第261篇原创文章,将本公众号设为星标,第一时间看最新文章。 之前分享过那些好用的无版权免费图片网站,今天分享些好看的壁纸网站和工具,在公众号后台回复 壁纸 获取软件。 wallhaven 这个知名壁纸网站应该不用多介绍了htt…

免费壁纸网站大全

极简壁纸展开目录 https://bz.zzzmh.cn 国人维护的壁纸网站,图片大多来源 wallhaven 和 unsplash。 轻壁纸展开目录 一个免费纯净高清电脑壁纸分享站,主打高清横屏电脑壁纸,永久免费! https://bz.qinggongju.com 壁纸湖展开目…

推荐两款超高质量的壁纸软件

前言 整天对着电脑工作难免会感觉烦躁,但如果能经常看到自己喜欢的壁纸,那应该会稍微愉悦一点吧… 不过搜索引擎找到的壁纸壁纸普遍清晰度低、带水印、质量也不高 每次还需要下载完手动替换,比较麻烦 今天给大家推荐两款高质量并且开源的…

高清免费壁纸网站推荐

本期内容,为大家整理了6个相当不错的免费壁纸网站,访问量极大、活跃度极高。 无需登录、注册,打开右键就可以下载,而且壁纸图片的尺寸大小,可以选择,从手机、平板、再到电脑壁纸,全部都是高清。…

Wallpaper引擎 壁纸提取 (文中附工具下载链接)

有一款优秀的电脑桌面壁纸软件——《Wallpaper Engine》 用过的都知道,好得不得了 但是,这款壁纸软件还是很吃GPU的,尤其是场景类、视频类的壁纸,电脑性能不足的还会卡可怜的笔记本就这样。 有时候除了壁纸本身,是…

chatgpt赋能python:Python中怎么转置矩阵

Python中怎么转置矩阵 在Python中,我们可以轻松地实现矩阵的转置操作。矩阵转置是指将矩阵的行列互换,即将矩阵的行转换为列,将列转换为行。这种操作在数据处理和科学计算中是很常见的,因此我们需要了解如何在Python中进行矩阵转…

网络打印机因IP地址变动导致脱机的解决方法

PC版本win10 某一天因为种种原因导致网络打印机的IP变动了,那么我们在自己PC机上添加的打印机就无法使用了,来看作者是怎么解决的。假设目标IP由192.168.1.16改为192.168.2.195 打开我的打印机和扫面仪菜单

打印机显示脱机怎么办

简述 删除设备,重新添加设备就可以了。 详细 将变灰的打印机删除设备,然后添加新的打印机就OK了。 添加打印机可以选用TCP/IP连接方式。

打印机脱机了怎么办

1、 确保开启打印机电源,并且打印机处于待机准备就绪状态; 2、打印机指示灯绿灯闪烁或常亮就绪; 3、检查打印机 USB连接线到电脑之间是否有问题。重新开启打印机电源; 4、依次点击“开始”→“打印机和传真”。在“打印机和传真…

win10打印机脱机(win10打印机脱机怎么处理)

Win10系统下打印机脱机状态怎么解除呢? 1、将鼠标移动到桌面的右上角或者右下角,在弹出的菜单中点击设置按钮脱机状态。 2、在设置界面点击控制面板打印机电脑图解。 3、在控制面板的查看方式为类别大全情况下点击查看设备和打印机脱机。 4、在脱机的…

打印机脱机解决办法

打印机脱机解决办法 下午的时候想打印一篇论文,结果点了打印之后打印机没有反应,我还以为是打印机里面没有纸了,因为上次的时候就是这样,上一个人打印完之后正好没有纸,我打印的时候就没有提示没有纸,但是…

共享打印机服务器脱机状态,打印机脱机工作怎么恢复 共享的打印机脱机状态...

原标题:"打印机脱机怎么办,小编教你打印机脱机状态怎么解决"关于电脑问题教程分享。 - 来源:191路由网 - 编辑:小元。 日常生活中我们都经常会接触到打印机,特别是现在日雏的网络化办公,不过发现不少拥有打印机的用户都碰到过这样的…

网络层

一、概述 1、网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从…