CN105975502A - 一种基于cdc方式实现增量抽取数据的方法 - Google Patents
一种基于cdc方式实现增量抽取数据的方法 Download PDFInfo
- Publication number
- CN105975502A CN105975502A CN201610271011.2A CN201610271011A CN105975502A CN 105975502 A CN105975502 A CN 105975502A CN 201610271011 A CN201610271011 A CN 201610271011A CN 105975502 A CN105975502 A CN 105975502A
- Authority
- CN
- China
- Prior art keywords
- data
- extraction
- source
- cdc
- log buffer
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Abstract
本发明公开了一种基于CDC方式实现增量抽取数据的方法,属于计算机网络及数据库技术应用领域,提供供了一套完整可行的从源端数据库表到目标数据库表进行增量数据同步的解决方案;其次,使用了CDC技术来进行增量抽取,不需要修改源表数据结构,在提高系统运行性能的同时减少了数据传输量,减轻了网络负载。
Description
技术领域
本发明属于计算机网络及数据库技术应用领域,主要涉及Oracle数据库的增量抽取与数据同步方法,具体涉及到一种基于CDC方式实现增量抽取数据的方法。
背景技术
CDC(Change Data Capture改变数据捕获)是一种数据增量处理技术,它能够帮助你识别从上次提取之后发生变化的数据。利用CDC技术,在对源表进行INSERT、UPDATE或DELETE等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统。而传统的增量抽取技术,大致上有在原表中加时间戳与全表比对等方式,需要修改原表结构或者使用大量的算法实现,同时需要传输更多的数据,造成更高的网络负载,和直接与数据库引擎直接集成的CDC技术相比,性能上也有着一定的差距。
发明内容
有鉴于此,本发明提供了一种一种基于CDC方式实现增量抽取数据的方法,基于Oracle数据库的变化监控器CDC表进行增量数据抽取,主要包括数据操作日志缓存表的建立,设置以数据操作日志缓存表中的时间戳为依据来定期或者手工进行数据抽取,做相应的增量加工处理将抽取的变化数据提供给目标数据库,在源表和目标表端都会建立数据交换节点来完成相应的操作,由统一的数据交换平台进行管理;本发明提供的这种方法目的是实现高性能的自动抽取数据库中的增量数据来完成源表与目标表的数据同步,同时尽量减轻网络负载。
本发明的技术方案是:一种基于CDC方式实现增量抽取数据的方法,包括以下步骤:步骤一,根据业务场景在数据源与数据目标的数据库中创建相同表结构的数据库表,再在源端数据库中创建数据操作日志缓存表;
步骤二,创建动态SQL规则,实现从源端的CDC表中,将表中的[TIMESTAMP$]字段作为增量依据,抽取增量数据;
步骤三,创建数据整合服务,将数据操作日志缓存表数据按照增量依据及数据变化方式更新到目标中;数据交换平台的数据整合服务中数据源为数据操作日志缓存表,设定变化监控规则;
步骤四,将创建好的数据整合服务部署到源表所在的节点上,定时抽取数据;当数据库源表数据发送变化时,数据操作日志缓存表中自动存储源表变化数据;数据交换平台的定时任务开始时候会调用创建好的数据整合服务,数据操作日志缓存表中存储新的变化数据时,会读取配置文件中的时间信息作为依据将数据操作日志缓存表中的变化数据抽取出来,并存储本次操作时间来作为下次抽取的依据;
步骤五,将抽取出来的数据通过数据交换平台的批量数据总线传输到目标节点,目标节点将相应变化信息更新到目标表中并存储。
进一步地,所述步骤二中,抽取增量数据之后,还包括设定增量依据,且每次抽取的数据不重复。
进一步地,所述步骤三种设定变化监控规则即根据数据操作日志缓存表中的数据变化种类来区分数据操作种别,同时根据设定的动态SQL规则,指定依据字段及起始值。
进一步地,所述根据数据操作日志缓存表中的数据变化种类来区分数据操作种别中,所述数据变化种类包括I:插入,UU:修改旧值,UN:修改新值,D:删除。
进一步地,所述步骤四中的数据整合服务中,定时抽取数据的方式为设定定时运行任务定时抽取数据或按需手工触发运行来抽取数据。
进一步地,所述步骤一中所述数据操作日志缓存表的建立是在保证源表和目标表的结构相同,在源表端建立源表对应的数据操作日志缓存表,在数据操作日志缓存表中加入timestamp字段作为抽取的依据。
本发明的有益效果为:本发明的这种方法提供了一套完整可行的从源端数据库表到目标数据库表进行增量数据同步的解决方案;其次,使用了CDC技术来进行增量抽取,不需要修改源表数据结构,在提高了系统运行性能的同时减少了数据传输量,减轻了网络负载。
附图说明
图1是本发明的CDC方式实现增量抽取数据方法的组成架构图;
图2是本发明提供的这种方法在抽取增量数据时的界面示意图;
图3是本发明提供的这种方法在创建数据整合服务的界面示意图一;
图4是本发明提供的这种方法在创建数据整合服务的界面示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的CDC方式实现增量抽取数据方法的组成架构图,本发明提供的这种方法包括以下步骤:第一步,根据业务场景在数据源与数据目标的数据库中创建相同表结构的数据库表,再在源端数据库中创建数据操作日志缓存表。
数据源数据库表结构如下:
CREATE TABLE INCR_TRANS_A
(
SNUM int NOT NULL PRIMARY KEY,
DATA_1 varchar(255),
DATA_2 varchar(255),
DATA_3 varchar(255),
DATA_4 varchar(255),
DATA_5 varchar(255),
DATE_F date NOT NULL
创建数据库CDC监控表如下:
a.为数据源INCR_TRANS_A创建CHANGE_SET,源代码如下:
b.为数据源INCR_TRANS_A创建CHANGE_TABLE,源代码如下:
数据库源表(INCR_TRANS_A)、目标表(INCR_TRANS_B)、数据操作日志缓存表(INCR_TRANS_A_CDC)创建完成之后,当数据库源表(INCR_TRANS_A)表中数据发生变化后,Oracel数据库会将变化数据存储到数据操作日志缓存表(INCR_TRANS_A_CDC)中,同时CDC表中会记录数据变化时间和数据变化种类(I:插入,UU:修改旧值,UN:修改新值,D:删除)等信息。
第二步,如图2所示,创建动态SQL规则,实现从源端的CDC表中,将表中的[TIMESTAMP$]字段作为增量依据,抽取增量数据,设定增量依据之后,保证每次抽取的数据不重复抽取;变量表达式为:TIMESTAMP$>to_date(′#′,′yyyy-mm-dd hh24miss′)and TIMESTAMP$<=to_date(′#′,′yyyy-mm-dd hh24miss′)
第三步,如图3和图4所示,创建数据整合服务,将数据操作日志缓存表数据按照增量依据及数据变化方式更新到目标中。数据交换平台的数据整合服务中数据源为数据操作日志缓存表,设定变化监控规则,即根据数据操作日志缓存表中的数据变化种类(I:插入,UU:修改旧值,UN:修改新值,D:删除)来区分数据操作种别,同时根据设定的动态SQL规则,指定依据字段(timestamp)及起始值。
第四步,将创建好的数据整合服务部署到源表所在的节点上,并设定定时运行任务来定时抽取数据。当数据库源表(INCR_TRANS_A)数据发送变化时,数据操作日志缓存表中自动存储源表变化数据。数据交换平台的定时任务开始时候会调用创建好的数据整合服务,数据操作日志缓存表中存储新的变化数据时,会读取配置文件中的时间信息作为依据将数据操作日志缓存表中的变化数据抽取出来,并存储本次操作时间来作为下次抽取的依据。此步骤中的数据整合服务也可以按需手工触发运行来抽取数据。
第五步,将抽取出来的数据通过数据交换平台的批量数据总线传输到目标节点,目标节点将相应变化信息更新到目标表中并存储。
通过上述的操作,数据库源表数据能够及时、准确的同步更新到目标表中。
具体的说,本发明是基于Oracle数据库的变化监控器CDC表进行增量数据抽取,主要包括数据操作日志缓存表的建立,设置以数据操作日志缓存表中的时间戳为依据来定期或者手工进行数据抽取,做相应的增量加工处理将抽取的变化数据提供给目标数据库,在源表和目标表端都会建立数据交换节点来完成相应的操作,由统一的数据交换平台进行管理。
数据操作日志缓存表的建立是在保证源表和目标表的结构相同,在源表端建立源表对应的数据操作日志缓存表,在数据操作日志缓存表中加入timestamp字段作为抽取的依据。
在数据交换平台中建立抽取数据的服务,部署到源端的数据交换节点,手工或者定时触发该服务的时候,会从本地配置文件读入最后一次抽取的时间作为依据从数据操作日志缓存表中获取相应的信息并通过对应的增量加工处理得到变化数据,结束后会纪录本次抽取的时间作为下一次抽取的依据。
将源端数据交换节点抽取出来的增量数据通过数据交换平台的批量数据总线传输到目标表所在的数据交换节点,并完成数据的增量同步工作。
本发明属于计算机网络及数据库技术应用领域,提供供了一套完整可行的从源端数据库表到目标数据库表进行增量数据同步的解决方案;其次,使用了CDC技术来进行增量抽取,不需要修改源表数据结构,在提高系统运行性能的同时减少了数据传输量,减轻了网络负载。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (6)
1.一种基于CDC方式实现增量抽取数据的方法,其特征在于,包括以下步骤:步骤一,根据业务场景在数据源与数据目标的数据库中创建相同表结构的数据库表,再在源端数据库中创建数据操作日志缓存表;
步骤二,创建动态SQL规则,实现从源端的CDC表中,将表中的[TIMESTAMP$]字段作为增量依据,抽取增量数据;
步骤三,创建数据整合服务,将数据操作日志缓存表数据按照增量依据及数据变化方式更新到目标中;数据交换平台的数据整合服务中数据源为数据操作日志缓存表,设定变化监控规则;
步骤四,将创建好的数据整合服务部署到源表所在的节点上,定时抽取数据;当数据库源表数据发送变化时,数据操作日志缓存表中自动存储源表变化数据;数据交换平台的定时任务开始时候会调用创建好的数据整合服务,数据操作日志缓存表中存储新的变化数据时,会读取配置文件中的时间信息作为依据将数据操作日志缓存表中的变化数据抽取出来,并存储本次操作时间来作为下次抽取的依据;
步骤五,将抽取出来的数据通过数据交换平台的批量数据总线传输到目标节点,目标节点将相应变化信息更新到目标表中并存储。
2.如权利要求1所述的一种基于CDC方式实现增量抽取数据的方法,其特征在于,所述步骤二中,抽取增量数据之后,还包括设定增量依据,且每次抽取的数据不重复。
3.如权利要求1所述的一种基于CDC方式实现增量抽取数据的方法,其特征在于,所述步骤三种设定变化监控规则即根据数据操作日志缓存表中的数据变化种类来区分数据操作种别,同时根据设定的动态SQL规则,指定依据字段及起始值。
4.如权利要求3所述的一种基于CDC方式实现增量抽取数据的方法,其特征在于,所述根据数据操作日志缓存表中的数据变化种类来区分数据操作种别中,所述数据变化种类包括I:插入,UU:修改旧值,UN:修改新值,D:删除。
5.如权利要求1所述的一种基于CDC方式实现增量抽取数据的方法,其特征在于,所述步骤四中的数据整合服务中,定时抽取数据的方式为设定定时运行任务定时抽取数据或按需手工触发运行来抽取数据。
6.如权利要求1所述的一种基于CDC方式实现增量抽取数据的方法,其特征在于,所述步骤一中所述数据操作日志缓存表的建立是在保证源表和目标表的结构相同,在源表端建立源表对应的数据操作日志缓存表,在数据操作日志缓存表中加入timestamp字段作为抽取的依据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610271011.2A CN105975502A (zh) | 2016-04-25 | 2016-04-25 | 一种基于cdc方式实现增量抽取数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610271011.2A CN105975502A (zh) | 2016-04-25 | 2016-04-25 | 一种基于cdc方式实现增量抽取数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105975502A true CN105975502A (zh) | 2016-09-28 |
Family
ID=56994019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610271011.2A Pending CN105975502A (zh) | 2016-04-25 | 2016-04-25 | 一种基于cdc方式实现增量抽取数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105975502A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383906A (zh) * | 2016-09-30 | 2017-02-08 | 杭州数梦工场科技有限公司 | 优化Oracle数据库数据增量捕捉的方法和系统 |
CN108121730A (zh) * | 2016-11-30 | 2018-06-05 | 北京京东尚科信息技术有限公司 | 一种将数据更新快速同步到业务系统的装置及方法 |
CN108197268A (zh) * | 2018-01-04 | 2018-06-22 | 国网福建省电力有限公司 | 数据中心分析域数据同步优化提升方法 |
CN109885448A (zh) * | 2018-12-29 | 2019-06-14 | 中兴智能交通股份有限公司 | 一种数据库数据增量实时监控方法 |
CN110019477A (zh) * | 2017-12-27 | 2019-07-16 | 航天信息股份有限公司 | 一种使用hive备份表进行大数据处理的方法及系统 |
CN110019512A (zh) * | 2017-10-11 | 2019-07-16 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN110162461A (zh) * | 2019-04-16 | 2019-08-23 | 平安科技(深圳)有限公司 | 数据同步验证方法、装置和计算机设备 |
CN110222121A (zh) * | 2019-06-14 | 2019-09-10 | 浪潮软件股份有限公司 | 一种基于CDC方式的SQL Server数据库增量同步实现方法及系统 |
CN111198911A (zh) * | 2018-11-19 | 2020-05-26 | 珠海格力电器股份有限公司 | 一种数据提取增量区间的获取方法、数据提取方法 |
CN112069256A (zh) * | 2020-08-27 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种服务器集群上数据同步装置及其同步方法 |
CN112527922A (zh) * | 2020-12-15 | 2021-03-19 | 神州数码信息系统有限公司 | 一种基于不变模型的数据仓库增量加工方法 |
WO2021174696A1 (zh) * | 2020-03-06 | 2021-09-10 | 平安科技(深圳)有限公司 | 数据更新方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645072A (zh) * | 2009-08-25 | 2010-02-10 | 山东中创软件商用中间件股份有限公司 | 基于Oracle CDC技术实现的变更数据抽取方法 |
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据系统有限公司 | 一种基于触发器的数据增量抽取方法 |
CN102915336A (zh) * | 2012-09-18 | 2013-02-06 | 北京金和软件股份有限公司 | 一种基于时间戳和日志的增量数据捕获和抽取方法 |
CN103823797A (zh) * | 2012-11-16 | 2014-05-28 | 镇江诺尼基智能技术有限公司 | 基于ftp协议的行业数据库数据实时同步系统 |
-
2016
- 2016-04-25 CN CN201610271011.2A patent/CN105975502A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645072A (zh) * | 2009-08-25 | 2010-02-10 | 山东中创软件商用中间件股份有限公司 | 基于Oracle CDC技术实现的变更数据抽取方法 |
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据系统有限公司 | 一种基于触发器的数据增量抽取方法 |
CN102915336A (zh) * | 2012-09-18 | 2013-02-06 | 北京金和软件股份有限公司 | 一种基于时间戳和日志的增量数据捕获和抽取方法 |
CN103823797A (zh) * | 2012-11-16 | 2014-05-28 | 镇江诺尼基智能技术有限公司 | 基于ftp协议的行业数据库数据实时同步系统 |
Non-Patent Citations (3)
Title |
---|
吴秀君: ""基于ORACLE CDC技术实现数据自动同步"", 《电脑知识与技术》 * |
李晓波 等: "《科学数据共享关键技术》", 30 November 2007 * |
谭学清 等: "《商务智能》", 31 October 2006 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383906A (zh) * | 2016-09-30 | 2017-02-08 | 杭州数梦工场科技有限公司 | 优化Oracle数据库数据增量捕捉的方法和系统 |
CN108121730A (zh) * | 2016-11-30 | 2018-06-05 | 北京京东尚科信息技术有限公司 | 一种将数据更新快速同步到业务系统的装置及方法 |
CN108121730B (zh) * | 2016-11-30 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 一种将数据更新快速同步到业务系统的装置及方法 |
CN110019512A (zh) * | 2017-10-11 | 2019-07-16 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN110019477A (zh) * | 2017-12-27 | 2019-07-16 | 航天信息股份有限公司 | 一种使用hive备份表进行大数据处理的方法及系统 |
CN108197268A (zh) * | 2018-01-04 | 2018-06-22 | 国网福建省电力有限公司 | 数据中心分析域数据同步优化提升方法 |
CN111198911A (zh) * | 2018-11-19 | 2020-05-26 | 珠海格力电器股份有限公司 | 一种数据提取增量区间的获取方法、数据提取方法 |
CN109885448A (zh) * | 2018-12-29 | 2019-06-14 | 中兴智能交通股份有限公司 | 一种数据库数据增量实时监控方法 |
CN110162461A (zh) * | 2019-04-16 | 2019-08-23 | 平安科技(深圳)有限公司 | 数据同步验证方法、装置和计算机设备 |
CN110162461B (zh) * | 2019-04-16 | 2023-08-15 | 平安科技(深圳)有限公司 | 数据同步验证方法、装置和计算机设备 |
CN110222121A (zh) * | 2019-06-14 | 2019-09-10 | 浪潮软件股份有限公司 | 一种基于CDC方式的SQL Server数据库增量同步实现方法及系统 |
WO2021174696A1 (zh) * | 2020-03-06 | 2021-09-10 | 平安科技(深圳)有限公司 | 数据更新方法、装置、计算机设备及存储介质 |
CN112069256A (zh) * | 2020-08-27 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种服务器集群上数据同步装置及其同步方法 |
CN112527922A (zh) * | 2020-12-15 | 2021-03-19 | 神州数码信息系统有限公司 | 一种基于不变模型的数据仓库增量加工方法 |
CN112527922B (zh) * | 2020-12-15 | 2023-11-24 | 神州数码信息系统有限公司 | 一种基于不变模型的数据仓库增量加工方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105975502A (zh) | 一种基于cdc方式实现增量抽取数据的方法 | |
CN106164865B (zh) | 用于数据复制的依赖性感知的事务批处理的方法和系统 | |
CN102906751B (zh) | 一种数据存储、数据查询的方法及装置 | |
CN110879813B (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
CN103345521B (zh) | 一种在哈希表数据库中处理键值的方法和装置 | |
CN106599104A (zh) | 一种基于redis集群的海量数据关联方法 | |
CN105989076A (zh) | 一种数据统计方法以及装置 | |
CN104317957B (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
CN101944114A (zh) | 内存数据库和物理数据库间的数据同步方法 | |
CN104156396B (zh) | 大数据环境下提高数据库性能的方法及系统 | |
CN106657174A (zh) | 一种数据同步方法、更新方法及装置 | |
CN104636477B (zh) | 一种信息推送前推送列表的去重方法 | |
CN103970833A (zh) | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 | |
CN104834700A (zh) | 一种基于轨迹变更的移动数据增量捕获方法 | |
CN106503158A (zh) | 数据同步方法及装置 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN103327123A (zh) | 一种文件同步的方法、客户端、服务器端及设备 | |
CN109522315A (zh) | 一种数据库处理方法及系统 | |
US9256659B1 (en) | Systems and methods for generating database identifiers based on database characteristics | |
CN107403012A (zh) | 一种数据交换方法及装置 | |
CN112835918A (zh) | 一种MySQL数据库增量同步实现方法 | |
CN102622415A (zh) | 一种用于多平台的电能质量监测数据同步传输方法 | |
CN110209534B (zh) | 自动备份mysql数据库的系统及方法 | |
CN106599113A (zh) | 用于网管系统海量性能数据的数据库读写方法 | |
CN105912427A (zh) | 一种数据容灾同步的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice |
Addressee: You Huimin Document name: Notice of reexamination |
|
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: You Huimin Document name: Notice of Closing the Reexamination Case |
|
DD01 | Delivery of document by public notice | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160928 |
|
RJ01 | Rejection of invention patent application after publication |