[发明专利]基于Oracle CDC技术实现的变更数据抽取方法无效
| 申请号: | 200910018202.8 | 申请日: | 2009-08-25 |
| 公开(公告)号: | CN101645072A | 公开(公告)日: | 2010-02-10 |
| 发明(设计)人: | 皮开元;陈俊;周刚;舒琦 | 申请(专利权)人: | 山东中创软件商用中间件股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 济南舜源专利事务所有限公司 | 代理人: | 苗 峻 |
| 地址: | 250014山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 oracle cdc 技术 实现 变更 数据 抽取 方法 | ||
技术领域
本发明涉及一种基于Oracle CDC技术实现的变更数据抽取方法。
背景技术
在构建数据仓库的ETL过程中,变更数据的抽取是一个非常关键的环节.对变更数据抽取的解决方案,一般需要达到以下两点要求:
1.准确性,能够将业务表的变更数据按一定的频率准确的取到数据仓库中。
2.性能,不能对业务数据库、业务表造成太大的压力,不能影响现有业务系统的性能。
目前实现数据同步最常用的三种方式:
1.时间戳同步
使用业务表中某一字段做为判断新旧数据的依据,该字段可以是时间类型,也可以是int型。使用该种方式存在以下问题:
无法捕获对时间戳以前数据的delete和update操作,在数据准确性上受到了一定的限制,而实际业务中delete和update的操作还比较普遍;
要求业务系统的表必须有一个可以标识新旧数据的列,而某些表没有设置这种列。
2.全表扫描
使用数据仓库中的当前表与业务系统表进行对比,取得变化了的数据,使用全表扫描存在以下问题:
需要将业务系统中表全部转输,造成很高的网络负载;
需要对两版本的表进行全表扫描,性能代价非常高;
无法反映数据的历史状态,如无法捕捉库存的历史变化记录。
3.触发器
在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。
发明内容
本发明的目的就是针对上述的不足,提供了一种基于Oracle CDC技术实现的变更数据抽取方法。
本发明提供的基于Oracle CDC技术实现的变更数据抽取方法,包括如下步骤:
1)解析xml文件信息,获取配置信息;这些信息包括原表,快照表,目的表,字段等。用于后续程序中建表和发送目标等。
2)利用配置信息中username,tableDescriptions信息,使用oracle中的dbms_cdc_publish来创建一个变更表,用于捕获源表变更记录;可以使用标准SQL语句来创建这一个存储过程,通过这创建变更表,用来监控源表的变更,把源表中得每一次变更记录到变更表中。
3)利用dbms_cdc_publish创建订阅用户,且激活订阅用户;可以使用标准SQL语句来创建这一个存储过程,订阅用户是用来订阅变更变化的,当变更表中有数据变更信息后,订阅用户就能收到这个变更信息。
4)通过dbms_cdc_publish创建一个订阅窗口和订阅视图,以视图的形式来获取一个时间段的变更数据;可以使用标准SQL语句来创建这一个存储过程,订阅窗口和视图表示这一个时间段内订阅的变更表信息有哪些变化,并把这些变化数据通过程序提取出来。
5)当获取到变更数据以后,将变更数据转化成一个DataObject对象;获取数据库数据信息,将每一行数据进行解析,并打包放入DataObject对象中。进入等待发送队列中。
6)将Do对象发送到目标服务,当目标服务处理完成返回结果后进入第7)步。
7)数据传送成功后删除订阅视图与窗口,表示这一次变更数据抽取过程完毕;可以使用标准SQL语句来创建这一个存储过程。删除这一次订阅视图与窗口后。表示这一个时间段内的同步完成。
实现上述的方法的装置,包括:
一解析单元,用于解析xml配置文件信息,获取配置信息;
一变更表创建单元,用于利用配置信息中数据库连接权限以及数据库表单描述信息,使用oracle中的dbms_cdc_publish来创建一个变更表;
一订阅用户创建单元,用于使用dbms_cdc_publish创建订阅用户,并且激活订阅;
一订阅视图创建单元,用于创建一个订阅窗口和订阅视图,以视图的形式来获取一个时间段的变更数据;
一数据获取单元,用于将变更数据转化成一个DataObject对象;
一传送与判断单元,用于将Do对象发送到目标服务;
一删除订阅单元,用于在数据传送成功后删除订阅视图与窗口。
本发明具有如下优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东中创软件商用中间件股份有限公司,未经山东中创软件商用中间件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910018202.8/2.html,转载请声明来源钻瓜专利网。





