CN101645072A - 基于Oracle CDC技术实现的变更数据抽取方法 - Google Patents

基于Oracle CDC技术实现的变更数据抽取方法 Download PDF

Info

Publication number
CN101645072A
CN101645072A CN200910018202A CN200910018202A CN101645072A CN 101645072 A CN101645072 A CN 101645072A CN 200910018202 A CN200910018202 A CN 200910018202A CN 200910018202 A CN200910018202 A CN 200910018202A CN 101645072 A CN101645072 A CN 101645072A
Authority
CN
China
Prior art keywords
cdc
data
view
create
oracle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910018202A
Other languages
English (en)
Inventor
皮开元
陈俊
周刚
舒琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CVIC Software Engineering Co Ltd
Original Assignee
CVIC Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CVIC Software Engineering Co Ltd filed Critical CVIC Software Engineering Co Ltd
Priority to CN200910018202A priority Critical patent/CN101645072A/zh
Publication of CN101645072A publication Critical patent/CN101645072A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

基于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,开始下一循环。

Claims (2)

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对象发送到目标服务;
一删除订阅单元,用于在数据传送成功后删除订阅视图与窗口。
CN200910018202A 2009-08-25 2009-08-25 基于Oracle CDC技术实现的变更数据抽取方法 Pending CN101645072A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910018202A CN101645072A (zh) 2009-08-25 2009-08-25 基于Oracle CDC技术实现的变更数据抽取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910018202A CN101645072A (zh) 2009-08-25 2009-08-25 基于Oracle CDC技术实现的变更数据抽取方法

Publications (1)

Publication Number Publication Date
CN101645072A true CN101645072A (zh) 2010-02-10

Family

ID=41656960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910018202A Pending CN101645072A (zh) 2009-08-25 2009-08-25 基于Oracle CDC技术实现的变更数据抽取方法

Country Status (1)

Country Link
CN (1) CN101645072A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929946A (zh) * 2012-09-27 2013-02-13 山东中创软件工程股份有限公司 一种数据同步方法、装置及系统
CN103617585A (zh) * 2013-11-06 2014-03-05 梧州学院 一种基于共享数据平台的数据处理方法
CN105956084A (zh) * 2016-04-29 2016-09-21 浪潮(北京)电子信息产业有限公司 一种变更数据抽取方法及装置
CN105975502A (zh) * 2016-04-25 2016-09-28 南京优测信息科技有限公司 一种基于cdc方式实现增量抽取数据的方法
CN106383906A (zh) * 2016-09-30 2017-02-08 杭州数梦工场科技有限公司 优化Oracle数据库数据增量捕捉的方法和系统
CN107302450A (zh) * 2017-06-13 2017-10-27 国网冀北电力有限公司信息通信分公司 一种数据采集任务变更方法及装置
CN112579603A (zh) * 2020-12-24 2021-03-30 北京志翔能源技术有限公司 基于cdc的数据模型动态信息感知监测方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929946A (zh) * 2012-09-27 2013-02-13 山东中创软件工程股份有限公司 一种数据同步方法、装置及系统
CN103617585A (zh) * 2013-11-06 2014-03-05 梧州学院 一种基于共享数据平台的数据处理方法
CN105975502A (zh) * 2016-04-25 2016-09-28 南京优测信息科技有限公司 一种基于cdc方式实现增量抽取数据的方法
CN105956084A (zh) * 2016-04-29 2016-09-21 浪潮(北京)电子信息产业有限公司 一种变更数据抽取方法及装置
CN106383906A (zh) * 2016-09-30 2017-02-08 杭州数梦工场科技有限公司 优化Oracle数据库数据增量捕捉的方法和系统
CN106383906B (zh) * 2016-09-30 2020-12-11 杭州数梦工场科技有限公司 优化Oracle数据库数据增量捕捉的方法和系统
CN107302450A (zh) * 2017-06-13 2017-10-27 国网冀北电力有限公司信息通信分公司 一种数据采集任务变更方法及装置
CN107302450B (zh) * 2017-06-13 2021-05-11 国网冀北电力有限公司信息通信分公司 一种数据采集任务变更方法及装置
CN112579603A (zh) * 2020-12-24 2021-03-30 北京志翔能源技术有限公司 基于cdc的数据模型动态信息感知监测方法及装置
CN112579603B (zh) * 2020-12-24 2023-11-17 北京志翔信息技术有限公司 基于cdc的数据模型动态信息感知监测方法及装置

Similar Documents

Publication Publication Date Title
CN107943841B (zh) 流式数据处理方法、系统和计算机可读存储介质
CN101645072A (zh) 基于Oracle CDC技术实现的变更数据抽取方法
CN100587693C (zh) 从多个数据源获取数据的方法及系统
CN104750469B (zh) 源代码统计分析方法和系统
CN104935658B (zh) 一种银行任务分配方法及装置
CN103699580A (zh) 数据库同步方法及装置
CN110019754B (zh) 一种知识库的建立方法、装置及设备
CN105447046A (zh) 一种分布式系统数据一致性处理方法、装置和系统
CN102654874A (zh) 单据数据管理方法及系统
GB2460532A (en) Metadata driven data capture for a temporal data warehouse
CN105791401B (zh) 客户端与服务端在网与离网状态下数据交互方法、系统
CN103078892A (zh) 短消息内容智能识别的方法、客户端、服务器及系统
CN106777308A (zh) 民航订单信息的同步方法及装置
US10747588B2 (en) Method for updating instance-based message maps using metadata
CN104484958A (zh) 一种智能快递柜的取件方法和取件系统
CN107784068A (zh) 数据变化的获取方法、装置、存储介质、处理器及服务端
CN102222112B (zh) 资源管理装置和资源管理方法
CN103401933A (zh) 一种资源信息和对应资源文件批量上传的方法和系统
CN101645073A (zh) 一种将已有数据库文件导入嵌入式数据库的方法
CN102456004A (zh) 一种页面数据查询控制方法及系统
US20160112572A1 (en) Conference call management system
CN110602049A (zh) 数据传输方法、服务器及存储介质
CN105956084A (zh) 一种变更数据抽取方法及装置
CN107784588A (zh) 保险用户信息合并方法和装置
CN111242595A (zh) Erp平台与支付平台间信息交换方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20100210