Orcal ETL 增量抽取--ORA_ROWSCN伪列

Orcal ETL 增量抽取–ORA_ROWSCN伪列

1、背景

项目中需要进行orcal数据增量抽取,然而源表无主键,无时间戳,无唯一键,别人的业务系统又无法动。最开始想通过解析日志以及v$sql动态视图获取所有sql执行,搞了好久,太麻烦了。后来发现了ORA_ROWSCN伪列,事情就很简单了。分享出来,万一有人搜索到了,也算是一点点帮助。

2、ORA_ROWSCN使用

大致就是orcal为表中的每行数据维护了一个scn,每次更改数据,scn也会更改。通过ora_rowscn我们就可以做到insert、update方式的增量更新。delete不行,数据行被删除了,自然scn也不存在。

SQL语句:

–查迅ora_rowscn

select ora_rowscn from 表

– 根据ora_rowscn查询某个scn后的增量数据

select * from 表 where ora_rowscn>6081999049678

– 将时间戳转换为scn查询,时间戳比scn更直观,

select * from 表 where ora_rowscn>timestamp_to_scn(to_date(‘2020-08-10 09:00:00’,‘yyyy-mm-dd hh24:mi:ss’))

思路:

建一张中间表,存放需要增量抽取的源表表名和每次抽取的scn或timestamp,两个都可以。每次增量抽取根据ora_rowscn字段获取增量数据,进行抽取。抽取成功后更新对应表的scn或时间戳。

3、官网介绍

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值