数据探针 Mysql 数据库

数据探针

    针对MySQL数据库:
    MySQL数据库可以使用开源的canal组件来实现探测数据变更。
    canal开源代码地址:https://github.com/alibaba/canal/wiki/QuickStart

    canal依赖条件:
    a. canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,建议配置binlog模式为row。如果目标数据库配置不符,可能需要修改目标数据库的数据库配置。
    [mysqld]
    log-bin=mysql-bin #添加这一行就ok
    binlog-format=ROW #选择row模式
    server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复。

    在master-slave模式下,必须指定目标数据库的server_id,不能为默认的0。
    canal在v1.0.26之后的版本中,作为slave的serverId会自动生成。

在这里插入图片描述
b. canal的原理是模拟自己为mysql slave,所以这里一定需要做为mysql slave的相关权限.
CREATE USER canal IDENTIFIED BY ‘canal’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@’%’;
– GRANT ALL PRIVILEGES ON . TO ‘canal’@’%’ ;
FLUSH PRIVILEGES;
测试环境安装:
1.安装MySQL,设置相应权限
2.安装canal,修改配置连接相应数据库,或直接通过docker安装。
a. 直接安装https://github.com/alibaba/canal/wiki/QuickStart
wget https://github.com/alibaba/canal/releases/download/canal-1.1.2/canal.deployer-1.1.2.tar.gz
b. docker安装 https://github.com/alibaba/canal/wiki/Docker-QuickStart
3.安装zookeeper
wget http://mirrors.shu.edu.cn/apache/zookeeper/stable/zookeeper-3.4.13.tar.gz
4.安装kafka,数据变更消息会投递到kafka

    在117.50.10.62机器上配置了一套canal及MySQL环境,配置:
    数据库:
    # position info
    canal.instance.master.address=127.0.0.1:3306
    canal.instance.master.journal.name=
    canal.instance.master.position=
    canal.instance.master.timestamp=
    canal.instance.master.gtid=

    # username/password
    canal.instance.dbUsername=root
    canal.instance.dbPassword=canal
    canal.instance.connectionCharset = UTF-8
    canal.instance.defaultDatabaseName =test
    # enable druid Decrypt database password
    canal.instance.enableDruid=false

    canal监听在8930端口:
    canal.id = 1
    canal.ip = 0.0.0.0
    canal.port = 8930

    测试示例:
    a.	DML 删除数据记录:

在这里插入图片描述
canal打印:
================> binlog[mysql-bin.000003:3991] , name[test,teacher] , eventType : DELETE
==RowData
DELETE:
id : 3 update=false
th_name : 段老师 update=false
age : 35 update=false
teach_course : 语文 update=false
school_age : 10 update=false
school : 清华附中 update=false
ttt : update=false

    b. DDL删除字段

在这里插入图片描述
canal打印:
eventType: ALTER
isDdl: true
sql: “alter table teacher drop column ttt”
ddlSchemaName: “test”

    参考资料:
    https://github.com/alibaba/canal/wiki/Kafka-QuickStart
    https://github.com/alibaba/canal/wiki/Zookeeper-QuickStart
    https://docs.google.com/presentation/d/1MkszUPYRDkfVPz9IqOT1LLT5d9tuwde_WC8GZvjaDRg/edit#slide=id.p30
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值