mysql的数据如何进kafka_MySQL数据实时增量同步到Kafka

一、go-mysql-transfer

go-mysql-transfer是一款MySQL实时、增量数据同步工具。能够实时解析MySQL二进制日志binlog,并生成指定格式的消息,同步到接收端。

go-mysql-transfer具有如下特点:

1、不依赖其它组件,一键部署

2、集成多种接收端,如:Redis、MongoDB、Elasticsearch、RabbitMQ、Kafka、RocketMQ,不需要再编写客户端,开箱即用

3、内置丰富的数据解析、消息生成规则;支持Lua脚本,以处理更复杂的数据逻辑

4、支持监控告警,集成Prometheus客户端

5、高可用集群部署

6、数据同步失败重试

7、全量数据初始化

如果此工具对你有帮助,请在github中Star支持下

二、配置

# app.yml

#目标类型

target: kafka # 目标类型

#kafka连接配置

kafka_addrs: 127.0.0.1:9092 #连接地址,多个用逗号分隔

#kafka_sasl_user: #SASL_PLAINTEXT认证模式 的用户名

#kafka_sasl_password: #SASL_PLAINTEXT认证模式 的密码

三、数据转换规则

相关配置如下:

rule:

-

schema: eseap #数据库名称

table: t_user #表名称

#order_by_column: id #排序字段,存量数据同步时不能为空

#column_lower_case:false #列名称转为小写,默认为false

#column_upper_case:false#列名称转为大写,默认为false

column_underscore_to_camel: true #列名称下划线转驼峰,默认为false

# 包含的列,多值逗号分隔,如:id,name,age,area_id 为空时表示包含全部列

#include_columns: ID,USER_NAME,PASSWORD

#exclude_columns: BIRTHDAY,MOBIE # 排除掉的列,多值逗号分隔,如:id,name,age,area_id 默认为空

#column_mappings: USER_NAME=account #列名称映射,多个映射关系用逗号分隔,如:USER_NAME=account 表示将字段名USER_NAME映射为account

#default_column_values: source=binlog,area_name=合肥 #默认的列-值,多个用逗号分隔,如:source=binlog,area_name=合肥

#date_formatter: yyyy-MM-dd #date类型格式化, 不填写默认yyyy-MM-dd

#datetime_formatter: yyyy-MM-dd HH:mm:ss #datetime、timestamp类型格式化,不填写默认

你可能感兴趣的:(mysql的数据如何进kafka_MySQL数据实时增量同步到Kafka)