一、定向监听

定向监听,即只监听某一个特定的表,或者库

1、创建样本案例

-- 创建监听的库(演示样本)
CREATE DATABASE `test-db-2` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'; -- 和需要监听的表 (演示样本)
CREATE TABLE `test-db-2`.`sample` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`NAME` varchar(64) DEFAULT NULL,
`TYPE` int(12) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

2、定向监听的参数项:

cd /usr/local/maxwell-1.29.2
./bin/maxwell \
--user='maxwell' \
--password='123456' \
--host='192.168.2.225' \
--port='3308' \
--producer='stdout' \
--filter="exclude:*.*, include:test-db-2.sample" \
--jdbc_options='useSSL=false&serverTimezone=Asia/Shanghai' # 定向监听,通过过滤器参数实现
--filter="exclude:*.*, include:test-db-2.sample" # exclude,表示排除
# include,表示包含

针对该库的sample表进行操作,是能够监听的

[root@localhost maxwell-1.29.2]# ./bin/maxwell \
> --user='maxwell' \
> --password='123456' \
> --host='192.168.2.225' \
> --port='3308' \
> --producer='stdout' \
> --filter="exclude:*.*, include:test-db-2.sample" \
> --jdbc_options='useSSL=false&serverTimezone=Asia/Shanghai'
Using kafka version: 1.0.0
17:01:57,280 INFO Maxwell - Starting Maxwell. maxMemory: 247332864 bufferMemoryUsage: 0.25
17:01:57,493 INFO Maxwell - Maxwell v1.29.2 is booting (StdoutProducer), starting at Position[BinlogPosition[mysql-bin.000005:656973], lastHeartbeat=1642495761716]
17:01:57,651 INFO MysqlSavedSchema - Restoring schema id 1 (last modified at Position[BinlogPosition[mysql-bin.000005:16191], lastHeartbeat=0])
17:01:57,819 INFO BinlogConnectorReplicator - Setting initial binlog pos to: mysql-bin.000005:656973
17:01:57,856 INFO BinaryLogClient - Connected to 192.168.2.225:3308 at mysql-bin.000005/656973 (sid:6379, cid:254)
17:01:57,856 INFO BinlogConnectorReplicator - Binlog connected.
17:01:58,149 INFO AbstractSchemaStore - storing schema @Position[BinlogPosition[mysql-bin.000005:657429], lastHeartbeat=1642495761716] after applying "CREATE DATABASE `test-db-2` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'" to test-db-2, new schema id is 2
17:01:58,223 INFO AbstractSchemaStore - storing schema @Position[BinlogPosition[mysql-bin.000005:657658], lastHeartbeat=1642495761716] after applying "CREATE TABLE `sample` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT, `NAME` varchar(64) DEFAULT NULL, `TYPE` int(12) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4" to test-db-2, new schema id is 3
{"database":"test-db-2","table":"sample","type":"insert","ts":1642496453,"xid":87865,"commit":true,"data":{"ID":1,"NAME":"1","TYPE":11}}

如果在其他库操作,Maxwell则是不会监听的

INSERT INTO `test-db`.`day_sale` (`ID`, `PRODUCT`, `CHANNEL`, `AMOUNT`, `SALE_DATE`) VALUES
(NULL, '产品A', '拼多多', 2497.0000, NOW()),
(NULL, '产品B', '京东', 2497.0000, NOW()),
(NULL, '产品C', '淘宝', 2497.0000, NOW())

二、全量输出

全量输出,通过主库存放的maxwell库的元数据的更改,实现数据初始化

(除了这种方法还有其他3种,未列举出来)

需求:

将 test-db-2 库下的 sample 表的四条数据,全量导入到 maxwell 控制台进行打印。

操作:

INSERT INTO `maxwell`.`bootstrap` (`id`, `database_name`, `table_name`, `where_clause`, `is_complete`, `inserted_rows`, `total_rows`, `created_at`, `started_at`, `completed_at`, `binlog_file`, `binlog_position`, `client_id`, `comment`) VALUES
(NULL, 'test-db-2', 'sample', NULL, 0, 0, 0, NULL, NULL, NULL, NULL, 0, 'maxwell', NULL);

输出日志

# 不关闭maxwell也能执行,maxwell先监听了maxwell库的bootstrap表的操作,发现了初始化操作,然后执行同步
{"database":"maxwell","table":"bootstrap","type":"insert","ts":1642497749,"xid":90142,"commit":true,"data":{"id":2,"database_name":"test-db-2","table_name":"sample","where_clause":null,"is_complete":0,"inserted_rows":0,"total_rows":0,"created_at":null,"started_at":null,"completed_at":null,"binlog_file":null,"binlog_position":0,"client_id":"maxwell","comment":null}}
{"database":"test-db-2","table":"sample","type":"bootstrap-start","ts":1642497347,"data":{}}
17:15:47,541 INFO SynchronousBootstrapper - bootstrapping started for test-db-2.sample
{"database":"test-db-2","table":"sample","type":"bootstrap-insert","ts":1642497347,"data":{"ID":1,"NAME":"1","TYPE":11}}
{"database":"test-db-2","table":"sample","type":"bootstrap-insert","ts":1642497347,"data":{"ID":2,"NAME":"2","TYPE":22}}
{"database":"test-db-2","table":"sample","type":"bootstrap-insert","ts":1642497347,"data":{"ID":3,"NAME":"3","TYPE":33}}
{"database":"test-db-2","table":"sample","type":"bootstrap-insert","ts":1642497347,"data":{"ID":4,"NAME":"4","TYPE":44}}
{"database":"test-db-2","table":"sample","type":"bootstrap-insert","ts":1642497347,"data":{"ID":5,"NAME":"5","TYPE":55}}
{"database":"test-db-2","table":"sample","type":"bootstrap-complete","ts":1642497347,"data":{}}
17:15:47,592 INFO SynchronousBootstrapper - bootstrapping ended for #2 test-db-2.sample

同步完成的结果:

SELECT * FROM `maxwell`.`bootstrap`;
+----+---------------+------------+--------------+-------------+---------------+------------+------------+---------------------+---------------------+-------------+-----------------+-----------+---------+
| id | database_name | table_name | where_clause | is_complete | inserted_rows | total_rows | created_at | started_at | completed_at | binlog_file | binlog_position | client_id | comment |
+----+---------------+------------+--------------+-------------+---------------+------------+------------+---------------------+---------------------+-------------+-----------------+-----------+---------+
| 2 | test-db-2 | sample | NULL | 1 | 5 | 0 | NULL | 2022-01-18 17:22:30 | 2022-01-18 17:22:30 | NULL | 0 | maxwell | NULL |
+----+---------------+------------+--------------+-------------+---------------+------------+------------+---------------------+---------------------+-------------+-----------------+-----------+---------+

当数据全部初始化完成以后,Maxwell 的元数据会变化
is_complete 字段从 0 变为 1
started_at 字段从 null 变为具体时间(数据同步开始时间)
completed_at 字段从 null 变为具体时间(数据同步结束时间)

