从数据库中增量抽取数据的几种方案

  1. 云栖社区>
  2. 博客>
  3. 正文

从数据库中增量抽取数据的几种方案

小桥河西 2013-09-13 10:29:02 浏览346
展开阅读全文

最近调查了一下从数据库中增量抽取数据的几种方案。下面是一个比较粗的结论。

方法1:基于时间戳
以某个时间字段为条件,检出新增数据。
适用条件:表中有时间字段,并且是事件型的数据,不需要反映数据的删除和更新。
对性能的影响:抽取时增加系统负载

方法2:触发器
数据更新时通过触发器拷贝数据。
适用条件:预先定义触发器
对性能的影响:对更新操作的性能有一定影响

方法3:从redo日志抽取
Oracle可以通过LogMiner从日志中分析出SQL语句,再还原。SQL Server也有类似解决方法。
适用条件:系统运行于归档模式下,并做好相关配置
对性能的影响:总体上对性能的比较小,但部署比较复杂

方法4:全表对比
对性能的影响:比较大,不适用数据量很大的情况


对方法1和方法4可采用以下对策减小性能影响:
1)按时间对数据分区
2)通过备份恢复,在线日志恢复等手段建立备机,在备机上抽取数据。


总结:
在性能影响可以接受的情况下,建议采用方法1或2,比较简单。否则采用方法3。
另外,也可以使用专用抽取工具,如SSIS,ODI等。
专用工具也是基于前几种方法实现的,比如ODI提供基于触发器和基于redo日志抽取方案。
但专用工具比起自己开发,能更快部署。

网友评论

登录后评论
0/500
评论
小桥河西
+ 关注