CN101645072A - 基于Oracle CDC技术实现的变更数据抽取方法 - Google Patents
基于Oracle CDC技术实现的变更数据抽取方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于Oracle CDC技术实现的变更数据抽取装置,包括一解析单元,一变更表创建单元,一订阅用户创建单元,一订阅视图创建单元,一数据获取单元,一传送与判断单元,一删除订阅单元,本发明无需编程,能高性能的通信,确保信息直接在源和目标之间最有效、最快速的路径中流通。
Description
技术领域
本发明涉及一种基于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对象发送到目标服务;
一删除订阅单元,用于在数据传送成功后删除订阅视图与窗口。
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)
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的数据模型动态信息感知监测方法及装置 |
-
2009
- 2009-08-25 CN CN200910018202A patent/CN101645072A/zh active Pending
Cited By (10)
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 |