Kafka JDBC 连接器简介
JDBC源连接器和接收器连接器允许您在关系数据库和Kafka之间交换数据。JDBC源连接器允许您使用JDBC驱动程序将任何关系数据库中的数据导入Kafka主题。
通过使用JDBC,此连接器可以支持各种数据库,而无需为每个数据库使用自定义代码。通过定期执行SQL查询并为结果集中的每一行创建输出记录来加载数据。
默认情况下,数据库中的所有表都被复制,每个表都复制到其自己的输出主题。监视数据库中的新表或删除表,并自动进行调整。
从表复制数据时,连接器可以通过指定应使用哪些列来检测新数据或修改的数据来仅加载新行或修改的行。JDBC接收器连接器允许您使用JDBC驱动程序将数据从Kafka主题导出到任何关系数据库。
通过使用JDBC,此连接器可以支持各种数据库,而无需为每个数据库使用专用的连接器。连接器根据主题订阅从Kafka轮询数据以写入数据库。
可以通过upserts实现幂等写入。还支持表的自动创建和有限的自动演化。
如何将jdbc连接器驱动包集成到Kafka
Connect驱动包采用插件式设计,支持常见的数据库类型,包括:oracle,sqlserver,db2,mysql等,可通过如下方式实现集成:
1、下载Connect JDBC连接器
地址:https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc 文件:confluentinc-kafka-connect-jdbc-5.4.0.zip
2、kafka-connect-jdbc目录结构
解压:confluentinc-kafka-connect-jdbc-5.4.0.zip,目录结构如下:
- etc目录:默认包含2个基于sqlite的connect配置:
sink-quickstart-sqlite.properties
source-quickstart-sqlite.properties - lib目录:为kafka-connect的驱动目录,以及部分数据库的驱动包:
common-utils-5.4.0.jar
jtds-1.3.1.jar
kafka-connect-jdbc-5.4.0.jar
postgresql-9.4.1212.jar
slf4j-api-1.7.26.jar
sqlite-jdbc-3.25.2.jar
3、jdbc连接器驱动包存储路径
为便于jar包管理与升级维护,建议将connect相关包单独放在一个目录,例如:
%KAFKA_HOME%/plugins/kafka-connect-jdbc
4、使用jdbc驱动包启动服务
启动connect服务时,使用如下方式指定驱动包路径:
@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
bin\windows\connect-standalone.bat config/connect-standalone.properties config/mysql-whitelist-timestamp-source.properties
pause
下一节讲解如何配置mysql源连接器。