kafka实时读取sqlserver数据_Kafka Connect 实时读取MSSQL数据到Kafka

在处理实时数据时,需要即时地获得 数据库 表中数据的变化,然后将数据变化发送到Kafka中。这篇文章将介绍如何使用Kafka Connector完成这一工作。当获取实时数据时,数据源需要支持对数据变化进行反馈。不同的数据源采用了不同的技术和方法实现该功能,因为我们的业务数据库是MS SQL Server,因此这篇文章采用MSQL作为数据源。

选择Connector

首先需要选择Connector,不同的数据源有不同的Connector,例如ActiveMQ Connector、MySql Connector、MSSQL Connector等。即便是同一数据源,也可能有不同的第三方提供。我一共尝试了下面两个MSSQL Connector:

比较遗憾的是:这两个Connector,debezium的是Alpha版本,confluent的是Preview版本,反正都不是正式版,而 MySql 都已经有正式版本了,可见开源社区对MS真的不友好呀 >_

因为Change Tracking相比Change Data Capture来说,更轻量一些,因此我选用了confluent的Connector。其下载地址是: https://www.confluent.io/hub/

安装Connector

下载后,将其解压缩至 $KAFKA_HOME/connectors 文件夹下,如下图所示:

$KAFKA_HOME是你的kafka安装目录,如果是集群,要安装在集群下每台机器的connectors目录下。

在上面的截图中,可以看到我还安装了confluentinc-kafka-connect-hdfs-5.0.0和debezium-connector-sqlserver两个connector。

配置Connector

接下来要对Connector进行配置,此时可以回顾一下 Kafka Connect 基本概念 。Connector是一组独立的集群,并且是作为Kafka集群的客户端,我们首先需要对Connector进行配置,配置文件位于 $KAFKA_HOME/config/connect-distributed.properties:

# kafka集群地址

bootstrap.servers=kafka1:9092,kafka2:9092,kafka3:9092

# Connector集群的名称,同一集群内的Connector需要保持此group.id一致

group.id=connect-cluster

# 存储到kafka的数据格式

key.converter=org.apache.kafka.connect.json.JsonConverter

value.converter=org.apache.kafka.connect.json.JsonConverter

key.converter.schemas.enable=false

value.converter.schemas.enable=false

# 内部转换器的格式,针对offsets、config和status,一般不需要修改

internal.key.converter=org.apache.kafka.connect.json.JsonConverter

internal.value.converter=org.apache.kafka.connect.json.JsonConverter

internal.key.converter.schemas.enable=false

internal.value.converter.schemas.enable=false

# 用于保存offsets的topic,应该有多个partitions,并且拥有副本(replication)

# Kafka Connect会自动创建这个topic,但是你可以根据需要自行创建

# 如果kafka单机运行,replication.factor设置为1;当kafka为集群时,可以设置不大于集群中主机数

# 因为我这里的环境是3主机的集群,因此设为2

offset.storage.topic=connect-offsets

offset.storage.replication.factor=2

offset.storage.partitions=12

# 保存connector和task的配置,应该只有1个partition,并且有多个副本

config.storage.topic=connect-configs

config.storage.replication.factor=2

# 用于保存状态,可以拥有多个partition和replication

status.storage.topic=connect-status

status.storage.replication.factor=2

status.storage.partitions=6

# Flush much faster than normal,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值