CN117493456A - 一种数据同步方法、装置、设备及介质 - Google Patents
一种数据同步方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117493456A CN117493456A CN202311462119.6A CN202311462119A CN117493456A CN 117493456 A CN117493456 A CN 117493456A CN 202311462119 A CN202311462119 A CN 202311462119A CN 117493456 A CN117493456 A CN 117493456A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- memory
- field
- column set
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000008859 change Effects 0.000 claims abstract description 120
- 238000006243 chemical reaction Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000008569 process Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 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/273—Asynchronous replication or reconciliation
-
- 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/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了一种数据同步方法、装置、设备及介质,包括:在监听到内存数据库的数据变更时,确定目标业务数据库;通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;对比所述业务库字段列集合与所述内存字段列集合是否一致;若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据同步方法、装置、设备及介质。
背景技术
当前内存计算使用内存数据库为业务提供加速计算和数据分析服务。内存计算是针对特定场景的一种解决方案,必须考虑其和普通场景之间的兼容关系,尤其是内存数据库和业务数据库(Oracle、Sqlserver等)之间数据一致性关系。比如某一业务A未直接使用内存计算/内存数据库,但使用了另一业务B经过内存计算后的数据,所以需要将业务B计算后的数据从内存数据库同步到业务数据库。
为此,现需要一种内存数据库同步到业务数据库的方案,来实现内存数据库的数据同步至业务数据库。
发明内容
本说明书一个或多个实施例提供了一种数据同步方法、装置、设备及介质,用于解决背景技术提出的技术问题。
本说明书一个或多个实施例采用下述技术方案:
本说明书一个或多个实施例提供的一种数据同步方法,包括:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
本说明书一个或多个实施例提供的一种数据同步装置,所述装置包括:
目标库确定单元,在监听到内存数据库的数据变更时,确定目标业务数据库;
业务字段获取单元,通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
内存字段获取单元,通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比单元,对比所述业务库字段列集合与所述内存字段列集合是否一致;
同步单元,若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
本说明书一个或多个实施例提供的一种数据同步设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例在内存数据库监听到数据变更时,可以通过该方法确定目标业务数据库,即确定数据同步的目标;通过目标业务数据库预先配置的元数据信息,可以获取业务库字段列集合,即获取目标业务数据库中需要同步的字段信息;通过内存数据库预先配置的元数据信息,可以获取内存库字段列集合,即获取内存数据库中数据的字段信息;对比业务库字段列集合和内存字段列集合是否一致,即判断目标业务数据库的字段信息与内存数据库的字段信息是否匹配。若业务库字段列集合与内存字段列集合一致,即目标业务数据库的字段信息与内存数据库的字段信息匹配,可以将内存数据库的变更数据同步至目标业务数据库,实现数据的同步更新,这种方法可以确保内存数据库的数据能够及时同步到业务数据库,保证数据的一致性和准确性,同时,通过预先配置的元数据信息,可以确保同步过程的高效性和准确性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书一个或多个实施例提供的一种数据同步方法的流程示意图;
图2为本说明书一个或多个实施例提供的一种数据同步装置的结构示意图;
图3为本说明书一个或多个实施例提供的一种数据同步设备的结构示意图。
具体实施方式
本说明书实施例提供一种数据同步方法、装置、设备及介质。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1为本说明书一个或多个实施例提供的一种数据同步方法的流程示意图,该流程可以由数据同步系统执行。流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
本说明书实施例的方法流程步骤如下:
S102,在监听到内存数据库的数据变更时,确定目标业务数据库。
在本说明书实施例中,上述监听到内存数据库的数据变更,确定目标业务数据库,实施步骤可以如下:
监听内存数据库的数据变更:建立一个监听程序或者触发器来监测内存数据库中数据的变化,可以使用内存数据库提供的API或者插件来实现该功能。
确定目标业务数据库:当监听到内存数据库的数据变更时,根据预先定义好的规则或者配置文件,确定需要将变更数据同步到哪个目标业务数据库中。这个规则可以根据业务需求或者特定的数据匹配条件来定义。
S104,通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合。
在本说明书实施例中,根据上述获取业务库字段列集合的相关内容,实施步骤可以如下:
获取目标业务数据库的元数据信息:通过连接目标业务数据库,使用数据库的元数据查询功能,获取业务库的表结构信息,包括表名、字段名、数据类型、数据精度等信息。
解析元数据信息:对获取到的元数据信息进行解析,提取出所需的业务库字段信息,包括字段名、数据类型、数据精度等。
构建业务库字段列集合:基于解析得到的业务库字段信息,构建业务库字段列集合。可以使用数据结构(例如列表、字典等)来存储字段信息,确保每个字段的唯一性和完整性。
按需处理字段信息:如果需要对字段信息进行额外处理,比如转换数据类型或精度,根据具体需求进行处理。例如,如果内存数据库和业务数据库的数据类型不完全匹配,可能需要进行数据类型转换。
返回业务库字段列集合:将构建好的业务库字段列集合返回给调用方,作为后续步骤中数据一致性对比的基础数据。
需要注意的是,具体的实施步骤可以根据所使用的目标业务数据库类型和技术实现方式的不同而有所差异。在实施之前,需要了解所使用的目标业务数据库的特点、元数据查询的方法以及具体的需求,以确定使用合适的技术和工具来获取和处理业务库字段信息。
S106,通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合。
在本说明书实施例中,根据上述获取内存库字段列集合的相关内容,实施步骤可以如下:
获取内存数据库的元数据信息:通过查询内存数据库的元数据信息,获取内存库的表结构信息,包括表名、字段名、数据类型、数据精度等。
解析元数据信息:对获取到的元数据信息进行解析,提取出所需的内存库字段信息,包括字段名、数据类型、数据精度等。
构建内存库字段列集合:基于解析得到的内存库字段信息,构建内存库字段列集合。可以使用数据结构(例如列表、字典等)来存储字段信息,确保每个字段的唯一性和完整性。
按需处理字段信息:如果需要对字段信息进行额外处理,比如转换数据类型或精度,根据具体需求进行处理。例如,如果内存数据库和业务数据库的数据类型不完全匹配,可能需要进行数据类型转换。
返回内存库字段列集合:将构建好的内存库字段列集合返回给调用方,作为后续步骤中数据一致性对比的基础数据。
需要注意的是,具体的实施步骤可以根据所使用的内存数据库类型和技术实现方式的不同而有所差异。在实施之前,需要了解所使用的内存数据库的特点、元数据查询的方法以及具体的需求,以确定使用合适的技术和工具来获取和处理内存库字段信息。
S108,对比所述业务库字段列集合与所述内存字段列集合是否一致。
在本说明书实施例中,根据上述对比业务库字段列集合与内存字段列集合的相关内容,实施步骤如下:
对比字段列集合:逐个比较业务库字段列集合和内存字段列集合的字段信息,包括数据精度、数据类型和字段标识。
检查数据精度:对比业务库字段列集合和内存字段列集合中的数据精度,判断它们是否一致。如果数据精度不一致,需要进行数据精度转换或调整。
检查数据类型:对比业务库字段列集合和内存字段列集合中的数据类型,判断它们是否一致。如果数据类型不一致,需要进行数据类型转换或调整。
检查字段标识:对比业务库字段列集合和内存字段列集合中的字段标识,判断它们是否一致。如果字段标识不一致,需要建立字段标识映射关系或调整字段标识。
根据比较结果处理变更数据:根据对比的结果,确定是否需要对变更数据进行处理。如果业务库字段列集合和内存字段列集合的数据精度、数据类型和字段标识完全一致,则可以直接将内存数据库的变更数据同步至目标业务数据库。如果存在不一致情况,则需要进行相应的数据处理,以兼容目标业务数据库的要求。
S110,若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
在本说明书实施例中,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库时,可以先将所述变更数据存储于变更集对象;再将所述变更集对象由所述内存数据库同步至所述目标业务数据库。
在本说明书实施例中,根据上述内容,实现将内存数据库的变更数据同步到目标业务数据库的步骤可以如下:
提取变更数据:将内存数据库中的变更数据提取出来。
同步变更集对象:使用适当的同步机制,将变更数据同步到目标业务数据库。
更新目标业务数据库:根据变更数据,对目标业务数据库进行更新操作。
具体实施步骤可能会因实际情况而有所变化,例如可以使用触发器或者定期轮询等方式来提取变更数据并添加到变更集对象中。同步机制可以选择使用数据库复制、消息队列等技术来实现,具体取决于系统的需求和约束。在进行数据更新时,需要考虑并处理可能发生的冲突和错误情况。
此外,还需要确保在整个同步过程中保持数据的一致性和完整性,例如通过事务管理来确保数据的正确性。
进一步的,本说明书实施例将所述变更数据存储于变更集对象时,可以在所述内存数据库的读触发器中,获取所述变更数据的缓存实体;通过循环迭代的方式,遍历所述缓存实体,从所述缓存实体中获取对应的值;最后,将所述缓存实体对应的值填充到所述变更集对象,并对所述变更集对象设定数据标识与目标业务数据库标识。
本说明书实施例根据上述内容,实现将变更数据存储于变更集对象的步骤可以如下:
创建变更集对象:创建一个变更集对象,用于存储变更数据。
触发器获取缓存实体:在内存数据库的读触发器中,获取变更数据所对应的缓存实体,触发器可以是在读取操作发生时自动触发的代码逻辑。
迭代缓存实体:通过循环迭代的方式,遍历缓存实体,从中获取对应的值。
填充变更集对象:将从缓存实体中获取的值填充到变更集对象中,可以根据缓存实体的结构和变更集对象的定义,逐个字段进行赋值。
设置数据标识与目标业务数据库标识:在变更集对象中设定数据标识和目标业务数据库标识,用于标识这些变更数据的来源和目的地。
需要说明的是,具体实施步骤可能会根据实际情况有所变化,需要根据具体的数据库和触发器实现方式进行调整。在迭代缓存实体和填充变更集对象时,需要注意数据类型的转换和处理,确保数据的准确性和完整性。
此外,还可以考虑并处理可能发生的并发访问和冲突情况,以确保在多个触发器同时触发时数据的一致性。
进一步的,若所述业务库字段列集合与内存字段列集合中数据精度、数据类型与字段标识一项或多项不一致,本说明书实施例可以将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库前,对所述变更数据进行数据处理,得到处理后的变更数据,所述处理后的变更数据兼容所述目标业务数据库。
本说明书实施例根据上述内容,实现将内存数据库的变更数据同步到目标业务数据库的步骤可以如下:
分析字段差异:比较业务库字段列集合和内存字段列集合,找出数据精度、数据类型和字段标识上的差异。
数据处理规则设计:根据字段差异设计数据处理规则,以兼容目标业务数据库。例如,如果数据精度不一致,可以进行数据舍入或补零;如果数据类型不一致,可以进行数据类型转换或格式化;如果字段标识不一致,可以进行字段映射或重命名等处理。
变更数据处理:对变更数据应用所设计的数据处理规则,将其转化为处理后的变更数据。根据差异的具体情况,在处理过程中可能需要进行数据转换、格式调整、舍入、补零等操作。
同步处理后的变更数据:使用适当的同步机制,将处理后的变更数据同步到目标业务数据库。根据具体情况选择合适的同步方式,如数据库复制、数据导入等。
更新目标业务数据库:根据处理后的变更数据对目标业务数据库进行更新操作,确保数据的一致性和完整性。
在实施过程中,需要注意处理后的变更数据与目标业务数据库的兼容性,确保数据的正确性和可用性。同时,需进行适当的测试和验证,以确保处理后的数据与目标业务数据库的期望结果一致。
进一步的,若所述业务库字段列集合与所述内存字段列集合中的数据精度不一致,本说明书实施例对变更数据进行数据处理时,可以根据所述业务库字段列集合中的数据精度对所述变更数据进行数据精度转换。
本说明书实施例根据上述内容,实现对变更数据进行数据处理以进行数据精度转换的步骤可以如下:
分析数据精度差异:比较业务库字段列集合和内存字段列集合中的数据精度差异,确定哪些字段需要进行数据精度转换。
设计数据精度转换规则:根据业务库字段列集合中的数据精度,设计数据精度转换规则。确定如何将内存数据库中的变更数据转换为与业务库字段精度一致的数据。
数据精度转换处理:根据设计的精度转换规则,对变更数据中需要转换精度的字段进行处理。可以采用四舍五入、截断或补零等方式来进行数据精度转换。
更新目标业务数据库:将经过数据精度转换处理后的变更数据更新到目标业务数据库中。确保数据的一致性和完整性。
验证转换结果:进行验证和确认,确保经过数据精度转换后的数据与目标业务数据库的期望结果一致。
在实施过程中,需要注意数据精度转换可能带来的数据损失或改变。确保转换过程不会导致数据丢失、不可逆或引入不正确的数据。
进一步的,若所述业务库字段列集合与所述内存字段列集合中的数据类型不一致,本说明书实施例对变更数据进行数据处理时,可以根据所述业务库字段列集合中的数据类型对所述变更数据进行数据类型转换。
根据上述内容,实现对变更数据进行数据处理以进行数据类型转换的步骤可以如下:
分析数据类型差异:比较业务库字段列集合和内存字段列集合中的数据类型差异,确定哪些字段需要进行数据类型转换。
设计数据类型转换规则:根据业务库字段列集合中的数据类型,设计数据类型转换规则。确定如何将内存数据库中的变更数据转换为与业务库字段类型一致的数据。
数据类型转换处理:根据设计的数据类型转换规则,对变更数据中需要转换类型的字段进行处理,根据数据类型的不同,可以使用合适的方法进行转换,如类型转换函数、格式化操作等。
更新目标业务数据库:将经过数据类型转换处理后的变更数据更新到目标业务数据库中。确保数据的一致性和完整性。
验证转换结果:进行验证和确认,确保经过数据类型转换后的数据与目标业务数据库的期望结果一致。
在实施过程中,需要注意数据类型转换可能带来的数据截断、损失或改变。确保转换过程不会导致数据丢失、不可逆或引入不正确的数据。
进一步的,若所述业务库字段列集合与所述内存字段列集合中的字段标识不一致,本说明书实施例对变更数据进行数据处理时,可以将所述业务库字段列集合中的字段标识与所述内存字段列集合中的字段标识建立映射关系,并将所述映射关系添加至所述变更数据。
根据上述内容,实现对变更数据进行数据处理以建立字段标识映射关系的步骤可以如下:
分析字段标识差异:比较业务库字段列集合和内存字段列集合中的字段标识差异。确定哪些字段需要建立映射关系。
设计字段标识映射关系:根据业务库字段列集合中的字段标识和内存字段列集合中的字段标识,设计字段标识的映射关系。确定业务库字段列集合中的每个字段与内存字段列集合中的字段之间的映射关系。
添加映射关系至变更数据:将设计好的字段标识映射关系添加到变更数据中。可以在变更数据中添加一个字段,用于存储字段标识映射关系。
更新目标业务数据库:将带有字段标识映射关系的变更数据更新到目标业务数据库中。根据映射关系,将变更数据中的字段标识转换为目标业务数据库中对应的字段标识。
验证映射结果:进行验证和确认,确保经过字段标识映射处理后的数据与目标业务数据库的期望结果一致。
在实施过程中,需要确保建立的字段标识映射关系是准确的,以确保数据的正确性和一致性。同时,需进行适当的测试和验证,以确保映射后的数据与目标业务数据库的期望结果一致。
需要说明的是,本说明书实施例提出创建一种支持‘自定义持久化’+‘数据双写同步’的系统,解决了‘根据是否启用内存计算造成的不同功能之间数据一致性’问题,实现了数据可靠的从内存数据到目标业务库回写,并针对数据库差异做了兼容。功能点包括:开启监听内存数据库变更、拿取源库/目标库字段信息、获取需要变更字段信息、构造/发送变更集。下面对主流程简单描述:
通过配置文件监听内存库的数据变更,修改数据后(update、insert、delete)会自动触发‘数据触发器’,并有以下几个步骤
1、首先从内存CacheStoreSession拿取源库(内存库)的字段A集、schema名字、目标库连接(业务库)等信息;
2、从目标库数据库提前预制的数据表(gspmcfconfig)中获取业务库字段列集合B,从内存数据库session配置的元数据信息获取内存库字段列集合A(此session在数据同步全生命周期一直存在),对比A、B集合是否一致(名字、类型、精度),若不一致会报错;若一致,则读触发器中缓存实体(Cache.Entry),从缓存实体中循环迭代所有数据,一个Entry对象就是一条数据,从Entry中取出值,填到变更集对象(ChangeSet)中,给每个变更集赋唯一ID、目标业务编号、数据变更类型。
需要注意:如果某库不支持某一字段,可以允许找一个类似字段做替代,此时允许字段类型不匹配,比如长文本字段。显然,当数据同步必然要对此类字段做兼容,也就是数据列差异类型兼容。兼容分为两个步骤:识别数据库类型、识别字段列类型。通过session读取字段列类型方法(见前文),通过提前预制的公共配置表获取数据库类型。根据获得的数据库类型和列类型,对差异做处理,举个例子:由于本发明中的内存数据库不支持长文本(Text/Clob)字段,所有的字符串一律用字符集varchar表示,向各业务数据库的限制长度的varchar字段做转换时,必须检验长度是否超长,如超长,会做出抛错或截断处理。如果目标数据库字段是Clob/Text等长文本字段,则需要把字符串封装成JDBC Clob/Text对象,然后再做插入。
3、最后以非bean方式获取发送器,发送变更集给“数据同步(消费)框架”,此过程会保证内存库和业务库之间的数据一致性,即实现“数据版本控制”,同步的数据都有一个隐藏版本号(目前是时间戳)用以判断数据新旧。简述过程如下:
(1)内存数据变更后,数据直接落盘确保内存库中的数据是最新的,完全实时
(2)然后触发本发明自定义持久化器,本发明会给当前数据数据增加一个当前时间戳,并发送消息队列。如果发送成功,本发明记录变更集ID、数据量、时间戳到业务库的‘成功日志表’,若失败记录失败堆栈信息、错误信息、数据量等到目标数据库‘失败日志表
(3)消息队列会根据当前时间戳来确定数据消费顺序,更新业务库数据,同时根据版本号为失败数据重传,准实时。
以上是内存数据同步框架主要流程,下面对部分实现细节做补充说明。
针对内存数据库数据变更的监听,本说明书实施例基于公共接口重写了自定义缓存变更事件监听器,使用异步触发机制,读取记录在目标业务库的同步标记,如果当前表开启了同步则会同步,否则直接跳过不同步。开启同步且有数据变更时,每5秒钟或者每变更1000数据触发一次。
综上,本说明书实施例:1)提供对内存数据库数据变更的监听机制、双写机制,按照一定规则归集变更数据;2)对归集到的变更数据按照对应业务编号的构造变更集,校验不匹配字段、兼容字段类型差异、控制版本;3)具有一定校验机制、记录机制,当存在无法处理的严重同步异常时记录错误,为后续框架的数据二次同步做准备。
图2为本说明书一个或多个实施例提供的一种数据同步装置的结构示意图,所述装置包括:目标库确定单元202、业务字段获取单元204、内存字段获取单元206、对比单元208与同步单元210。
目标库确定单元202,在监听到内存数据库的数据变更时,确定目标业务数据库;
业务字段获取单元204,通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
内存字段获取单元206,通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比单元208,对比所述业务库字段列集合与所述内存字段列集合是否一致;
同步单元210,若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
图3为本说明书一个或多个实施例提供的一种数据同步设备的结构示意图,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
2.根据权利要求1所述的方法,其特征在于,所述将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库,包括:
将所述变更数据存储于变更集对象;
将所述变更集对象由所述内存数据库同步至所述目标业务数据库。
3.根据权利要求2所述的方法,其特征在于,所述将所述变更数据存储于变更集对象,包括:
在所述内存数据库的读触发器中,获取所述变更数据的缓存实体;
通过循环迭代的方式,遍历所述缓存实体,从所述缓存实体中获取对应的值;
将所述缓存实体对应的值填充到所述变更集对象,并对所述变更集对象设定数据标识与目标业务数据库标识。
4.根据权利要求1所述的方法,其特征在于,若所述业务库字段列集合与内存字段列集合中数据精度、数据类型与字段标识一项或多项不一致,所述将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库前,所述方法还包括:
对所述变更数据进行数据处理,得到处理后的变更数据,所述处理后的变更数据兼容所述目标业务数据库。
5.根据权利要求4所述的方法,其特征在于,若所述业务库字段列集合与所述内存字段列集合中的数据精度不一致,所述对所述变更数据进行数据处理,包括:
根据所述业务库字段列集合中的数据精度对所述变更数据进行数据精度转换。
6.根据权利要求4所述的方法,其特征在于,若所述业务库字段列集合与所述内存字段列集合中的数据类型不一致,所述对所述变更数据进行数据处理,包括:
根据所述业务库字段列集合中的数据类型对所述变更数据进行数据类型转换。
7.根据权利要求4所述的方法,其特征在于,若所述业务库字段列集合与所述内存字段列集合中的字段标识不一致,所述对所述变更数据进行数据处理,包括:
将所述业务库字段列集合中的字段标识与所述内存字段列集合中的字段标识建立映射关系,并将所述映射关系添加至所述变更数据。
8.一种数据同步装置,其特征在于,所述装置包括:
目标库确定单元,在监听到内存数据库的数据变更时,确定目标业务数据库;
业务字段获取单元,通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
内存字段获取单元,通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比单元,对比所述业务库字段列集合与所述内存字段列集合是否一致;
同步单元,若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
9.一种数据同步设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
10.一种非易失性计算机存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:
在监听到内存数据库的数据变更时,确定目标业务数据库;
通过所述目标业务数据库预先配置的元数据信息中获取业务库字段列集合;
通过所述内存数据库预先配置的元数据信息中获取内存库字段列集合;
对比所述业务库字段列集合与所述内存字段列集合是否一致;
若所述业务库字段列集合与内存字段列集合一致,将所述内存数据库的变更数据由所述内存数据库同步至所述目标业务数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311462119.6A CN117493456A (zh) | 2023-11-03 | 2023-11-03 | 一种数据同步方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311462119.6A CN117493456A (zh) | 2023-11-03 | 2023-11-03 | 一种数据同步方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117493456A true CN117493456A (zh) | 2024-02-02 |
Family
ID=89670259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311462119.6A Pending CN117493456A (zh) | 2023-11-03 | 2023-11-03 | 一种数据同步方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493456A (zh) |
-
2023
- 2023-11-03 CN CN202311462119.6A patent/CN117493456A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258989B (zh) | 数据库迁移评估方法、装置、存储介质和计算机设备 | |
US11361013B2 (en) | System for organizing and fast searching of massive amounts of data | |
CN109739867B (zh) | 一种工业元数据管理方法及系统 | |
US9081829B2 (en) | System for organizing and fast searching of massive amounts of data | |
CN110569214B (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
CN112434059B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
US10042889B2 (en) | Pseudo columns for data retrieval | |
CN112685433B (zh) | 元数据更新方法、装置、电子设备及计算机可读存储介质 | |
US10089334B2 (en) | Grouping of database objects | |
CN113420026B (zh) | 数据库表结构变更方法、装置、设备及存储介质 | |
WO2022199009A1 (zh) | 同步数据的对账方法、装置、设备、介质及程序 | |
CN111930842B (zh) | 一种数据核对方法及装置 | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN114328566A (zh) | 关系图谱的更新方法、装置、介质、设备及生成方法 | |
CN117493456A (zh) | 一种数据同步方法、装置、设备及介质 | |
CN108170867B (zh) | 一种元数据服务系统 | |
CN111125129A (zh) | 数据处理方法和装置、存储介质及处理器 | |
CN113901131A (zh) | 基于索引的链上数据查询方法及装置 | |
CN116881262B (zh) | 一种智能化的多格式数字身份映射方法及系统 | |
CN118152354A (zh) | 慢查询日志处理方法、装置、计算机设备及存储介质 | |
CN114201512A (zh) | 数据逻辑核查数据库及其建立方法与应用 | |
CN114116800A (zh) | 数据逻辑核查方法及系统 | |
Wik | Efficient Synchronization of Tabular Data | |
CN114282260A (zh) | 审核执行ClickhouseDDLSQL语义语法的方法及装置 |
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 |