kettle插件-postgresql插件

今天是清明节,放假第一天也不得清闲。上午整理公司的交付文档,中午陪孩子户外骑行踏青,下午趁着休息的时间给老铁们讲下如何使用postgressql cdc插件来实时捕获数据。

注:CDC (Change Data Capture) 是一种技术,用于实时捕获和同步数据库中的更改。

1、基于docker搭建 postgressql环境。

1)创建容器

docker run -d \

--name postgres-cdc \

-e POSTGRES_USER=postgres \

-e POSTGRES_PASSWORD=123456 \

-e POSTGRES_DB=testdb \

-p 5432:5432 \

-v /Users/xxx/Documents/docker/pgdata:/var/lib/postgresql/data \

postgres \

postgres -c wal_level=logical -c max_replication_slots=10 -c max_wal_senders=10

2)进入容器

docker exec -it postgres-cdc psql -U postgres -d testdb

3)创建复制槽

SELECT pg_create_logical_replication_slot('debezium_slot', 'pgoutput');

4)创建发布

CREATE PUBLICATION debezium_publication FOR ALL TABLES;

2、将postgresql-cdc-1.0插件放到kettle的plugins目录下面,重启spoon。

3、设计转换,如下图所示:

1)本次转换用到了Postgresql CDC、JSON输入、Switch/case、写日志步骤。

Postgresql CDC步骤:解析Postgresql的日志数据。

JSON输入:解析日志数据,如{"ts_ms":1743757150325,"db":"testdb","table":"t1","op":"DELETE","before":"{\"id\":1}","pk":"{\"id\":1}"}

Switch/case:根据日志中的op字段进行路由日志数据,进行不同逻辑的处理。

写日志:模拟具体的逻辑操作。

2)Postgresql CDC配置

Debezium步骤配置如下(只输出dml),更多属性配置参考Debezium官网。如下图所示:

4、保存&运行

运行之后该转换会一直处于运行状态,只要数据源有发生变更,会实时接收到变更日志。

1)插入数据,sql为insert into t1(id,"name")values('1','Java小金刚'),转换接收数据如下图所示:

2)更新数据,update t1 set name='Java大金刚' where id='1';,转换接收数据如下图所示:

3)删除数据,delete from t1 where id='1',转换接收数据如下图所示:

done!!!

相关推荐
跨境数据猎手4 小时前
外贸独立站开发:从选型到上线全流程梳理
大数据·架构·自动化
whcyhhh5 小时前
头歌实践教学平台:大数据存储2023(十三1)
大数据·数据库·python
TDengine (老段)5 小时前
TDengine 应用案例 — IT 运维与可观测性
大数据·运维·数据库·制造·时序数据库·tdengine·涛思数据
金立基包装胶水5 小时前
水性纸袋热封胶,常见故障有多少种?
大数据·笔记·其他
geneculture5 小时前
从融智学到人机互助:技术成果交易的理论重构与战略前瞻——基于“九五至尊模型”与融智学三大判断的分析
大数据·人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·序位逻辑的实例化·中国企业知识产权战略专栏
lvts_cs5 小时前
如何判断化工产业规划的定位布局是否合理
大数据·人工智能
Cloud云卷云舒5 小时前
【运营商数据库】实战淬炼,规模落地 | 中国移动HaishanDB年中总结会圆满召开
数据库·postgresql·ai-native·haishandb·移动云海山数据库
IT毕设实战小研5 小时前
基于安卓的考研资讯系统设计与实现
android·大数据·vue.js·爬虫·python·考研·课程设计
千里码aicood7 小时前
基于Hadoop的汽车销量分析与可视化
大数据·hadoop·分布式
大金SEO14 小时前
GEO启动的正确顺序:先做信源清理,再谈内容扩张
大数据·人工智能