kafka connect jdbc 实现新增和修改同步数据

kafka connect jdbc

前提:安装kafka zk


前言

解决小数据量的数据同步问题,支持新增和修改,不支持删除

一、kafka启动命令

./bin/kafka-server-start.sh ./config/server.properties
./bin/connect-distributed.sh ./config/connect-distributed.properties

二、使用步骤

1.启动成功之后调用注册源接口,注册SourceConnector

代码如下(示例):

http://ip:{kafkaconnect的port}/connectors/
{
    "name":"topic-sit-upload-mysql",
    "config":{
        "connector.class":"io.confluent.connect.jdbc.JdbcSourceConnector",
        "connection.url":"jdbc:mysql://192.168.12.11:3306/test?user=root&password=123456",
        "table.whitelist":"users_input",
        "incrementing.column.name":"uid",
        "mode":"bulk",
        "topic.prefix":"topic-sit-"
    }
}

成功之后的返回
参数说明

name:connector的名称
config:所有connector的配置信息
connector.class:指定的Connector类(Source  or  Sink)
connection.url:MySQL的连接url
table.whitelist:表名,多个用逗号分隔
incrementing.column.name:主键
mode:指定connector的模式,这里为增量模式(JDBC连接器有四种模式:bulk、timestamp、incrementing、timestamp+incrementing。我将最后三个分组为增量,因为它们共享相同的基本概念)
topic.prefix:Kafka会创建一个Topic,该配置项就是用于指定Topic名称的前缀,后缀为数据表的名称。例如在本例中将生成的Topic名称为:topic-sit-users_input

2.注册JdbcSinkConnector

代码如下(示例):

{"name":"topic-sit-download-mysql","config":{
"connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector",
"connection.url":"jdbc:mysql://192.168.12.11:3306/test?user=root&password=123456",
"topics":"topic-sit-users_input",
"auto.create":"false",
"insert.mode": "upsert",
"pk.mode":"record_value",
"pk.fields":"uid",
"table.name.format": "users_output"}}

总结

本文中主要主要kafka connect 使用SourceConnector从数据源中读取数据写入到Kafka中,然后再通过SinkConnector读取KafkaTopic中的数据输出到另一端(MySQL,也可以是另外的库)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值