当前位置: 首页 > news >正文

kettle插件-sqlserver cdc插件,从sqlserver获取实时数据so easy,早早下班

场景:

昨天发布了Oracle CDC的使用教程,有一位朋友留言“sql server cdc”是否可以,答案是肯定的。

废话少说,开干,今天咱们一起来学习Sqlserver cdc。

d18296d1-7b31-4b33-ac5f-4db4c6b55afe

 1、安装sqlserver数据库

本教程使用 docker 安装sqlserver,命令如下:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Sa@123456" -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2019-latest

2、启用数据库级别的 CDC

创建数据库和数据表,这里数据库名称为kettle,表名为t1。

1)首先要在目标数据库中启用 CDC 功能,使用如下 SQL 语句:

EXEC sys.sp_cdc_enable_db;

 

企业微信截图_17569491031117

 2)检查数据库是否已启用 CDC

SELECT name, is_cdc_enabled FROM sys.databases WHERE name = 'kettle';

企业微信截图_17569491281724

 

3、启用表级别的 CDC

启用表级别CDC,脚本如下:

 EXEC sys.sp_cdc_enable_table @source_schema = 'kettle', @source_name = 't1', @role_name = NULL, @supports_net_changes = 1;

下面报错是因为第一次创建的t1表没有主键,我们把主键加上去就行了。

企业微信截图_17569493626761

 建表语句如下:

CREATE TABLE t1 (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,dt DATETIME);

重新开启表级别CDC

企业微信截图_1756949460882

 检查表是否已启用 CDC

SELECT name, is_tracked_by_cdc FROM sys.tables WHERE name = 't1' AND schema_id = SCHEMA_ID('dbo');

企业微信截图_17569495503766

 4、启动CDC 捕获作业

1)CDC 捕获作业未运行:要确保 CDC 捕获作业正在运行。检查 CDC 捕获作业状态,脚本如下:

EXEC msdb.dbo.sp_help_job @job_name = 'cdc.kettle_capture';

 

企业微信截图_17569535537977

 2)使用作业名称启动作业

EXEC msdb.dbo.sp_start_job @job_name = 'cdc.kettle_capture';

5、设计转换

1)Sqlserver CDC ,监听Sqlserver日志变更,捕获数据

2)Json input,解析Sqlserver变更数据

3)Swtich/case,根据op字段进行路由

4)日志步骤,打印接收到的数据

 企业微信截图_17569825197787

 

5)Sqlserver CDC 配置

更多属性配置参考Debezium官网

47b760b1-3b3c-43cf-ae5a-b4ceacc532e3

 

6、调试

1)T1表中插入数据,脚本如下:

INSERT into t1(id,name,dt)values(1,'Java小金刚','2025-09-04 19:00:00')

kettle中可以正常接收到插入数据,如下图所示:

 企业微信截图_17569821795732

 

2)更新数据,脚本如下:

update t1 set name='无敌小金刚' where id=1

kettle中可以正常接收到更新数据,如下图所示:

 

企业微信截图_17569822332308

 3)删除数据,脚本如下:

delete from t1 where id=1;

kettle中可以正常接收到删除数据,如下所示:

企业微信截图_17569823937981

 image

  

http://www.hskmm.com/?act=detail&tid=382

相关文章:

  • golang netpoll 底层原理
  • manim如何按绝对时间管理动画
  • MATLAB R2025a安装教程和资源(中文版)
  • Xmanager Power Suite使用教程 - Invinc
  • try hack me.md
  • Snapshot-based State Replication 基于快照的状态复制网络框架,快照同步
  • Transformer通俗讲解
  • Ubuntu 安装微信
  • Ubuntu 安装截图软件 flameshot
  • Kali连接postgreSQL失败(已解决)
  • 主存储器和cpu的链接
  • 7. LangChain4j + 记忆缓存详细说明 - Rainbow
  • 英语_阅读_water protection team_待读
  • 滑动窗口(不与单调队列结合的总结)
  • Codeforces Round 1048 (Div 2)
  • 9.9未完成
  • 9.9日总结
  • 202205_宁波市赛_Cr4ck2
  • GitHub Copilot代码审查大升级!路径级指令+组织级规范,开发者效率再提升!
  • 20250909 GOJ 模拟赛
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名语音识别框架需求洞察
  • SOS dp(高维前缀dp)
  • 英语_阅读_raise awareness about water conservation_待读
  • 自我介绍
  • MQ
  • 微信消息模版推送
  • [豪の学习笔记] 软考中级备考 基础复习#5
  • 自我介绍+软工五问
  • 02020212 .NET Core重难点知识12-服务定位器、.NET依赖注入示例
  • 三数之和-leetcode