基于ORACLECDC技术实现的变更数据抽取方法.pdf

上传人:Y0****01 文档编号:973032 上传时间:2018-03-22 格式:PDF 页数:7 大小:332.93KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910018202.8

申请日:

2009.08.25

公开号:

CN101645072A

公开日:

2010.02.10

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30公开日:20100210|||实质审查的生效IPC(主分类):G06F 17/30申请日:20090825|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

山东中创软件商用中间件股份有限公司

发明人:

皮开元; 陈 俊; 周 刚; 舒 琦

地址:

250014山东省济南市千佛山东路41-1号

优先权:

专利代理机构:

济南舜源专利事务所有限公司

代理人:

苗 峻

PDF下载: PDF下载
内容摘要

一种基于Oracle CDC技术实现的变更数据抽取装置,包括一解析单元,一变更表创建单元,一订阅用户创建单元,一订阅视图创建单元,一数据获取单元,一传送与判断单元,一删除订阅单元,本发明无需编程,能高性能的通信,确保信息直接在源和目标之间最有效、最快速的路径中流通。

权利要求书

1: 一种基于Oracle CDC技术实现的变更数据抽取方法,其特征在 于包括如下步骤: 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创建订阅用 户,并且激活订阅; 一订阅视图创建单元,用于创建一个订阅窗口和订阅视图,以视 图的形式来获取一个时间段的变更数据; 一数据获取单元,用于将变更数据转化成一个DataObject对象; 一传送与判断单元,用于将Do对象发送到目标服务; 一删除订阅单元,用于在数据传送成功后删除订阅视图与窗口。

说明书


基于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对象发送到目标服务;

    一删除订阅单元,用于在数据传送成功后删除订阅视图与窗口。

    本发明具有如下优点:

    1.无需编程,现有编程人员可以将时间花费在更有价值的项目上。公司可以利用遗留系统并跨所有支持的平台整合数据,无需对现有环境进行更改。可以轻松地适应计算环境中未来的变更,以使您的投资能适应未来。

    2.高性能通信,支持高效的数据传输,包括大对象二进制(LOB)文件,如多媒体音频和视频数据。

    3.确保信息直接在源和目标系统之间最有效、最快速的路径中流动。

    【附图说明】

    图1是本发明实施例的总流程图;

    图2是本发明实施例的循环处理数据子流程图。

    【具体实施方式】

    一种基于Oracle CDC技术实现的变更数据抽取方法,具体来说是这样的:

    CDCSource作为现有技术直接面对用户,提供一个完整的UI页面,按照提示配置属性,打包后成功部署到服务器上。在UI页面中,选择CDCSource构件,可以通过界面连接属性,直接添加配置数据库地址,用户名,密码,源表名,快照表名,目的表名,以及所要监控变更的字段列表等信息,这是容易实现的。

    如图1所示,本方法开始于步骤101,解析xbean.xml文件信息,获取配置信息;这些信息包括原表,快照表,目地表,字段等。用于后续程序中建表和发送目标等。

    然后进入步骤102,获取用户handle,subhandle是ORACLE中订阅ID,当一个源表被发布后,订阅用户创建订阅时生成一个subhandle,用来记录订阅信息。

    再进入步骤103,返回Number类型数据,如果返回失败,则返回步骤102;如果成功,则进入下一步骤。

    步骤104,利用dbms_cdc_publish创建订阅用户,然后进入步骤105激活订阅用户;使用标准SQL语句来创建这一个存储过程。订阅用户是用来订阅变更变化的。当变更表中有数据变更信息后,订阅用户就能收到这个变更信息。

    然后进入步骤106,循环处理数据子流程,流程结束。

    如图2所示,循环处理子流程是这样的:

    首先开始于步骤201,创建订阅用户。

    然后进入步骤202通过dbms_cdc_publish创建一个订阅视图,以视图的形式来获取一个时间段的变更数据;使用标准SQL语句来创建这一个存储过程。订阅窗口和视图表示这一个时间段内订阅的变更表信息有哪些变化,并把这些变化数据通过程序提取出来。

    再进入步骤203,获取到变更数据,将变更数据转化成一个DataObject对象;获取数据库数据信息,将每一行数据进行解析,并打包放入DataObject对象中。进入等待发送队列中。

    然后进入步骤204,将Do对象发送到目标服务。

    进入步骤205,判断目标服务返回值,如果失败,进入步骤2051处理异常,然后返回步骤204;如果成功,进入下一步。

    最后进入步骤206和207,数据传送成功后删除订阅视图与窗口,表示这一次变更数据抽取过程完毕。使用标准SQL语句来创建这一个存储过程。删除这一次订阅视图与窗口后。表示这一个时间段内的同步完成。

    然后返回步骤201,开始下一循环。

基于ORACLECDC技术实现的变更数据抽取方法.pdf_第1页
第1页 / 共7页
基于ORACLECDC技术实现的变更数据抽取方法.pdf_第2页
第2页 / 共7页
基于ORACLECDC技术实现的变更数据抽取方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《基于ORACLECDC技术实现的变更数据抽取方法.pdf》由会员分享,可在线阅读,更多相关《基于ORACLECDC技术实现的变更数据抽取方法.pdf(7页珍藏版)》请在专利查询网上搜索。

一种基于Oracle CDC技术实现的变更数据抽取装置,包括一解析单元,一变更表创建单元,一订阅用户创建单元,一订阅视图创建单元,一数据获取单元,一传送与判断单元,一删除订阅单元,本发明无需编程,能高性能的通信,确保信息直接在源和目标之间最有效、最快速的路径中流通。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1