咨询各位高人.
目前状况是 我单位每天都要产生 一个单品资料的基础表,
是所有单品,大约5万条数据
,但是每天这个表都有多少改变,比如:有些单品更新,有一些删除掉
了.这个表每天都是通过unix上系统上下载下来.
这个表是个基础表,每天所有的交易,都是在这个表基础上的.
我已经把它导入到oracle中,但是,如果每天都在oracle中全表导入一个的话,数据量有点大了.
我想问,能不能做到这样:
每天,增量导入(增加的数据导入oralce,删除了的数据就把oracle中的
对应表中单品删除,有更新的就更新).然后做了修改的数据建立一个备份的表,只存取有改动数据.
如果用vb写程序是可以做到,但是确实太麻烦了.
oracle数据库有没有这种etl的功能或者方法?
merge into 可以实现更新和增量插入,但是,删除了的数据怎么办呢?
如果将来,要查询历史销售的时候,需要历史的单品资料做关联.
请问有没有好的解决办法呢?
请达人教导一下.或者大家有什么想法可以讨论下.
oracle里的表和基表比较,有更新的就插入另一个新表做备份,没有的就从基表中删除,然后在再MERGE。
这样有点问题:每天备份的数据都在一个表里还是每天新创建一个表?要是都在一个表里会不会出现主键重复而备份不了?
我感觉materialized view可以。不知道你用过没有?
目前有几种思路:
1.用2楼的思路,先比较,然后把删除了的数据备份到其他表,然后,再把每天的基本表和前天的基本表对照,然后merge into...我也有点倾向这么做,但是问题是,9i不支持merge into 的删除,只有10g才支持.-__-||
2.materialized view .但是没有实际做过,而且以前都是看的英文文档,有点痛苦.准备重新去看下再设计.
3.如5楼说的触发器..但是,现在情况是,前一天基本表和当天的基本表的对照,触发器不好解决吧?
比如.a 表已经存在oralce了,今天产生了一个a1表,来源是unix主机的文本.a1表中有95%和a表一样.实际都是基本表,只是日期不同.5楼兄弟有什么好的触发器机制吗?
4.timestamp的机制.(我感觉反而有点麻烦)
5.oracle cdc包来抽取(更麻烦)
我先看看先实现1和2方法吧.
大家有好的想法,具体情况,都可以拿出来讨论下...毕竟是生产中的实际例子,比看书强啊
咨询各位高人.
目前状况是 我单位每天都要产生 一个单品资料的基础表,
是所有单品,大约5万条数据
,但是每天这个表都有多少改变,比如:有些单品更新,有一些删除掉
了.这个表每天都是通过unix上系统上下载下来.
这个表是个基础表,每天所有的交易,都是在这个表基础上的.
我已经把它导入到oracle中,但是,如果每天都在oracle中全表导入一个的话,数据量有点大了.
我想问,能不能做到这样:
每天,增量导入(增加的数据导入oralce,删除了的数据就把oracle中的
对应表中单品删除,有更新的就更新).然后做了修改的数据建立一个备份的表,只存取有改动数据.
如果用vb写程序是可以做到,但是确实太麻烦了.
oracle数据库有没有这种etl的功能或者方法?
merge into 可以实现更新和增量插入,但是,删除了的数据怎么办呢?
如果将来,要查询历史销售的时候,需要历史的单品资料做关联.
请问有没有好的解决办法呢?
请达人教导一下.或者大家有什么想法可以讨论下.
oracle里的表和基表比较,有更新的就插入另一个新表做备份,没有的就从基表中删除,然后在再MERGE。
这样有点问题:每天备份的数据都在一个表里还是每天新创建一个表?要是都在一个表里会不会出现主键重复而备份不了?
我感觉materialized view可以。不知道你用过没有?
目前有几种思路:
1.用2楼的思路,先比较,然后把删除了的数据备份到其他表,然后,再把每天的基本表和前天的基本表对照,然后merge into...我也有点倾向这么做,但是问题是,9i不支持merge into 的删除,只有10g才支持.-__-||
2.materialized view .但是没有实际做过,而且以前都是看的英文文档,有点痛苦.准备重新去看下再设计.
3.如5楼说的触发器..但是,现在情况是,前一天基本表和当天的基本表的对照,触发器不好解决吧?
比如.a 表已经存在oralce了,今天产生了一个a1表,来源是unix主机的文本.a1表中有95%和a表一样.实际都是基本表,只是日期不同.5楼兄弟有什么好的触发器机制吗?
4.timestamp的机制.(我感觉反而有点麻烦)
5.oracle cdc包来抽取(更麻烦)
我先看看先实现1和2方法吧.
大家有好的想法,具体情况,都可以拿出来讨论下...毕竟是生产中的实际例子,比看书强啊
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19622/viewspace-890211/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19622/viewspace-890211/