当前位置: 首页 > 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.gsyq.cn/news/1236.html

相关文章:

  • try hack me.md
  • 7. LangChain4j + 记忆缓存详细说明 - Rainbow
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名语音识别框架需求洞察
  • 英语_阅读_raise awareness about water conservation_待读
  • [豪の学习笔记] 软考中级备考 基础复习#5
  • 02020212 .NET Core重难点知识12-服务定位器、.NET依赖注入示例
  • apache详细配置
  • 9.8总结
  • 在 AlmaLinux 9 使用 Podman 部署 Redis 7.4.5 并优化内核参数
  • 基于调度场算法将中缀表达式转换为后缀表达式
  • linux下安装pycharm时,中文无法显示的问题
  • Docker,Containerd配置私有Harbor仓库和Notary服务器
  • Ubuntu安装containerd
  • 我重新制作动画系统的思路
  • 港科 Tower A 宿舍凝水之谜
  • Transformer 模型(能理解“句子顺序”和“上下文”的神经网络架构)
  • 关于 cnpm 的安装
  • BOE(京东方)“照亮成长路”公益项目走进富平县 科技赋能教育树立可持续发展新标杆
  • K8S Ingress 和 Service的作用?
  • 通过pip的配置文件,来永久设置国内源‌
  • 用夏普比例和卡玛比率评估基金的性价比
  • 漏洞解析--CSRF
  • 第一篇随笔
  • CF1404D Game of Pairs
  • Office支持终止:如何防止宏灾难
  • 微软日语输入法卡死 没有反应 的解决方法
  • 反爬虫体系中设备ID的技术应用
  • 在 AlmaLinux 9 上使用 Podman Quadlet 部署 MongoDB 6.0
  • 《电视软件安装包》
  • 漏洞实战--java反序列化--用友NC UserAuthenticationServlet