基于OracleCDC技术实现的变更数据抽取方法

文档序号:6481196阅读:842来源:国知局

专利名称::基于OracleCDC技术实现的变更数据抽取方法
技术领域
:本发明涉及一种基于OracleCDC技术实现的变更数据抽取方法。
背景技术
:在构建数据仓库的ETL过程中,变更数据的抽取是一个非常关键的环节.对变更数据抽取的解决方案,一般需要达到以下两点要求1.准确性,能够将业务表的变更数据按一定的频率准确的取到数据仓库中。2.性能,不能对业务数据库、业务表造成太大的压力,不能影响现有业务系统的性能。目前实现数据同步最常用的三种方式1.时间戳同步使用业务表中某一字段做为判断新旧数据的依据,该字段可以是时间类型,也可以是int型。使用该种方式存在以下问题无法捕获对时间戳以前数据的delete和update才喿作,在数据准确性上受到了一定的限制,而实际业务中delete和update的才喿作还比较普遍;要求业务系统的表必须有一个可以标识新旧数据的列,而某些表没有设置这种列。2.全表扫描使用数据仓库中的当前表与业务系统表进行对比,取得变化了的数据,使用全表扫描存在以下问题需要将业务系统中表全部转输,造成很高的网络负载;需要对两版本的表进行全表扫描,性能代价非常高;无法反映数据的历史状态,如无法捕捉库存的历史变化记录。3.触发器在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。
发明内容本发明的目的就是针对上述的不足,提供了一种基于OracleCDC技术实现的变更数据抽取方法。本发明提供的基于OracleCDC技术实现的变更数据抽取方法,包括如下步骤1)解析xml文件信息,获取配置信息;这些信息包括原表,快照表,目的表,字段等。用于后续程序中建表和发送目标等。2)利用酉己置4言息中username,tableDescriptions4言息,4吏用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创建订阅用户,并且激活订阅;一订阅视图创建单元,用于创建一个订阅窗口和订阅S见图,以视图的形式来获取一个时间段的变更数据;一数据获取单元,用于将变更数据转化成一个DataObject对象;一传送与判断单元,用于将Do对象发送到目标服务;一删除订阅单元,用于在数据传送成功后删除订阅-现图与窗口。本发明具有如下优点1.无需编程,现有编程人员可以将时间花费在更有价值的项目上。公司可以利用遗留系统并跨所有支持的平台整合数据,无需对现有环境进行更改。可以轻松地适应计算环境中未来的变更,以使您的投资能适应未来。2.高性能通信,支持高效的数据传输,包括大对象二进制(L0B)文件,如多々某体音频和一见频数据。3.确保信息直接在源和目标系统之间最有效、最快速的;洛径中流动。图l是本发明实施例的总流程图;图2是本发明实施例的循环处理数据子流程图。具体实施例方式一种基于OracleCDC技术实现的变更数据抽取方法,具体来说是这样的CDCSource作为现有技术直接面对用户,提供一个完整的UI页面,按照提示配置属性,打包后成功部署到服务器上。在UI页面中,选择CDCSource构件,可以通过界面连接属性,直接添加配置数据库地址,用户名,密码,源表名,快照表名,目的表名,以及所要监控变更的字段列表等信息,这是容易实现的。如图1所示,本方法开始于步骤101,解析xbean.xml文件信息,获取配置信息;这些信息包括原表,快照表,目的表,字段等。用于后续程序中建表和发送目标等。然后进入步骤102,获取用户handle,subhandle是ORACLE中订阅ID,当一个源表被发布后,订阅用户创建订阅时生成一个subhandle,用来记录订阅4言息。再进入步骤103,返回Number类型数据,如果返回失败,则返回步骤102;如果成功,则进入下一步骤。步骤利用dbms—cdc—publish创建订阅用户,然后进入步骤105激活订阅用户;使用标准SQL语句来创建这一个存4诸过程。订阅用户是用来订阅变更变化的。当变更表中有数据变更信息后,订阅用户就能收到这个变更信息。然后进入步骤1G6,循环处理数据子流程,流程结束。如图2所示,循环处理子流程是这样的首先开始于步骤201,创建订阅用户。然后进入步骤202通过dbms—cdc-publish创建一个订阅一见图,以视图的形式来获取一个时间段的变更数据;使用标准SQL语句来创建这一个存储过程。订阅窗口和视图表示这一个时间^敬内订阅的变更表信息有哪些变化,并把这些变化数据通过程序提取出来。再进入步骤203,获取到变更数据,将变更数据转化成一个DataObject对象;获取数据库数据信息,将每一行数据进行解析,并打包放入DataObject对象中。进入等待发送队列中。然后进入步骤204,将Do对象发送到目标服务。进入步骤205,判断目标服务返回值,如果失败,进入步骤2051处理异常,然后返回步骤204;如果成功,进入下一步。最后进入步骤206和207,数据传送成功后删除订阅视图与窗口,表示这一次变更数据抽取过程完毕。使用标准SQL语句来创建这一个存储过程。删除这一次订阅视图与窗口后。表示这一个时间段内的同步完成。然后返回步骤201,开始下一循环。权利要求1.一种基于OracleCDC技术实现的变更数据抽取方法,其特征在于包括如下步骤1)解析xml文件信息,获取配置信息;2)利用配置信息中username,tableDescriptions信息,使用oracle中的dbms_cdc_publish来创建一个变更表,用于捕获源表变更记录;3)利用dbms_cdc_publish创建订阅用户,且激活订阅用户;4)通过dbms_cdc_publish创建一个订阅窗口和订阅视图,以视图的形式来获取一个时间段的变更数据;5)当获取到变更数据以后,将变更数据转化成一个DataObject对象;6)将Do对象发送到目标服务,当目标服务处理完成返回结果后进入第7)步;7)数据传送成功后删除订阅视图与窗口,表示这一次变更数据抽取过程完毕。2.实现权利要求所述的方法的装置,其特征在于包括一解析单元,用于解析xml配置文件信息,获取配置信息;一变更表创建单元,用于利用配置信息中数据库连接权限以及数据库表单描述信息,使用oracle中的dbms-cdc—publish来创建一个变更表;一订阅用户创建单元,用于使用dbms-cdc-publish创建订阅用户,并iU敫活订阅;一订阅:现图创建单元,用于创建一个订阅窗口和订阅—见图,以i见图的形式来获取一个时间段的变更数据;一数据获取单元,用于将变更数据转化成一个DataObject对象;一传送与判断单元,用于将Do对象发送到目标服务;一删除订阅单元,用于在数据传送成功后删除订阅-現图与窗口。全文摘要一种基于OracleCDC技术实现的变更数据抽取装置,包括一解析单元,一变更表创建单元,一订阅用户创建单元,一订阅视图创建单元,一数据获取单元,一传送与判断单元,一删除订阅单元,本发明无需编程,能高性能的通信,确保信息直接在源和目标之间最有效、最快速的路径中流通。文档编号G06F17/30GK101645072SQ20091001820公开日2010年2月10日申请日期2009年8月25日优先权日2009年8月25日发明者刚周,皮开元,琦舒,俊陈申请人:山东中创软件商用中间件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1