联奕科技工程体系

 找回密码
 立即注册
查看: 240|回复: 0

【DTS】使用时间戳增量解决流水账类数据传输

[复制链接]

16

主题

20

帖子

5264

积分

论坛元老

Rank: 8Rank: 8

积分
5264
发表于 2021-6-1 17:49:15 | 显示全部楼层 |阅读模式
本帖最后由 cairongzhi 于 2021-9-1 09:00 编辑

应用场景:一般型的流水账数据,如图书借阅信息,一卡通流水,门禁刷卡记录等
注意事项:
1.必须拥有连续记录的时间字段,字段需要满足yyyy-MM-dd HH:mm:ss格式,若为其他类型的时间格式,请通过视图或SQL,转换为以上格式。
2.表中数据需满足只会一直增加,不会修改、新增、删除旧数据。
举例:如果在2021-06-01 00:00:00写入了一条数据,下次同步时间将会同步大于2021-06-01 00:00:00的数据,若在2021-06-02 01:00:00 写入了一条2021-05-30 00:00:00的数据,那么该数据将不会被写入目标表(删除、修改情况亦类似)
3.不能使用Sysdate as xxx 这种虚拟字段作为时间戳增量的条件,必须使用业务系统数据录入的时间!
4.若由增量对比模式修改为时间戳增量时,需要先清空目标表,进行初始化操作!

方式一
配置模式参考
开始——读取源表——写入目标表——结束



读取节点配置
增量读取模式选择是

配置读取节点参数
查询条件后面接日期时间字段>'${lastReadTime}'
例如示例中该表表示时间的字段为occurTime
那么后时间戳增量则写为occurTime>'${lastReadTime}'



写入节点配置
一般选择批量插入即可
如果数据有进行过SQL转换操作,建议选逐条或合并后批量




流程配置完成后运行即可。

PS:如果首次推送时,数据量比较大的情况下,建议先采用按时间分批处理写入。分批写入完成后,再配置增量读取即可!

方式二:

有时候会因数据库编码问题,或时间类型不同导致方式一不可用,或读取到的时间为0。
可参考如下方式
该配置方式依然采取增量对比方式进行




读目标表配置
可采用流水账时间字段
一般为消费时间、借阅时间、出入时间等
使用where xfsj>=sysdate-3(减去的日期时间可根据业务数据量进行限制)
注意:若日期时间格式不同,需要先进行to_char转换
日期格式为yyyy-mm-dd hh24:mm:ss



读源表
类似的使用where xfsj>=sysdate-3(减去的日期时间可根据业务数据量进行限制)
注意:若日期时间格式不同,需要先进行to_char转换
日期格式为yyyy-mm-dd hh24:mm:ss



增量节点配置
必须选择不计算
若使用计算并删除会导致旧数据被清空

增量运算字段与普通的流程配置一样


写入模式可使用合并后批量。或者批量插入!




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|ly-sky.com

GMT+8, 2025-12-17 23:46 , Processed in 0.099044 second(s), 20 queries .

快速回复 返回顶部 返回列表