【Maxwell】03 定向监听&全量输出的更多相关文章

  1. 20180530利用Maxwell组件实时监听Mysql的binlog日志

    转自:https://blog.csdn.net/qq_30921461/article/details/78320750 http://kafka.apache.org/quickstart htt ...

  2. js监听全屏下的esc事件

    window.onresize = function() { if (!checkFull()) { //触发esc事件,执行业务逻辑. } }; function checkFull() { var ...

  3. js监听全屏的事件

    window.addEventListener('click',function(){ window.top.location.href = '../../loginOut.do';  //解决ifr ...

  4. vue 如何通过监听路由变化给父级路由菜单添加active样式

    1.项目需求:在项目开发中,多级菜单的情况下,勾选子菜单时,需要在父级菜单添加active样式. 2.遇到的问题:一级路由菜单的话,点击当前路由会自动在路由标签上添加router-link-exact ...

  5. 实时监听 mysql 操作,Linux 版

    效果 场景:某数据库新增了某条记录,服务器可以监听到变化的数据与操作,如 增加一条记录: id = 1009,name=''test,number = 11 服务器监听结果: 实现过程 测试过程:数据 ...

  6. Fullscreen API与DOM监听API

    前言 以下几个API,在web开发中可以简化我们一部分交互操作. Fullscreen API 有时候我们想要全屏预览的效果,比如类似于图片预览.幻灯片播放等.全屏API是一个很好的选择. 基本用法 ...

  7. Android图片加载框架最全解析(四),玩转Glide的回调与监听

    大家好,今天我们继续学习Glide. 在上一篇文章当中,我带着大家一起深入探究了Glide的缓存机制,我们不光掌握了Glide缓存的使用方法,还通过源码分析对缓存的工作原理进行了了解.虽说上篇文章和本 ...

  8. 退出全屏监听ESC事件,这里没有用keydown来监听,因为全屏时候keydown监听不到

    浏览器故意不上监听ESC键的,跟网页加载完成之后不能用程序使浏览器全屏一样的道理,避免开发者恶意全屏,不啰嗦,解决办法如下:window.onresize = function(){if(!check ...

  9. Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮

    效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...

  10. 从零开始学 Web 之 HTML5(三)网络监听,全屏,文件读取,地理定位接口,应用程序缓存

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

随机推荐

  1. 使用nvm安装以及管理多版本node教程

    安装nvm.node.npm 下载nvm安装包,推荐使用1.1.7,我个人使用1.1.8会有中文乱码的报错 点击exe文件,注意修改nvm的安装根目录以及node的安装根目录,后者是以后管理多版本no ...

  2. Dva.js 快速上手指南

    先说些废话 最近在开发React技术栈的项目产品,对于数据状态的管理使用了Dva.js,作为一个资深的ow玩家,我看到这个名字第一反应就是----这不是ow里的一个女英雄吗?仔细阅读了官方文档之后,发 ...

  3. C# .NET HttpWebRequest 按每个(单个)请求跳过证书校验

    C# .NET HttpWebRequest 按每个(单个)请求跳过证书校验 自签名证书 HTTPS TLS . 使用.NET 4.5 新加的属性 HttpWebRequest.ServerCerti ...

  4. 模拟登录之web监控

    1.什么是web监控 zabbix除了能通过 脚本+自定义key,实现服务器数据提取监控以外 也支持对网页的HTTP请求.响应监控. 2.web监控需求 以zabbix-UI页面的登录监控,模拟登录, ...

  5. WPF/C#:程序关闭的三种模式

    ShutdownMode枚举类型介绍 ShutdownMode是一个枚举类型,它定义了WPF应用程序的关闭方式.这个枚举类型有三个成员: OnLastWindowClose:当最后一个窗口关闭或者调用 ...

  6. 构建SaaS能力,加速数字化转型!猪齿鱼将在华为云快成长直播间开讲!

    时代的浪潮驱动着企业数字化转型.伴随着新基建.云计算成为国家战略的重要环节之一,"千行百业"开始专注于数字化转型,企业纷纷使用软件提升研发.销售.市场.消费者等不同场景下的效率,S ...

  7. Dell服务器配置RIAD并创建热备盘

    在系统启动期间,按F2键进入System Setup(系统设置)主菜单 单击Device Settings(设备设置). 单击所需的RAID controller(RAID控制器)设备. 4.单击Co ...

  8. 【BUG记录】Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xA6' for column 'name' at row 1

    大家好呀,我是summo,这次的文章标题是一个Mysql数据库的SQL错误,遇到的同学自然懂,没遇到的同学希望你永远也不要遇到. 一.错误说明 Cause: java.sql.SQLException ...

  9. 【资料分享】Xilinx XCZU7EV工业核心板规格书(四核ARM Cortex-A53 + 双核ARM Cortex-R5 + FPGA,主频1.5GHz)

    1 核心板简介 创龙科技SOM-TLZU是一款基于Xilinx UltraScale+ MPSoC系列XCZU7EV高性能处理器设计的高端异构多核SoC工业核心板,处理器集成PS端(四核ARM Cor ...

  10. SpringBoot集成Mongodb文档数据库

    添加Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...