欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

基于“全表对照方式”的增量数据抽取

更新时间: 2014-01-05 02:29:04 责任编辑: Author_N1

 

基于“全表对比方式”的增量数据抽取
典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。
这是全表对比方式的原理。
现在遇到问题如下
//获得源表主键字符串(每个主键之间加字符‘&’),getKeystr是自己定义的方法
String tableid = getKeystr(orgtable);
//这是从源表中选出新增数据,orgtable是源表,tempid是临时表主键(即源表主键字符串),temptable是临时表(包含tempid和MD5校验码)
String sqlstr = "select * from "+orgtable+" where "+tableid+" not in(select tempid from "+temptable+")";
现在遇到的问题是,tableid是主键字符串,而源表orgtable中并不存在这个字段,该如何做才能 选出 在源表而不在临时表的记录?
--参考方法--
这么做效率也未免太低了吧

oracle的话,可以用物化视图的方式解决,SQL server不太清楚
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:29:04
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10352/
本文WWW.DOC100.NET DOC100.NET版权所有。