kafka实时读取sqlserver数据_SQLServer CDC数据通过Kafka connect实时同步至分析型数据库 AnalyticDB For PostgreSQL及OSS-阿里云开发者社...

本文介绍了如何利用SQLServer的CDC功能,结合Kafka Connect,实现实时从SQLServer数据库同步数据到AnalyticDB For PostgreSQL(ADB4PG)以及OSS。详细步骤包括SQLServer开启CDC、创建源表,ADB4PG端创建目标表,配置和启动Kafka Server、Kafka Connect,以及设置OSS和ADB4PG的Sink连接器。
摘要由CSDN通过智能技术生成

背景

SQLServer为实时更新数据同步提供了CDC机制,类似于Mysql的binlog,将数据更新操作维护到一张CDC表中。

开启cdc的源表在插入INSERT、更新UPDATE和删除DELETE活动时会插入数据到日志表中。cdc通过捕获进程将变更数据捕获到变更表中,通过cdc提供的查询函数,可以捕获这部分数据。

CDC的使用条件

1.SQL server 2008及以上的企业版、开发版和评估版;

2.需要开启代理服务(作业)。

3.CDC需要业务库之外的额外的磁盘空间。

4.CDC的表需要主键或者唯一主键。

图1:Sqlserver CDC原理

ADB4PG Sink使用条件

需要提前使用建表语句,在ADB4PG端建表,系统不会自动创建(如果有需要可以加这部分功能)

每张表需要有主键或唯一主键

当前支持的数据格式:INTEGER,BIGINT,SMALLINT,NUMERIC,DECIMAL,REAL,DOUBLEPERICISION,BOOLEAN,DATE,TIMESTAMP,VARCHAR

环境准备

SQLServer环境准备

已有自建SQLServer或云上RDS实例(示例使用云上RDS SQLServer实例)

已有windows环境,并安装SSMS(SQL Server Management Studio),部分命令需要在SSMS执行

SQLServer环境建表

-- 创建源表

create database connect

GO

use connect

GO

create table t1

(

a int NOT NULL PRIMARY KEY,

b BIGINT,

c SMALLINT,

d REAL,

e FLOAT,

f DATETIME,

g VARCHAR

);

-- 开启db级的cdc

exec sp_rds_cdc_enable_db

-- 验证数据库是否开启cdc成功

select * from sys.databases where is_cdc_enabled = 1

-- 对源表开启cdc

exec sp_cdc_enable_table @source_schema='dbo', @source_name='t1', @role_name=null;

ADB4PG端创建目标表

CREATE DATABASE connect;

create table t1

(

a int NOT NULL PRIMARY KEY,

b BIGINT,

c SMALLINT,

d REAL,

e FLOAT,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值