CN117520459B - 一种基于CDC方式的Db2增量同步实现方法 - Google Patents
一种基于CDC方式的Db2增量同步实现方法 Download PDFInfo
- Publication number
- CN117520459B CN117520459B CN202410008947.0A CN202410008947A CN117520459B CN 117520459 B CN117520459 B CN 117520459B CN 202410008947 A CN202410008947 A CN 202410008947A CN 117520459 B CN117520459 B CN 117520459B
- Authority
- CN
- China
- Prior art keywords
- data
- synchronized
- data table
- tables
- simplified representation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000001360 synchronised effect Effects 0.000 claims abstract description 459
- 230000008859 change Effects 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims description 25
- 239000013598 vector Substances 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000010076 replication Effects 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 16
- 238000001514 detection method Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012827 research and development Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/2379—Updates performed during online database operations; commit processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于CDC方式的Db2增量同步实现方法,涉及数据处理技术领域,包括:基于每个待同步数据表的表结构和当前存储的数据内容以及目标异构数据库或目标存储引擎中的每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化,获得待同步数据表的简化表示和已同步数据表的简化表示;基于简化表示,确定出待同步数据表的增量数据,并获得数据变更信息;将数据变更信息和待同步数据的表结构进行合并获得待同步数据,并基于连接器将待同步数据同步至目标异构数据库或目标存储引擎中;用以按照非侵入方式实现对Db2数据库的增量数据的同步高效备份。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于CDC方式的Db2增量同步实现方法。
背景技术
目前,IBM Db2(前身为IBM数据库管理系统)是IBM开发和维护的一系列关系型数据库管理系统。Db2是一种企业级数据库解决方案,具有高可靠性、可扩展性和性能优势,广泛用于企业和大型组织的数据管理。Db2有悠久的历史,已经出现了40余年。并且运行在多种操作系统上。针对一些运行在Db2上的商业项目,切换底层数据库过于麻烦,并且可能会出现重大问题。对于Db2数据库如果需要做数据同步以及备份或导出数据用于支撑人工智能技术发展过于麻烦。CDC(Change Data Capture),即变换数据捕获,是数据库备份内容中非常重要的一环。目前对Db2数据库CDC操作适配仍不完善,仍有很多项目在使用侵入式的CDC操作。这不仅给源系统带来了极大的性能影响,同时在冗杂繁多的数据中,侵入式CDC操作的执行缓慢,SQL执行错误等问题均难以满足现今业务需要快速准确的需求。导致基于Db2数据库的项目提供数据支撑过于困难。
现有技术中的针对Db2的增量同步实现方法需要在源表中设置时间戳用以在源表中确定出未被同步的数据,或者通过设置用于检测出未被同步的数据的检测组件用于检测出未被同步的数据,以上两种方式使得针对Db2数据库的同步系统的维护成本和研发成本较大,且当时间戳和检测组件出现运行故障时会直接导致同步过程的故障。
因此,本发明提出一种基于CDC方式的Db2增量同步实现方法。
发明内容
本发明提供一种基于CDC方式的Db2增量同步实现方法,用以通过对Db2数据库的表结构和当前存储的数据内容的读取,并通过对当前存储的数据内容的语义简化,基于语义简化后的简化表示的直接对比,可以无需依赖时间戳或检测组件直接检测出未被同步的数据,即减小了增量数据的检索数据量,提高了增量数据的确定过程,并基于连接器将被利用增量数据更新后的更改数据表同步于目标异构数据库或目标存储引擎中,按照非侵入方式实现对Db2数据库的增量数据的同步高效备份,降低了针对Db2数据库的同步系统的维护成本和研发成本以及故障率。
本发明提供一种基于CDC方式的Db2增量同步实现方法,包括:
S1:对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构和当前的起始序列号;
S2:确定出目标异构数据库或目标存储引擎中的所有已同步数据表,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示;
S3:基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,基于增量数据和当前的起始序列号更新更改数据表,获得更新后的更改数据表;
S4:控制采集组件查询被更新后的更改数据表,获得数据变更信息;
S5:将数据变更信息和已同步数据表的表结构进行合并处理,获得待同步数据,并基于连接器将待同步数据同步至目标异构数据库或目标存储引擎中,获得Db2增量同步结果。
优选的,S1:对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构和当前的起始序列号,包括:
重启Db2数据库,对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构;
获取在待同步数据表中上一次执行的查询任务结束时记录的CHANGE_LSN号,当作当前的起始序列号。
优选的,对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构,包括:
对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表和每个待同步数据表中当前存储的数据内容;
基于每个待同步数据表中当前存储的数据内容,确定出表格值不为空值的数据表格位置;
基于每个待同步数据表中所有表格值不为空值的数据表格位置确定出待同步数据表的表格行数和表格列数,作为每个待同步数据表的表结构。
优选的,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示,包括:
基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,将所有待同步数据表和所有已同步数据表进行一一对应,获得每个待同步数据表对应的已同步数据表;
在每个待同步数据表和对应的已同步数据表中提取出每个数据类型的所有表格数据,基于每个数据类型的所有表格数据确定出对应待同步数据表和对应的已同步数据表中的每个数据类型的数据简化映射关系;
基于每个数据类型的数据简化映射关系,确定出对应待同步数据表和已同步数据表中的每个表格数据的数据简化映射值;
基于每个待同步数据表的表结构和每个已同步数据表的表结构以及每个待同步数据表和每个已同步数据表中的每个表格数据的数据简化映射值,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示。
优选的,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,将所有待同步数据表和所有已同步数据表进行一一对应,获得每个待同步数据表对应的已同步数据表,包括:
基于所有待同步数据表的表结构和已同步数据表的表结构,计算出每个待同步数据表和每个已同步数据表的表结构相似度;
在所有待同步数据表和所有已同步数据表中,筛选出对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表,并将对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表进行对应,获得对应待同步数据表对应的已同步数据表;
基于未被一一对应的每个待同步数据表当前存储的数据内容和和每个已同步数据表当前存储的数据内容,计算出未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度;
基于未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度,对未被一一对应的所有待同步数据表和已同步数据表进行一一对应,获得未被一一对应的每个待同步数据表的已同步数据表。
优选的,基于未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度,对未被一一对应的所有待同步数据表和已同步数据表进行一一对应,获得未被一一对应的每个待同步数据表的已同步数据表,包括:
将每个未被一一对应的待同步数据表的所有数据内容相似度中的最大数据内容相似度对应的已同步数据表,当作未被一一对应的每个待同步数据表的已同步数据表。
优选的,基于每个待同步数据表的表结构和每个已同步数据表的表结构以及每个待同步数据表和每个已同步数据表中的每个表格数据的数据简化映射值,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示,包括:
基于每个待同步数据表的表结构确定出每个待同步数据表中的每个表格数据在所属待同步数据表中的所在行值和所在列值以及数据简化映射值,确定出每个待同步数据表中每个表格数据的三维表示行向量,并按照预设排序方式对每个待同步数据表中的所有表格数据的三维表示行向量进行列排序,获得每个待同步数据表的简化表示矩阵,作为每个待同步数据表的简化表示;
基于每个已同步数据表的表结构确定出每个已同步数据表中的每个表格数据在所属已同步数据表中的所在行值和所在列值以及数据简化映射值,确定出每个已同步数据表中每个表格数据的三维表示行向量,并按照预设排序方式对每个已同步数据表中的所有表格数据的三维表示行向量进行列排序,获得每个已同步数据表的简化表示矩阵,作为每个待同步数据表的简化表示。
优选的,S3:基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,基于增量数据和当前的起始序列号更新更改数据表,获得更新后的更改数据表,包括:
控制Db2 SQL Replication创建生成更改数据表;
将待采集数据表添加至Db2 SQL Replication数据捕获模式下,并基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据;
控制Db2 SQL Replication基于当前的起始序列号,将增量数据存储在对应的更改数据表,获得更新后的更改数据表。
优选的,基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,包括:
在待同步数据表的简化表示中确定出与已同步数据表的简化表示不一致的部分差异简化表示;
基于部分差异简化表示确定出待同步数据表的增量数据。
优选的,将数据变更信息和已同步数据表的表结构进行合并处理,获得待同步数据,包括:
将数据变更信息和待同步数据的表结构合并处理,获得合并变更信息;
对合并变更信息进行数据格式转换,获得待同步数据。
本发明相对于现有技术产生的有益效果为:通过对Db2数据库的表结构和当前存储的数据内容的读取,并通过对当前存储的数据内容的语义简化,基于语义简化后的简化表示的直接对比,可以无需依赖时间戳或检测组件直接检测出未被同步的数据,即减小了增量数据的检索数据量,提高了增量数据的确定过程,并基于连接器将被利用增量数据更新后的更改数据表同步于目标异构数据库或目标存储引擎中,按照非侵入方式实现对Db2数据库的增量数据的同步高效备份,降低了针对Db2数据库的同步系统的维护成本和研发成本以及故障率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在本申请文件中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中的一种基于CDC方式的Db2增量同步实现方法流程图;
图2为本发明实施例中的基于CDC方式的Db2增量同步实现方法以及采集实现系统组件示意图;
图3为本发明实施例中的另一种基于CDC方式的Db2增量同步实现方法流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明提供了一种基于CDC方式的Db2增量同步实现方法,参考图1至3,包括:
S1:对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表(即为Db2数据库中包含的所有数据表)的表结构(即为数据表的表格行数和表格列数等)和当前的起始序列号(即为数据的操作日志中用户记录需要再此次同步过程中被同步备份的数据和数据操作类型的记录序列号);
S2:确定出目标异构数据库(即为用于同步存储Db2数据库的增量数据的异构数据库)或目标存储引擎(即为用于同步存储Db2数据库的增量数据的存储引擎)中的所有已同步数据表(即为目标异构数据库或目标存储引擎中用于存储待同步数据库中已被同步的数据的数据表),基于每个待同步数据表的表结构和当前存储的数据内容(例如不同对象的不同属性的具体属性值)以及每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化(即为将数据表中的每个数据表格进行简化表示,例如用单个字母表示或者数字表示),获得每个待同步数据表的简化表示(即为被语义简化后的待同步数据表的表示)和每个已同步数据表的简化表示(即为被语义简化后的已同步数据表的表示);
S3:基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据(即为待同步数据表中未被同步备份的数据,也是在本次同步过程中需要同步存储至目标异构数据库或目标存储引擎中的数据),基于增量数据和当前的起始序列号更新更改数据表(即为用于存储已同步数据表中需要更改的数据的数据表,也是用于存储每次同步过程中需要同步备份的数据的数据表),获得更新后的更改数据表;
S4:控制采集组件查询被更新后的更改数据表,获得数据变更信息(即为在更改数据表中采集的已同步数据表中需要更高的数据信息);
S5:将数据变更信息和已同步数据表的表结构进行合并处理,获得待同步数据(即为需要在目标异构数据库和目标存储引起中直接存储的数据),并基于连接器将待同步数据同步至目标异构数据库或目标存储引擎中,获得Db2增量同步结果。
本发明的主要功能是Db2数据库下增量数据采集,即实现Db2数据表的增量数据的同步。
确定备份路径(例如db2 update db cfg for DANA using logarchmeth1 DISK:${备份路径})是CDC开启前置条件,DB2数据库的CDC同步,必须要求数据库有过历史备份才能启动。它是当前数据库的备份文件,而不是针对这一次同步的备份路径。并且当该数据库备份过一次,后续其它任务不需要该操作。
Db2 SQL Replication用以捕获数据库表的增量数据,在将表置于捕获模式下时,会生成更改数据表,并将更改事件存储在相应的更改数据表中以更新这些表。当基于Db2SQL Replication方式做增量抽取时,会首先记录一个起始的序列号 change_lsn,和操作类型 operation(包括我们所需要的DML语句,如新增、删除、更新)。当查询结束时,会保存当前的Change_LSN,以便于下次增量同步能从断点位置继续。
此外,本发明还提供了一种基于CDC方式的Db2数据库增量同步实现系统,主要由三个组件组成:采集组件、Kafka、入库组件。
图2是Db2同步方式以及采集实现系统组件介绍。
采集组件:依赖于kafka Connector以及Db2 SQL Replication,运行后Db2 SQLReplication会捕获数据库表的增量数据,并将更改事件存储在相应的更改数据表中以更新这些表。采集程序通过SQL读取变更数据表,获取变更数据,将变更数据与表结构合并处理,并实现将数据转换为 Avro 格式的统一数据结构,其中包括数据模式和数据内容,以屏蔽数据库差异并压缩数据大小。并发送至Apache Kafka。
Kafka:通过Kafka连接兼容的连接器来监视特定的数据库管理系统。并在Topic中存储数据更改的历史。
入库组件:通过不同的入库连接器连接kafka,可以将数据同步到各种不同的异构数据库或存储引擎。比如mysql/oracle/pg/达梦,或者是大数据存储中,如kafka或hdfs。
以下为Db2同步方式以及采集实现系统的具体实施步骤:
开启数据库备份路径:db2 update db cfg for DANA using logarchmeth1DISK:${备份路径},并且重启数据库;
通过select方式对需要采集的表做快照处理,并记录表结构,并记录当时CHANGE_LSN号;
添加表置于Db2 SQL Replication数据捕获模式下;
Db2 SQL Replication创建生成更改数据表;
Db2 SQL Replication将更改事件存储在相应的更改数据表中以更新这些表;
采集组件通过查询 更改数据表,以获取后续数据变化信息并处理;
通过解析数据变更信息,将数据变更信息与表结构合并处理,以获得CDC数据,并通过kafka 发送至Topic中;
入库组件通过消费Kafka Topic数据,并将数据变化同步至目标数据库。或发送至hdfs存储。
通过对Db2数据库的表结构和当前存储的数据内容的读取,并通过对当前存储的数据内容的语义简化,基于语义简化后的简化表示的直接对比,可以无需依赖时间戳或检测组件直接检测出未被同步的数据,即减小了增量数据的检索数据量,提高了增量数据的确定过程,并基于连接器将被利用增量数据更新后的更改数据表同步于目标异构数据库或目标存储引擎中,按照非侵入方式实现对Db2数据库的增量数据的同步高效备份,降低了针对Db2数据库的同步系统的维护成本和研发成本以及故障率。
实施例2:
在实施例1的基础上,S1:对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构和当前的起始序列号,包括:
重启Db2数据库,对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构;
获取在待同步数据表中上一次执行的查询任务结束时记录的CHANGE_LSN号(即为上次执行的查询任务结束时记录的用于标记上次同步备份过程最终同步备份的数据和数据操作类型的序列号),当作当前的起始序列号。
上述过程实现Db2数据库中的所有待同步数据表的表结构的读取和当前的起始序列号的读取。
实施例3:
在实施例2的基础上,对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构,包括:
对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表和每个待同步数据表中当前存储的数据内容;
基于每个待同步数据表中当前存储的数据内容,确定出表格值(即为数据表中的单个表格位置中存储的数据)不为空值(即表示对应表格位置中没有数据)的数据表格位置(例如表格中的A1位置、B1位置);
基于每个待同步数据表中所有表格值不为空值的数据表格位置确定出待同步数据表的表格行数(即为表格中所有不为空值的数据表格位置的所占行数范围,例如:A1至A20)和表格列数(即为表格中所有不为空值的数据表格位置的所占列数范围,例如A1至Z1),作为每个待同步数据表的表结构。
上述技术方案完成了待同步数据表中表格值是否为控制的识别,进而确定出待同步数据表的表结构。
实施例4:
在实施例1的基础上,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示,包括:
基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,将所有待同步数据表和所有已同步数据表进行一一对应,获得每个待同步数据表对应的已同步数据表;
在每个待同步数据表和对应的已同步数据表中提取出每个数据类型(例如数字、汉字、大写英文字母、标点符号其一或者多种类型的组合等)的所有表格数据,基于每个数据类型的所有表格数据(即为单个数据表格位置中存储的数据)确定出对应待同步数据表和对应的已同步数据表中的每个数据类型的数据简化映射关系(即为:基于每个数据类型的所有表格数据,确定出每个数据类型的数据范围,基于该数据范围确定出其与预设映射值表示方式之间的映射关系,例如“评价级别”列数据的数据类型为三个大写字母(分别为“A”、“B”、“C”)(+标点符合(分别为“+”、“-”))+汉字“级”,则该数据类型有九种数据(即为该数据类型的数据范围),因此,可以利用数字1到9分别表示这九种数据,即数字1到9分别表示这九种数据的映射关系即为此类数据类型的数据简化映射关系);
基于每个数据类型的数据简化映射关系,确定出对应待同步数据表和已同步数据表中的每个表格数据的数据简化映射值(即为基于数据简化映射关系对表格数据进行语义简化后获得的表示值);
基于每个待同步数据表的表结构和每个已同步数据表的表结构以及每个待同步数据表和每个已同步数据表中的每个表格数据的数据简化映射值,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示。
上述技术方案实现待同步数据表和已同步数据表之间的一一对应,并基于该对应关系确定出每个数据类型的数据范围,进而准确确定出每一对待同步数据表和已同步数据表的数据简化映射关系,使得可以采用统一的简化方式对待同步数据表和对应的已同步数据表进行简化表示,便于后续基于简化表示确定出增量数据。
实施例5:
在实施例4的基础上,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,将所有待同步数据表和所有已同步数据表进行一一对应,获得每个待同步数据表对应的已同步数据表,包括:
基于所有待同步数据表的表结构和已同步数据表的表结构,计算出每个待同步数据表和每个已同步数据表的表结构相似度(即为表示两个数据表的表结构之间的相似程度),包括:
;
式中,为待同步数据表和已同步数据表的表结构相似度,/>为待同步数据表的表格行数,/>为已同步数据表的表格行数,/>为待同步数据表的表格行数和已同步数据表的表格行数中的较小值,/>为待同步数据表的表格行数和已同步数据表的表格行数中的较大值,/>为待同步数据表的表格列数,/>为已同步数据表的表格列数,/>为待同步数据表的表格列数和已同步数据表的表格列数中的较小值,/>为待同步数据表的表格列数和已同步数据表的表格列数中的较大值;
在所有待同步数据表和所有已同步数据表中,筛选出对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表(当已同步数据表A是待同步数据表A的所有表结构相似度中的最大表结构相似度对应的已同步数据表,且待同步数据表A是已同步数据表A的所有表结构相似度中的最大处表结构相似度对应的待同步数据表时,则判定待同步数据表A和已同步数据表A为对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表),并将对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表进行对应,获得对应待同步数据表对应的已同步数据表;
基于未被一一对应的每个待同步数据表当前存储的数据内容和和每个已同步数据表当前存储的数据内容,计算出未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度(即为表示两个数据表的数据内容之间的相似程度),包括:
;
式中,为当前计算的未被一一对应的待同步数据表和已同步数据表之间的数据内容相似度,/>为当前计算的未被一一对应的每个待同步数据表当前存储的数据内容和每个已同步数据表当前存储的数据内容中位置相同且数据相同的表格数据的总数,/>为当前计算的未被一一对应的待同步数据表中包含的表格数据的总数,/>为当前计算的未被一一对应的待同步数据表中包含的表格数据的总数;
基于未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度,对未被一一对应的所有待同步数据表和已同步数据表进行一一对应,获得未被一一对应的每个待同步数据表的已同步数据表。
上述过程基于数据表的表结构和数据内容两方面,通过先计算出的待同步数据表和已同步数据表之间的表结构相似度,实现对待同步数据表和已同步数据表之间的初步对应,并通过计算未被一一对应的待同步数据表和已同步数据表的数据内容相似度,实现对未被一一对应的待同步数据表和已同步数据表之间的二次对应,进而完成所有待同步数据表和已同步数据表之间的一一对应。
实施例6:
在实施例5的基础上,基于未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度,对未被一一对应的所有待同步数据表和已同步数据表进行一一对应,获得未被一一对应的每个待同步数据表的已同步数据表,包括:
将每个未被一一对应的待同步数据表的所有数据内容相似度中的最大数据内容相似度对应的已同步数据表,当作未被一一对应的每个待同步数据表的已同步数据表。
基于数据内容相似度,实现对未被一一对应的待同步数据表和已同步数据表之间的二次对应,进而完成所有待同步数据表和已同步数据表之间的一一对应。
实施例7:
在实施例4的基础上,基于每个待同步数据表的表结构和每个已同步数据表的表结构以及每个待同步数据表和每个已同步数据表中的每个表格数据的数据简化映射值,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示,包括:
基于每个待同步数据表的表结构确定出每个待同步数据表中的每个表格数据在所属待同步数据表中的所在行值(表格数据位于所属的待同步数据表中的第几行,则对应的所在行值即为几)和所在列值(表格数据位于所属的待同步数据表中的第几列,则对应的所在列值即为几)以及数据简化映射值,确定出每个待同步数据表中每个表格数据的三维表示行向量(即为Z=(i,j,q),其中Z为三维表示行向量,i为表格数据在所属同步数据表中的所在行值,j为表格数据在所属同步数据表中的所在列值,q为表格数据的数据简化映射值),并按照预设排序方式(按照从左到右的顺序将数据表中第一行中的所有表格数据进行排序,再按照从左到右的顺序将数据表中第二行中的所有表格数据进行排序,以此类推直至遍历数据表中的所有表格数据)对每个待同步数据表中的所有表格数据的三维表示行向量进行列排序,获得每个待同步数据表的简化表示矩阵,作为每个待同步数据表的简化表示;
基于每个已同步数据表的表结构确定出每个已同步数据表中的每个表格数据在所属已同步数据表中的所在行值和所在列值以及数据简化映射值(与待同步数据表中的表格数据的三维表示行向量的确定方式相同),确定出每个已同步数据表中每个表格数据的三维表示行向量,并按照预设排序方式(与待同步数据表中的表格数据的三维表示行向量的排序方式相同)对每个已同步数据表中的所有表格数据的三维表示行向量进行列排序,获得每个已同步数据表的简化表示矩阵,作为每个待同步数据表的简化表示。
上述过程基于待同步数据表和已同步数据表的表结构和每个表格数据的简化映射值,生成表格数据的三维行向量的表示,再通过对表格数据的排序搭建,实现了对待同步数据和已同步数据的表格数据的简化表示。
实施例8:
在实施例1的基础上,S3:基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,基于增量数据和当前的起始序列号更新更改数据表,获得更新后的更改数据表,包括:
控制Db2 SQL Replication创建生成更改数据表;
将待采集数据表添加至Db2 SQL Replication数据捕获模式下,并基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据;
控制Db2 SQL Replication基于当前的起始序列号,将增量数据存储在对应的更改数据表,获得更新后的更改数据表(即为基于当前的起始序列号,确定出增量数据在更改数据表中需要续接的数据位置,并将增量数据以需要续接的数据位置为起点进行存储,获得更新后的更改数据表)。
上述技术方案基于简化表示快速地确定出待同步数据表中的增量数据,并基于当前的起始序列号确定出增量数据在更改数据表中的更新存储位置,以实现更改数据表的更新。
实施例9:
在实施例8的基础上,基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,包括:
在待同步数据表的简化表示中确定出与已同步数据表的简化表示不一致的部分差异简化表示(即为将已同步数据表的简化表示中的简化表示矩阵中单行最后一个数值与待同步数据表的简化表示中简化表示矩阵中相同行序数的行中最后一个数值不一致的行序数当作差异简化表示);
基于部分差异简化表示确定出待同步数据表的增量数据(将差异简化矩阵中最后一个数值不一致的行序数在待同步数据表中对应的表格数据当作增量数据)。
上述过程将待同步数据表和已同步数据表的简化表示进行对比,确定出部分差异简化表示,进而基于部分差异简化表示对应的行序数在待同步数据表中对应的表格数据,在待同步数据表中快速确定出增量数据。
实施例10:
在实施例1的基础上,将数据变更信息和已同步数据表的表结构进行合并处理,获得待同步数据,包括:
将数据变更信息和待同步数据的表结构合并处理,获得合并变更信息(即为确定出数据变更信息对应的增量数据在待同步数据表中的存储位置(即为增量数据中包含的每个表格数据在待同步数据表中的所在行序数和所在列序数),合并变更信息即为包含增量数据中每个表格数据在待同步数据表中的存储位置的数据信息);
对合并变更信息进行数据格式转换(转换为Avro格式的统一数据结构),获得待同步数据。
上述技术方案用以屏蔽数据库差异并压缩数据大小,更加提高了同步效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种基于CDC方式的Db2增量同步实现方法,其特征在于,包括:
S1:重启Db2数据库,对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构,获取在待同步数据表中上一次执行的查询任务结束时记录的CHANGE_LSN号,当作当前的起始序列号;
S2:确定出目标异构数据库或目标存储引擎中的所有已同步数据表,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示;
S3:基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,基于增量数据和当前的起始序列号更新更改数据表,获得更新后的更改数据表;
S4:控制采集组件查询被更新后的更改数据表,获得数据变更信息;
S5:将数据变更信息和已同步数据表的表结构进行合并处理,获得待同步数据,并基于连接器将待同步数据同步至目标异构数据库或目标存储引擎中,获得Db2增量同步结果;
其中,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示,包括:
基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,将所有待同步数据表和所有已同步数据表进行一一对应,获得每个待同步数据表对应的已同步数据表;
在每个待同步数据表和对应的已同步数据表中提取出每个数据类型的所有表格数据,基于每个数据类型的所有表格数据确定出对应待同步数据表和对应的已同步数据表中的每个数据类型的数据简化映射关系;
基于每个数据类型的数据简化映射关系,确定出对应待同步数据表和已同步数据表中的每个表格数据的数据简化映射值;
基于每个待同步数据表的表结构和每个已同步数据表的表结构以及每个待同步数据表和每个已同步数据表中的每个表格数据的数据简化映射值,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示;
其中,基于每个待同步数据表的表结构和当前存储的数据内容以及每个已同步数据表的表结构和当前存储的数据内容,将所有待同步数据表和所有已同步数据表进行一一对应,获得每个待同步数据表对应的已同步数据表,包括:
基于所有待同步数据表的表结构和已同步数据表的表结构,计算出每个待同步数据表和每个已同步数据表的表结构相似度;
在所有待同步数据表和所有已同步数据表中,筛选出对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表,并将对应的表结构相似度同时是两者的最大表结构相似度的待同步数据表和已同步数据表进行对应,获得对应待同步数据表对应的已同步数据表;
基于未被一一对应的每个待同步数据表当前存储的数据内容和每个已同步数据表当前存储的数据内容,计算出未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度;
基于未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度,对未被一一对应的所有待同步数据表和已同步数据表进行一一对应,获得未被一一对应的每个待同步数据表的已同步数据表。
2.根据权利要求1所述的基于CDC方式的Db2增量同步实现方法,其特征在于,对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表的表结构,包括:
对Db2数据库进行快照处理,获得Db2数据库中的所有待同步数据表和每个待同步数据表中当前存储的数据内容;
基于每个待同步数据表中当前存储的数据内容,确定出表格值不为空值的数据表格位置;
基于每个待同步数据表中所有表格值不为空值的数据表格位置确定出待同步数据表的表格行数和表格列数,作为每个待同步数据表的表结构。
3.根据权利要求1所述的基于CDC方式的Db2增量同步实现方法,其特征在于,基于未被一一对应的每个待同步数据表和每个已同步数据表之间的数据内容相似度,对未被一一对应的所有待同步数据表和已同步数据表进行一一对应,获得未被一一对应的每个待同步数据表的已同步数据表,包括:
将每个未被一一对应的待同步数据表的所有数据内容相似度中的最大数据内容相似度对应的已同步数据表,当作未被一一对应的每个待同步数据表的已同步数据表。
4.根据权利要求1所述的基于CDC方式的Db2增量同步实现方法,其特征在于,基于每个待同步数据表的表结构和每个已同步数据表的表结构以及每个待同步数据表和每个已同步数据表中的每个表格数据的数据简化映射值,对每个待同步数据表和每个已同步数据表进行语义简化,获得每个待同步数据表的简化表示和每个已同步数据表的简化表示,包括:
基于每个待同步数据表的表结构确定出每个待同步数据表中的每个表格数据在所属待同步数据表中的所在行值和所在列值以及数据简化映射值,确定出每个待同步数据表中每个表格数据的三维表示行向量,并按照预设排序方式对每个待同步数据表中的所有表格数据的三维表示行向量进行列排序,获得每个待同步数据表的简化表示矩阵,作为每个待同步数据表的简化表示;
基于每个已同步数据表的表结构确定出每个已同步数据表中的每个表格数据在所属已同步数据表中的所在行值和所在列值以及数据简化映射值,确定出每个已同步数据表中每个表格数据的三维表示行向量,并按照预设排序方式对每个已同步数据表中的所有表格数据的三维表示行向量进行列排序,获得每个已同步数据表的简化表示矩阵,作为每个待同步数据表的简化表示。
5.根据权利要求1所述的基于CDC方式的Db2增量同步实现方法,其特征在于,S3:基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,基于增量数据和当前的起始序列号更新更改数据表,获得更新后的更改数据表,包括:
控制Db2 SQL Replication创建生成更改数据表;
将待采集数据表添加至Db2 SQL Replication数据捕获模式下,并基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据;
控制Db2 SQL Replication基于当前的起始序列号,将增量数据存储在对应的更改数据表,获得更新后的更改数据表。
6.根据权利要求5所述的基于CDC方式的Db2增量同步实现方法,其特征在于,基于已同步数据表的简化表示和待同步数据表的简化表示,确定出待同步数据表的增量数据,包括:
在待同步数据表的简化表示中确定出与已同步数据表的简化表示不一致的部分差异简化表示;
基于部分差异简化表示确定出待同步数据表的增量数据。
7.根据权利要求1所述的基于CDC方式的Db2增量同步实现方法,其特征在于,将数据变更信息和已同步数据表的表结构进行合并处理,获得待同步数据,包括:
将数据变更信息和待同步数据的表结构合并处理,获得合并变更信息;
对合并变更信息进行数据格式转换,获得待同步数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008947.0A CN117520459B (zh) | 2024-01-04 | 2024-01-04 | 一种基于CDC方式的Db2增量同步实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008947.0A CN117520459B (zh) | 2024-01-04 | 2024-01-04 | 一种基于CDC方式的Db2增量同步实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117520459A CN117520459A (zh) | 2024-02-06 |
CN117520459B true CN117520459B (zh) | 2024-04-09 |
Family
ID=89753442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410008947.0A Active CN117520459B (zh) | 2024-01-04 | 2024-01-04 | 一种基于CDC方式的Db2增量同步实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520459B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674146A (zh) * | 2019-08-22 | 2020-01-10 | 视联动力信息技术股份有限公司 | 一种数据同步方法、同步端、待同步端、设备及存储介质 |
CN112988916A (zh) * | 2021-03-05 | 2021-06-18 | 杭州天阙科技有限公司 | 针对Clickhouse的全量和增量同步方法、设备和存储介质 |
CN114416868A (zh) * | 2021-12-30 | 2022-04-29 | 联通智网科技股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN115292307A (zh) * | 2022-06-28 | 2022-11-04 | 望海康信(北京)科技股份公司 | 数据同步系统、方法及相应计算机设备和存储介质 |
CN116975159A (zh) * | 2023-09-25 | 2023-10-31 | 云筑信息科技(成都)有限公司 | 一种增量数据同步的处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11630814B2 (en) * | 2020-12-10 | 2023-04-18 | International Business Machines Corporation | Automated online upgrade of database replication |
-
2024
- 2024-01-04 CN CN202410008947.0A patent/CN117520459B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674146A (zh) * | 2019-08-22 | 2020-01-10 | 视联动力信息技术股份有限公司 | 一种数据同步方法、同步端、待同步端、设备及存储介质 |
CN112988916A (zh) * | 2021-03-05 | 2021-06-18 | 杭州天阙科技有限公司 | 针对Clickhouse的全量和增量同步方法、设备和存储介质 |
CN114416868A (zh) * | 2021-12-30 | 2022-04-29 | 联通智网科技股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN115292307A (zh) * | 2022-06-28 | 2022-11-04 | 望海康信(北京)科技股份公司 | 数据同步系统、方法及相应计算机设备和存储介质 |
CN116975159A (zh) * | 2023-09-25 | 2023-10-31 | 云筑信息科技(成都)有限公司 | 一种增量数据同步的处理方法 |
Non-Patent Citations (1)
Title |
---|
异构环境下数据库增量同步更新机制;王玉标;饶锡如;何盼;;计算机工程与设计;20110316(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117520459A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5613113A (en) | Consistent recreation of events from activity logs | |
US7890466B2 (en) | Techniques for increasing the usefulness of transaction logs | |
US7308456B2 (en) | Method and apparatus for building one or more indexes on data concurrent with manipulation of data | |
US20030037037A1 (en) | Method of storing, maintaining and distributing computer intelligible electronic data | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
US20060004840A1 (en) | Index adding program of relational database, index adding apparatus, and index adding method | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN110489475B (zh) | 一种多源异构数据处理方法、系统及相关装置 | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN110321383A (zh) | 大数据平台数据同步方法、装置、计算机设备及存储介质 | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN111651519A (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
CN111367994A (zh) | 数据库增量数据同步备份方法及系统 | |
CN110765325A (zh) | 一种ceph分布式存储系统的运维分析方法及系统 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
CN111753015B (zh) | 支付清算系统的数据查询方法及装置 | |
CN117520459B (zh) | 一种基于CDC方式的Db2增量同步实现方法 | |
CN117473021B (zh) | 一种基于cdc方式的达梦数据库增量同步实现方法 | |
CN111752927B (zh) | 基于克隆的数据形态生成方法、装置、终端设备及介质 | |
CN111125045B (zh) | 一种轻量级etl处理平台 | |
CN115631866B (zh) | 一种针对医疗大数据采集的快速精准去重方法 | |
CN117149785A (zh) | 一种实现Oracle数据库日志变更处理的方法及装置 | |
CN115658815A (zh) | 基于cdc实现的数据同步的方法 | |
CN112685431B (zh) | 异步缓存方法、装置、系统、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |