本次课程的逻辑是同步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表。