debezium mysql_Debezium实现MySQL到SQL SERVER高效实时同步

本文介绍了如何使用Debezium解决MySQL无唯一递增字段时的数据实时同步问题。通过binlog机制,Debezium能捕获MySQL的新增、更新和删除操作,并高效地将数据同步到Kafka,再进一步将数据导入到Elasticsearch或SQL Server。文中详细讲解了Debezium的安装、MySQL的binlog配置、connector连接器设置以及同步过程中的常见问题和解决方案。
摘要由CSDN通过智能技术生成

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

来自Elasticsearch中文社区的问题——

MySQL中表无唯一递增字段,也无唯一递增时间字段,该怎么使用logstash实现MySQL实时增量导数据到es中?

logstash和kafka_connector都仅支持基于自增id或者时间戳更新的方式 同步数据。

回到问题本身:如果库表里没有相关字段,该如何处理呢?

本文给出相关探讨和解决方案。

1.1 啥是 binlog?

binlog是Mysql sever层维护的一种 ,与innodb引擎中的redo/undo log是完全不同的日志;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘中。

作用主要有:

1)复制:达到master-slave数据一致的目的。

2)数据恢复:通过mysqlbinlog工具恢复数据。

3) 。

1.2 阿里的Canal实现了增量Mysql同步

2424.html

一图胜千言,canal是用java开发的基于数据库增量日志解析、提供增量数据订阅&消费的中间件。

目前,canal主要支持了MySQL的binlog解析,解析完成后才利用canal client 用来处理获得的相关数据。目的: 。

综上,使用binlog可以突破logstash或者kafka-connector没有自增id或者没有时间戳字段的限制,实现增量同步。

1)基于kafka Connect的Debezium 开源工程,地址:.https://debezium.io/

2)不依赖第三方的独立应用:Maxwell开源项目,地址:http://maxwells-daemon.io/

由于已经部署过conluent(kafka的企业版本,自带zookeeper、kafka、ksql、kafka-connector等),本文仅针对Debezium展开。

Debezium是捕获数据实时动态变化的开源的分布式同步平台。能实时捕获到数据源(Mysql、Mongo、PostgreSql)的:新增(inserts)、更新(updates)、删除(deletes)操作,实时同步到Kafka,稳定性强且速度非常快。

特点:

1)简单。无需修改应用程序。可对外提供服务。

2)稳定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值