Kafka-Connect-JDBC-Sink池连接器实战

Kafka-Connect-JDBC-Sink池连接器实战

功能概述

通过kafka-connect,实现mysql数据自动同步,以下为数据同步流程示意图:
在这里插入图片描述

1、创建mysql数据库

创建一个数据库写入用户(sink),用于读取数据;

使用root操作,进行如下操作
-- 创建数据库
create database test_sink;
-- 创建只读用户
create user 'sink'@'127.0.0.1' identified by '123456';
-- 赋予全部权限
grant all on test_sink.* to 'sink'@'127.0.0.1';
-- 刷新权限
flush privileges;

使用sink登录mysql,验证是否可以正常访问数据库:

mysql -u sink -p -h 127.0.0.1 

2、Mysql-connect-sink池端连接器配置

文件:connect-mysql-sink.properties

name=connect-mysql-sink
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
tasks.max=10

# topic名称列表
topics=sys_config

# 配置jdbc连接
connection.url=jdbc:mysql://127.0.0.1:3306/test_sink?useUnicode=true&characterEncoding=utf8&user=sink&password=123456&serverTimezone=Asia/Shanghai
# 自动创建表
auto.create=true

# 主键
pk.mode=record_value
pk.fields=cfg_id

# 写入模式
insert.mode=upsert

3、启动connect

启动脚本文件:8.1-kafka-connect-jdbc.bat

@echo off 
rem 启动8.1-connect-jdbc
title connect-jdbc-[%date% %time%]

rem 设置connect-jdbc路径
set CLASSPATH=%cd%\plugins\kafka-connect-jdbc\*

rem connect 连接mysql
set configs=config/connect-standalone.properties
set configs=%configs% config/connect-mysql-whitelist-timestamp-source.properties
set configs=%configs% config/connect-mysql-sink.properties
bin\windows\connect-standalone.bat %configs%

pause

4、查看连接器插件列表

http://127.0.0.1:8083/connector-plugins
在这里插入图片描述

5、数据写入测试

由于昨天已经在源库中创建表,并写入数据,首次连接mysql目标端库时,发现表结构,数据已经自动同步过来,但是有如下差异:

5.1、表名称不同:

如果源端topic.prefix配置为:mysql-,将导致目标端自动创建的表名与源端不一致;

5.2、表结构不一致

目标库的表结构自动创建,但是不包括默认值;
源表结构:
在这里插入图片描述
目标表结构:
在这里插入图片描述

5.3、插入、更新的数据可以正常同步

在这里插入图片描述

5.4、删除的数据无法同步

但是删除的数据,无法正常同步到目标端。
在这里插入图片描述

参考:

https://docs.confluent.io/5.4.0/connect/kafka-connect-jdbc/sink-connector/index.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
kafka-connect-transform-kryptonite 是 Kafka Connect 的一个转换器插件。Kafka Connect 是一个可扩展的分布式数据集成工具,可用于在 Apache Kafka 和外部系统之间进行可靠和高效的数据流传输。而 Kafka Connect 转换器是用于对数据进行转换、过滤或处理的插件。 Kafka Connect 是一个开源的分布式数据集成框架,用于连接和处理来自各种数据源的数据,例如数据库、消息队列和文件系统等。它提供了一个统一的、可扩展的架构,允许用户将数据从多个来源导入到 Kafka 中,并将数据导出到多个目标系统。这为数据集成提供了更加灵活和可靠的方式,且能够满足各种实时数据处理的需求。 Kafka Connect 的一个关键特性是插件化的架构,使得用户可以根据自己的需求,选择和配置合适的插件。其中,kafka-connect-transform-kryptonite 插件就是其中之一。Kryptonite 可以理解为一种“解除”或“削弱”转换器,它可能采用一些特定的规则或算法,对输入的数据进行加工、转换或过滤。 使用 kafka-connect-transform-kryptonite 插件,我们可以根据具体的业务需求,对 Kafka 中的消息进行处理。例如,我们可以通过 Kryptonite 转换器,将消息中的某些字段进行加密,以保护敏感数据的安全;或者根据一些规则,对消息进行过滤和筛选,只保留我们关心的数据。 总之,kafka-connect-transform-kryptonite 是 Kafka Connect 提供的一个转换器插件,可以用于对数据进行加工、转换和过滤。通过这个插件,我们可以根据业务需求对 Kafka 中的消息进行定制化处理,以满足不同场景下的数据集成和处理需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值