kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量增量数据同步

news/2025/3/19 15:55:33/文章来源:https://www.cnblogs.com/zjBoy/p/18229863

本次课程的逻辑是同步t1表数据到t2表,t1和t2表的表机构相同,都有id,name,createtime三个字段。 

CREATE TABLE `t1` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,`createtime` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

1、之前的课程有介绍过单个转换的全量和增量数据同步,今天我们一起学习下通过trans来实现将增量和全量合二为一。这里面重点用到了执行Dynamic SQL步骤,如下图所示:

 

 2、查询目标表t2中的表记录总条数,若总条数为0表示没有进行同步过,需要进行全量同步,否则进行增量同步。这里增量同步的逻辑是通过两个表的id进行比对,当然也可以通过业务时间字段进行比对。

 3、使用javascript脚本步骤动态构建sql语句,根据maxId值进行编写逻辑,如下图所示:

 4、使用执行Dynamic SQL步骤执行前面构建的sql语句。

1)SQL field name:动态sql语句字段。

2)Template SQL:我个人理解就是字段设置别名方便步骤后续使用。

 5、表输出步骤将数据写入t2表。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720049.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HMI-Board之LVGL应用

LVGL应用示例移植 使用默认模板工程新建一个RT-Thread项目,BSP版本为1.1.1打开RT-Thread Settings,点击右侧箭头按钮进入详细页,在硬件栏开启以下几个配置选项(LCD、触摸屏、demo)此时,打开board文件夹,发现下面会有一个lvgl的目录,package目录下会有LVGL和lv-music两个…

升鲜宝牛奶溯源管理系统_2024年全网首发,针对牛奶行业特定的溯源解决方案_一码一物_升鲜宝_余东升_升鲜宝供应链管理系统团队再出新作。

升鲜宝牛奶溯源管理系统_2024年全网首发,针对牛奶行业特定的溯源解决方案_一码一物_升鲜宝_余东升_升鲜宝供应链管理系统团队再出新作。整套软件解决方案分三个端:1.PC后台溯源管理系统2.uniapp溯源小程序员工操作端3.vue3,h5溯源网页展示效果图主要功能:权限管理(组织机构、…

如何设计兜底方案(高可用)

场景: 很多时候,在同步数据时,都会有一个重新推送的按钮,不管是重新推送还是重新拉去。这些动作都是失败后,再次操作,直到成功。这种设计的原因是,程序的运行,不知道什么原因会失败。网络、数据库、服务器,B服务BUG都会导致这段代码执行失败,从而无法保证该功能准确执…

爪哇,我初窥门径

2017年3月,我大二下学期了。 虽说一直在学习,持续在解决学习中遇到的问题,但迷茫依旧。 对着黑框编程,还是不知道Java在现实工作中是用来干什么的。 说实话,真的挺枯燥无趣的。逐渐,我开始意识到,持续搞这些基础,是没有意义的。 我在网上看他们讨论的Java问题,很多我都…

使用Kimi+Markmap总结网页内容生成思维导图

AI可以帮助我们更高效地阅读文章进行提炼总结,像上图这张思维导图,就是使用Kimi进行内容提炼,再使用markmap生成思维导图,下面讲解下详细实现步骤: 一、工具准备 Kimi,将文章或一篇网页投给他,让他进行核心观点的提炼并生成我们想要的特定格式 markmap 一个可以将markdo…

报错:Web server failed to start. Port 8080 was already in use 如何解决

Spring Boot 内部集成了 Tomcat,不需要人为手动配置 Tomcat,开发者只需要关注具体的业务逻辑即可。报错:Web server failed to start. Port 8080 was already in use打开win+r快捷键弹出控制台,执行 netstat -ano|findstr "8080" --获取到8544 --若想查看8544进…

报错:Web server failed to start. Port 8080 was already in use端口号

Spring Boot 内部集成了 Tomcat,不需要人为手动配置 Tomcat,开发者只需要关注具体的业务逻辑即可。报错:Web server failed to start. Port 8080 was already in use打开win+r快捷键弹出控制台,执行 netstat -ano|findstr "8080" --获取到8544 --若想查看8544进…

【每周例题】 C++ 力扣 优势洗牌

优势洗牌 题目 优势洗牌 题目分析 1.采用双指针方法进行匹配 2.依照题目所说,采用索引,首先需要填充索引,然后对索引进行升序排序。 2.使用双指针进行匹配如果nums1[idx1[i]](即当前nums1中的元素)大于nums2[idx2[left]](即nums2中的当前最小元素),则将nums1[idx1[i]]赋…

设计程序,要求程序可以加入到一个多播组中并等待服务器发送数据包,并且程序还需要具有发送功能,如果收到数据包则把消息内容输出到终端

目录题目分析代码结果 题目小组实现,小组中的每位成员都需要设计程序,要求程序可以加入到一个多播组中并等待服务器发送数据包,并且程序还需要具有发送功能,如果收到数据包则把消息内容输出到终端, 消息内容格式 [消息来源IP 消息时间 ] : 消息内容 分析1.发送端需设置套…

Redisson 限流器源码分析

Redisson 限流器源码分析 对上篇文章网友评论给出问题进行解答:redis 的key 是否会过期 可以先阅读上篇文章: redis + AOP + 自定义注解实现接口限流 - 古渡蓝按 - 博客园 (cnblogs.com) 注解AOP 代码部分提取// 调用Reids工具类的rateLimiter 方法long number = RedisUtils.…