1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用Kettle实现数据实时增量同步

使用Kettle实现数据实时增量同步

时间:2022-12-06 06:02:52

相关推荐

使用Kettle实现数据实时增量同步

1. 步骤以及思路:

通过中间表记录每次更新的时间戳,在下一个同步周期时,通过这个时间戳同步该时间戳以后的增量数据。这是时间戳增量同步。源数据表:CREATE TABLE `im_message` (`id` int(11) NOT NULL AUTO_INCREMENT,`sender` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '消息发送者:SYSTEM',`send_time` datetime(6) NOT NULL,`receiver` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '消息接受者',`content` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '消息内容',`is_read` tinyint(4) NOT NULL COMMENT '消息是否被读取:0-未读;非0-已读',`read_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id_UNIQUE` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='消息表'作业流程1. 开始组件2. 建时间戳中间表3. 获取中间表的时间戳,并设置为全局变量4. 删除目标表中时间戳及时间戳以后的数据5. 抽取两个数据表的时间戳及时间戳以后的数据进行比对,并根据比对结果进行删除、新增或修改操作6. 更新时间戳创建作业和DB连接4.1 建时间戳中间表CREATE TABLE IF NOT EXISTS etl_temp(id int primary key,time_stamp timestamp);INSERT IGNORE INTO etl_temp (id,time_stamp) VALUES (1,'-05-22 00:00:00');4.2 获取时间戳并设为变量select date_format(time_stamp , '%Y-%m-%d %H:%i:%s') time_stamp from etl_temp where id='1'4.3 删除目标表中时间戳及时间戳以后的数据delete from im_message where send_time>='${TIME_STAMP}'4.4 抽取、比对和更新数据原始表输入:SELECTid, sender, send_time, receiver, content, is_read, read_timeFROM im_messagewhere send_time>= date_sub(str_to_date('${TIME_STAMP}','%Y-%m-%d %H:%i:%s'), interval ${ROLL_BACK_DAYS} day);目标表输入SELECTid, sender, send_time, receiver, content, is_read, read_timeFROM im_messagewhere send_time>= date_sub(str_to_date('${TIME_STAMP}','%Y-%m-%d %H:%i:%s'), interval ${ROLL_BACK_DAYS} day);比对记录4.5 更新时间戳set @new_etl_start_time_stamp = (SELECT SEND_TIME FROM im_message ORDER BY SEND_TIME DESC LIMIT 1);update etl_temp set time_stamp=@new_etl_start_time_stamp where id='1';新数据源 原始表 database0 im_message旧数据源 目标表 database1 im_message etl_tempINSERT INTO `im_message` VALUES (201,'wuzhan','-05-25 03:52:47.00','wenbo','用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据用户kettle的测试数据',0,NULL)

2.参考文档:

使用Kettle实现数据实时增量同步

3. linux下kettle定时任务配置

1. /weixin_39905226/article/details/111849083

2. /qq_33375499/article/details/110952921

3. /yuezc/p/12101089.html

4. /weixin_40479337/article/details/106060594

5. /kjxy/articles/13607844.html

6. /m0_37618809/article/details/81015492 该文献评论亮了

kettle问题解决:

wget ftp:///mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/matthewdva:/build:/EPEL:/el7/RHEL_7/x86_64/webkitgtk-2.4.9-1.el7.x86_64.rpm

然后 yum install webkitgtk-2.4.9-1.el7.x86_64.rpm 搞定,收工

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。