CN106383906A - 优化Oracle数据库数据增量捕捉的方法和系统 - Google Patents
优化Oracle数据库数据增量捕捉的方法和系统 Download PDFInfo
- Publication number
- CN106383906A CN106383906A CN201610874473.3A CN201610874473A CN106383906A CN 106383906 A CN106383906 A CN 106383906A CN 201610874473 A CN201610874473 A CN 201610874473A CN 106383906 A CN106383906 A CN 106383906A
- Authority
- CN
- China
- Prior art keywords
- data
- field type
- change
- change table
- increment
- 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.)
- Granted
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/23—Updating
- G06F16/2358—Change logging, detection, and notification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种优化Oracle数据库数据增量捕捉的方法,包括:设定从源表向目的表增量字段时不放入变化表中的指定字段类型;当所述源表新增数据时,将除所述指定字段类型外的新增数据放入所述变化表中;从所述变化表中获取除所述指定字段类型外的新增数据,以及从所述源表中直接抽取所述指定字段类型对应的字段,以完成所述新增数据的增量抽取。本发明具有如下优点:可以实现不需要将某些字段写入到变化表,也依然可以获取这些字段的数据增量变化的功能。通过这个功能,在某些场景下可以实现减少对数据库磁盘空间的占用,可以减少对系统资源比如CPU和内存的消耗,可以支持某些传统方法不能够实现的数据增量捕捉的场景。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种优化Oracle数据库数据增量捕捉的方法和系统。
背景技术
CDC(Change Data Capture)是Oracle数据库提供的一种捕捉数据库数据变化的机制,主要用于数据库之间数据增量同步的场景。
相关技术中,使用CDC机制监控一张表TABLE_SRC的特定字段的增量变化时,需要创建一张针对这张表的特定字段的变化表CHANGE_TABLE。当TABLE_SRC表中发生新增、更新、删除等数据变化时,CDC机制会自动将这个变化信息写入到CHANGE_TABLE中。写入到CHANGE_TABLE表中的数据除了所监控的TABLE_SRC中的特定字段外,还包括数据变化的其他一些参数,比如数据变化的具体动作(指的是新增、更新、删除这些动作)等,后续由一个订阅者的角色从CHANGE_TABLE表中获取对应的变化数据。
相关技术中,使用CDC机制进行数据增量捕捉时,都是将变化数据放到变化表CHANGE_TABLE中,再从变化表CHANGE_TABLE中提取变化的数据。在某些特定场景下,CDC机制将数据放入变化表时存在以下问题:将数据放到变化表中,意味着相同的数据要放置两份甚至3份(变化数据会在变化表中放入变化前的数据和变化后的数据),特别是Oracle某些字段比如BLOB用来存储占用空间较大的二进制字段的,从而使得一份数据占用多分磁盘空间。在拷贝这些数据特别是某些大字段数据时也要消耗可观的CPU、内存等系统资源。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种占用空间小、消耗内存系统资源低的优化Oracle数据库数据增量捕捉的方法。
为了实现上述目的,本发明的实施例公开了一种优化Oracle数据库数据增量捕捉的方法,包括以下步骤:设定从源表向目的表增量字段时,不放入变化表中的字段类型;当所述源表新增数据时,将除所述不放入变化表的字段类型外的新增数据放入所述变化表中;从所述变化表中获取除所述不放入变化表的字段类型外的新增数据,以及从所述源表中直接抽取所述不放入变化表的字段类型对应的字段,以完成所述新增数据的增量抽取。
根据本发明实施例的优化Oracle数据库数据增量捕捉的方法,设定不放入变化表中的字段类型,通过从变化表获取放入变化表中的字段类型外的新增数据和从源表中直接抽取不放入变化表的字段类型对应的字段已完成增量抽取,且占用空间小、消耗内存系统资源低。
另外,根据本发明上述实施例的优化Oracle数据库数据增量捕捉的方法,还可以具有如下附加的技术特征:
进一步地,在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后还包括:当所述源表更新数据时,将除所述不放入变化表的字段类型外的更新数据放入所述变化表中;从所述变化表中感知到数据更新后,通过数据更新记录的主键获取更新后的所述不放入变化表的字段类型对应的字段的更新内容。
进一步地,在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后还包括:当从所述源表删除记录时,从所述变化表中感知到删除记录后,使用主键从所述目的表中完成删除动作。
进一步地,所述不放入变化表中的字段类型包括BLOB和LONG RAW字段类型。
本发明的另一个目的在于提出一种占用空间小、消耗内存系统资源低的优化Oracle数据库数据增量捕捉的系统。
为了实现上述目的,本发明的实施例公开了一种优化Oracle数据库数据增量捕捉的系统,包括:数据获取模块,用于从变化表中获取除指定字段类型外的新增数据,以及从源表中直接抽取所述指定字段类型对应的字段,以完成所述新增数据的增量抽取;控制模块,所述控制模块用于设定从所述源表向目的表增量字段时不放入变化表中的所述指定字段类型,所述控制模块还用于当所述源表新增数据时,将除所述指定字段类型外的新增数据放入所述变化表中。
根据本发明实施例的优化Oracle数据库数据增量捕捉的系统,设定不放入变化表中的字段类型,通过从变化表获取放入变化表中的字段类型外的新增数据和从源表中直接抽取不放入变化表的字段类型对应的字段已完成增量抽取,且占用空间小、消耗内存系统资源低。
另外,根据本发明上述实施例的优化Oracle数据库数据增量捕捉的系统,还可以具有如下附加的技术特征:
进一步地,所述控制模块还用于在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后:当所述源表更新数据时,将除所述指定字段类型外的更新数据放入所述变化表中;从所述变化表中感知到数据更新后,通过数据更新记录的主键获取更新后的所述指定字段类型对应的字段的更新内容。
进一步地,所述控制模块还用于在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后:当从所述源表删除记录时,从所述变化表中感知到删除记录后,使用主键从所述目的表中完成删除动作。
进一步地,所述指定字段类型包括BLOB和LONG RAW字段类型。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例的优化Oracle数据库数据增量捕捉的方法的流程图;
图2是本发明一个实施例的优化Oracle数据库数据增量捕捉的系统的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
以下结合附图描述根据本发明实施例的优化Oracle数据库数据增量捕捉的方法。
图1是本发明一个实施例的优化Oracle数据库数据增量捕捉的方法的流程图。如图1所示,本发明实施例的优化Oracle数据库数据增量捕捉的方法,包括以下步骤:
S1:设定从源表TABLE_SRC向目的表TABLE_DEST增量字段时,不放入变化表中的字段类型。
在本发明的一个实施例中,不放入变化表中的字段类型包括BLOB和LONG RAW等字段类型,例如BLOB类型的字段BLOB_COLUMN。
S2:当源表TABLE_SRC新增数据时,将除不放入变化表的字段类型外的新增数据放入变化表CHANGE_TABLE中。因为下发配置时没有指定BLOB_COLUMN字段,所以新增的这条数据的BLOB_COLUMN字段是不在CHANGE_TABLE中的。其中,步骤S2是由Oracle CDC自身的机制完成的。
S3:从变化表CHANGE_TABLE中获取除不放入变化表的字段类型外的新增数据,以及从源表TABLE_SRC中直接抽取不放入变化表CHANGE_TABLE的字段类型对应的字段,以完成新增数据的增量抽取。
在本发明的一个实施例中,在步骤S1之后还包括:
当源表TABLE_SRC更新数据时,将除不放入变化表的字段类型外的更新数据放入变化表CHANGE_TABLE中;
从变化表CHANGE_TABLE中感知到数据更新后,通过数据更新记录的主键获取更新后的不放入变化表的字段类型对应的字段的更新内容。
在本发明的一个实施例中,在步骤S1之后还包括:当从源表TABLE_SRC删除记录时,从变化表CHANGE_TABLE中感知到删除记录后,使用主键从目的表TABLE_DEST中完成删除动作。
本发明实施例的优化Oracle数据库数据增量捕捉的方法,可以实现不需要将某些字段写入到变化表,也依然可以获取这些字段的数据增量变化的功能。通过这个功能,在某些场景下可以实现减少对数据库磁盘空间的占用,可以减少对系统资源比如CPU和内存的消耗,可以支持某些传统方法不能够实现的数据增量捕捉的场景。
此外,本发明还提供了一种优化Oracle数据库数据增量捕捉的系统。
图2是本发明一个实施例的优化Oracle数据库数据增量捕捉的系统的结构框图。如图2所示,一种优化Oracle数据库数据增量捕捉的系统,包括:数据获取模块210和控制模块220。
其中,数据获取模块210用于从变化表中获取除指定字段类型外的新增数据,以及从源表中直接抽取指定字段类型对应的字段,以完成新增数据的增量抽取。控制模块220用于设定从源表向目的表增量字段时不放入变化表中的指定字段类型,控制模块220还用于当源表新增数据时,将除指定字段类型外的新增数据放入变化表中。
在本发明的一个实施例中,控制模块220还用于在设定从源表向目的表增量字段时,不放入变化表中的字段类型之后:当源表更新数据时,将除指定字段类型外的更新数据放入变化表中;从变化表中感知到数据更新后,通过数据更新记录的主键获取更新后的指定字段类型对应的字段的更新内容。
在本发明的一个实施例中,控制模块220还用于在设定从源表向目的表增量字段时,不放入变化表中的字段类型之后:当从源表删除记录时,从变化表中感知到删除记录后,使用主键从目的表中完成删除动作。
在本发明的一个实施例中,指定字段类型包括BLOB和LONG RAW字段类型。
需要说明的是,本发明实施例的优化Oracle数据库数据增量捕捉的系统的具体实施方式与本发明实施例的优化Oracle数据库数据增量捕捉的方法的具体实施方式类似,具体参见方法部分的描述,为了减少冗余,不作赘述。
另外,本发明实施例的优化Oracle数据库数据增量捕捉的方法和系统的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
Claims (8)
1.一种优化Oracle数据库数据增量捕捉的方法,其特征在于,包括以下步骤:
设定从源表向目的表增量字段时不放入变化表中的指定字段类型;
当所述源表新增数据时,将除所述指定字段类型外的新增数据放入所述变化表中;
从所述变化表中获取除所述指定字段类型外的新增数据,以及从所述源表中直接抽取所述指定字段类型对应的字段,以完成所述新增数据的增量抽取。
2.根据权利要求1所述的优化Oracle数据库数据增量捕捉的方法,其特征在于,在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后还包括:
当所述源表更新数据时,将除所述指定字段类型外的更新数据放入所述变化表中;
从所述变化表中感知到数据更新后,通过数据更新记录的主键获取更新后的所述指定字段类型对应的字段的更新内容。
3.根据权利要求1所述的优化Oracle数据库数据增量捕捉的方法,其特征在于,在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后还包括:
当从所述源表删除记录时,从所述变化表中感知到删除记录后,使用主键从所述目的表中完成删除动作。
4.根据权利要求1-3任一项所述的优化Oracle数据库数据增量捕捉的方法,其特征在于,所述指定字段类型包括BLOB和LONG RAW字段类型。
5.一种优化Oracle数据库数据增量捕捉的系统,其特征在于,包括:
数据获取模块,用于从变化表中获取除指定字段类型外的新增数据,以及从源表中直接抽取所述指定字段类型对应的字段,以完成所述新增数据的增量抽取;
控制模块,所述控制模块用于设定从所述源表向目的表增量字段时不放入变化表中的所述指定字段类型,所述控制模块还用于当所述源表新增数据时,将除所述指定字段类型外的新增数据放入所述变化表中。
6.根据权利要求5所述的优化Oracle数据库数据增量捕捉的系统,其特征在于,所述控制模块还用于在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后:
当所述源表更新数据时,将除所述指定字段类型外的更新数据放入所述变化表中;
从所述变化表中感知到数据更新后,通过数据更新记录的主键获取更新后的所述指定字段类型对应的字段的更新内容。
7.根据权利要求5所述的优化Oracle数据库数据增量捕捉的系统,其特征在于,所述控制模块还用于在所述设定从源表向目的表增量字段时,不放入变化表中的字段类型之后:
当从所述源表删除记录时,从所述变化表中感知到删除记录后,使用主键从所述目的表中完成删除动作。
8.根据权利要求5-7任一项所述的优化Oracle数据库数据增量捕捉的系统,其特征在于,所述指定字段类型包括BLOB和LONG RAW字段类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610874473.3A CN106383906B (zh) | 2016-09-30 | 2016-09-30 | 优化Oracle数据库数据增量捕捉的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610874473.3A CN106383906B (zh) | 2016-09-30 | 2016-09-30 | 优化Oracle数据库数据增量捕捉的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106383906A true CN106383906A (zh) | 2017-02-08 |
CN106383906B CN106383906B (zh) | 2020-12-11 |
Family
ID=57936032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610874473.3A Active CN106383906B (zh) | 2016-09-30 | 2016-09-30 | 优化Oracle数据库数据增量捕捉的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106383906B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183387A (zh) * | 2007-12-14 | 2008-05-21 | 沈阳东软软件股份有限公司 | 一种增量数据捕获方法和系统 |
CN101645072A (zh) * | 2009-08-25 | 2010-02-10 | 山东中创软件商用中间件股份有限公司 | 基于Oracle CDC技术实现的变更数据抽取方法 |
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据系统有限公司 | 一种基于触发器的数据增量抽取方法 |
CN103631967A (zh) * | 2013-12-18 | 2014-03-12 | 北京华环电子股份有限公司 | 一种带自增量标识字段的数据表的处理方法及装置 |
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN103970833A (zh) * | 2014-04-02 | 2014-08-06 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
CN104104738A (zh) * | 2014-08-06 | 2014-10-15 | 江苏瑞中数据股份有限公司 | 一种基于ftp的数据交换系统 |
CN104317974A (zh) * | 2014-11-21 | 2015-01-28 | 武汉理工大学 | 一种可重构的erp系统中多源数据导入方法 |
CN105975502A (zh) * | 2016-04-25 | 2016-09-28 | 南京优测信息科技有限公司 | 一种基于cdc方式实现增量抽取数据的方法 |
-
2016
- 2016-09-30 CN CN201610874473.3A patent/CN106383906B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183387A (zh) * | 2007-12-14 | 2008-05-21 | 沈阳东软软件股份有限公司 | 一种增量数据捕获方法和系统 |
CN101645072A (zh) * | 2009-08-25 | 2010-02-10 | 山东中创软件商用中间件股份有限公司 | 基于Oracle CDC技术实现的变更数据抽取方法 |
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据系统有限公司 | 一种基于触发器的数据增量抽取方法 |
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN103631967A (zh) * | 2013-12-18 | 2014-03-12 | 北京华环电子股份有限公司 | 一种带自增量标识字段的数据表的处理方法及装置 |
CN103970833A (zh) * | 2014-04-02 | 2014-08-06 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
CN104104738A (zh) * | 2014-08-06 | 2014-10-15 | 江苏瑞中数据股份有限公司 | 一种基于ftp的数据交换系统 |
CN104317974A (zh) * | 2014-11-21 | 2015-01-28 | 武汉理工大学 | 一种可重构的erp系统中多源数据导入方法 |
CN105975502A (zh) * | 2016-04-25 | 2016-09-28 | 南京优测信息科技有限公司 | 一种基于cdc方式实现增量抽取数据的方法 |
Non-Patent Citations (1)
Title |
---|
王涛: ""保险电销的客户逻辑模型及其数据仓库设计"", 《万方》 * |
Also Published As
Publication number | Publication date |
---|---|
CN106383906B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103093038B (zh) | 一种物料清单的更新方法及装置 | |
CN103984582A (zh) | 一种热更新方法和装置 | |
CN106156301B (zh) | 一种大字段数据的处理方法及装置 | |
CN103631590B (zh) | 自动化测试脚本的编辑方法 | |
CN103530427A (zh) | 一种基于多数据库的动态切换方法和装置 | |
CN103020262A (zh) | 一种数据存储方法、系统及数据存储设备 | |
CN103713926B (zh) | 一种预更新软件客户端的方法及系统 | |
CN104376073A (zh) | 一种数据库恢复方法及装置 | |
CN105447105A (zh) | 基于NoSQL的分布式物联网数据的单字段区间索引查询方式 | |
JP2013045364A5 (zh) | ||
CN104778252A (zh) | 索引的存储方法和装置 | |
CN104808953A (zh) | 控制数据存储的方法、装置及移动终端 | |
KR101588375B1 (ko) | 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 | |
CN103902275A (zh) | 一种实现应用的语言版本切换的方法和系统 | |
CN106383906A (zh) | 优化Oracle数据库数据增量捕捉的方法和系统 | |
CN104794179A (zh) | 一种基于知识树的视频快速标引方法及装置 | |
CN103559574A (zh) | 一种工作流操作方法及系统 | |
JP5345020B2 (ja) | クローンコード検出評価装置、クローンコード検出評価方法及びプログラム | |
CN108255486B (zh) | 用于表单设计的视图转换方法、装置和电子设备 | |
CN105551069A (zh) | 一种索引图像的实时快速生成方法及系统 | |
CN109492014A (zh) | 一种数据库模型包创建方法、装置及设备 | |
CN108280085B (zh) | 数据去重的方法及装置 | |
CN105701162B (zh) | 一种智能终端的用户数据分区的管理方法及智能终端 | |
CN102810200A (zh) | 一种图像批处理的方法 | |
CN105094845A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |