CN107729366B - 一种普适多源异构大规模数据同步系统 - Google Patents
一种普适多源异构大规模数据同步系统 Download PDFInfo
- Publication number
- CN107729366B CN107729366B CN201710805313.8A CN201710805313A CN107729366B CN 107729366 B CN107729366 B CN 107729366B CN 201710805313 A CN201710805313 A CN 201710805313A CN 107729366 B CN107729366 B CN 107729366B
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- change
- server
- client
- 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
Images
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/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
- 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/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种普适多源异构大规模数据系统,包括同步网络规划管理单元、安装配置单元、分块流水线处理单元、单向同步单元、双向同步单元和同步正确性保障单元。该系统工作在节点数据库层之上和应用逻辑层之下的中间层面。在数据同步过程,客户端根据同步任务计划,将捕获的当地变更信息传输到服务端;服务端接收变更信息并交由异步并行消息处理机制存储在对应的消息队列中;服务端轮询当地消息队列读取待处理的变更信息,然后根据异构数据映射规则实施后继数据变更,以维护源数据副本与目标数据副本同步数据的一致。本发明的系统以并行于同步节点当地应用的方式独立运行,并通过松耦合协同提供互联网分布式多源异构数据同步的松弛事务保障机制。
Description
技术领域
本发明涉及互联网数据处理技术领域,具体涉及一种面向通过互联网通讯协议而联结的广域网络松散计算环境的,适用于多种主流数据系统类型的,可覆盖大批自主管理异构数据源节点的大规模数据同步中间层系统。
背景技术
异构数据是指不同结构的数据,数据的异构性主要体现在:计算机体系结构的异构,数据的物理存储来源于不同体系结构的计算机;操作系统的异构,数据的存储来源于不同的操作系统;数据格式的异构,数据的存储管理机制不同,可以是关系型数据库系统,如Oracle、SQL Server、DB2等,也可以是文件型二维数据,如txt、CSV、XLS等;数据存储地点的异构,数据存储在分散的物理位置上;数据存储的逻辑模型异构,数据分别在不同的业务逻辑中存储和维护,使相同意义的数据存在表现的异构,如独立的销售系统和独立的采购系统中存在部门的编码不一致等。异构数据往往不是一个层面的异构,而是在多个层面上都存在异构。此外,移动终端(如手机、PDA、iPad和手提电脑等)的广泛应用产生了大量的移动终端数据个体,包括通讯录、日历、文件等,其存储结构的逻辑或物理实现可能是异构的,进而在移动终端的数据备份以及移动终端间的数据同步方面,存在异构数据同步需求。另外,云计算大规模应用所产生的海量数据也存在实时数据复制的需求,这方面应用也涉及大量异构数据。
现有异构数据同步是在源数据库和目标数据库之间通过数据传输来实现,由于数据结构不同、种类繁杂,或者语义相同、数据表达形式不同,使得海量异构数据的同步数据吞吐量有限,异构数据同步的效率较低,同步技术方案存在一定的技术局限性。例如,当在不可靠的互联网通讯环境和松散耦合自治的应用之间的同步时,对于吞吐量较大的数据同步可能出现不正常的同步结束的情况,导致数据同步不成功。满足当前多源异构大规模数据同步需求的实用级解决方案,最好是通用、可靠和高效的,既相对独立于应用层逻辑又不涉及操作系统底层的,且不依赖数据库产品和计算机操作系统的中间层松耦合软件组件系统。
发明内容
本发明要解决的技术问题在于克服现有海量异构数据的同步方法数据吞吐量有限的缺陷。
根据第一方面,本发明的一个实施例提供一种普适多源异构大规模数据同步系统,包括:同步网络规划管理单元,用于构建树状结构的同步拓扑结构,所述同步拓扑结构包括多个由一对相邻节点构成的同步对,所述同步对包括客户端和服务端;
安装配置单元,用于在服务端执行安装脚本以创建异构数据映射表、同步日志表、消息队列、消息队列监控线程和数据更新线程池,以及用于在客户端执行安装脚本以创建变更日志表、变更事件监控线程和同步线程池;
分块流水线处理单元,用于将客户端发送的参与同步的源数据端的变更数据划分为若干变更块,并根据网络状况和服务端的处理能力分批次依序向服务端传输,每发送完一批变更块即锁定发送过程直至服务端返回接收确认消息后再恢复后继批次的变更块的反送,循环反复直至完成全部变更志的发送;以及用于服务端将接收到的变更块存入对应的消息队列;
单向同步单元,用于当客户端的变更事件监控线程监控变更日志表不为空,则调度客户端的若干同步线程启动数据同步作业;以及用于当服务端的消息队列监控线程监控消息队列不为空,则调度服务端的若干数据更新线程进行数据更新作业;
双向同步单元,用于顺序执行的两个方向相反的单向同步以完成双向同步;
同步正确性保障单元,用于在客户端将源数据端的数据变更事件依发生的先后时序不重复记载在变更日志表中,以及用于在服务端依次接收源数据端的数据变更,分别按原顺序落实各个数据变更并记载在同步日志表中。
优选地,所述客户端包括用于实现全量/增量数据同步的中间层软件组件;所述服务端包括用于接收客户端发送源数据端数据变更,并负责将所接收到的数据变更更新到目标数据端的软件组件;所述源数据端包括在数据同步中作为数据变更来源的数据副本所在的数据库或文件目录;所述目标数据端包括在数据同步中响应来自源数据端的数据变更的数据副本所在的数据库或文件目录。
优选地,对于所述树状结构的同步拓扑结构的中间节点,同时配有分属于不同的同步对的客户端和服务端。
优选地,所述目标数据端的变更日志表用于保存数据变更信息。
优选地,所述安装配置单元还包括同步配置子单元,所述同步配置子单元用于控制客户端获取参与同步的源数据端的元数据信息并传输给服务端,控制服务端根据所述元数据信息构建并存储异构数据映射规则,控制客户端从服务端获取异构数据映射规则和在源数据端为每个参与同步的数据表创建插入、删除和更改三种变更捕获触发器,以及控制服务端提供可视化配置工具维护或调整异构数据映射规则。
优选地,所述安装配置单元在服务端预创建的数据更新线程池中包含预设个数的数据更新线程,所述目标数据端中每一个数据表的数据更新由一个数据更新线程负责;所述安装配置单元在客户端预创建的同步线程池中包含根据所述元数据信息创建的预设个数的数据同步线程,所述源数据端中每一个数据表的增量或全量同步由一个或一组同步线程负责。
优选地,所述单向同步单元还用于每当源数据端发生数据变更时,控制所述变更捕获触发器捕获该数据变更事件,并将对应的数据变更信息存储在客户端的变更日志表;所述数据变更信息包含经受数据变更的数据表的表名、数据记录的主键值和变更操作类型。
优选地,所述单向同步单元还用于控制客户端的同步线程根据每个经受数据变更的数据表的同步预设值将其对应的变更数据或同步操作记录划分为多个变更块,将每个所述变更块封装为SyncML消息包并依序发送到服务端。
优选地,所述单向同步单元还用于控制服务端在数据同步过程中,对每个SyncML消息包的会话请求,分配一个数据接收线程以接收客户端上传的SyncML消息包;所述数据接收线程用于接收SyncML消息包并解析还原出变更块,以及将所述解析出的变更块存储到指定的消息队列,并在存储成功后向客户端反馈同步成功信息。
优选地,所述单向同步单元还用于控制客户端的同步线程将变更日志表与经受数据变更的数据表关联,按所述变更日志表记录插入的时间正排序,读取所述变更日志表的所有变更的数据记录;以及在服务端的接收变更块并返回确认信息后,控制所述同步线程将变更块所对应的变更日志表中的变更日志记录删除。
优选地,所述单向同步单元还用于控制服务端的数据更新线程从所述消息队列读取变更块,根据所述异构数据映射规则实施当地数据变更,使得目标数据端的目标数据副本与源数据端的源数据副本的同步数据一致。
优选地,所述单向同步单元还用于控制客户端的同步线程对待发送的变更块做Hash计算,并将其Hash值和变更块一起封装成SyncML消息包;以及控制服务端的数据接收线程在接收到所述SyncML消息包后,要对解析出的变更块做Hash校验,当校验成功时将所述变更块存入消息队列,否则,返回同步失败消息。
优选地,所述单向同步单元还用于控制所述变更块的大小,以及控制客户端的同步线程在每发送一个变更块后进入锁定等待状态,直至服务端返回确认消息或者超时。
优选地,所述安装配置单元在服务端创建的异构数据映射表中的异构数据映射规则,包括同步的源数据端和目标数据端的数据表名、主键或虚拟主键、字段名、字段数据类型、字段数据长度和字段映射关系。
优选地,所述安装配置单元还用于构建所述异构数据映射规则中的虚拟主键;当源数据端的数据表未定义主键时,所述安装配置单元控制服务端根据所述元数据信息中的字段信息,为所述数据表构建一个可唯一标识其数据记录的虚拟主键,并把所述虚拟主键的构建规则存储在服务端。
优选地,所述安装配置单元还用于检查服务端有无对应客户端的消息队列;当服务端没有对应客户端的消息队列时,所述安装配置单元控制服务端为该客户端创建对应的消息队列,所述消息队列用于暂时存储服务端接收的对应客户端的变更块。
根据第二方面,本发明的一个实施例提供一种普适多源异构大规模数据同步方法,包括:获取需同步的异构数据;根据所述异构数据,获取至少一个数据表,所述数据表是根据映射规则创建的包括所述异构数据标识信息的表;根据每个所述数据表分别建立数据同步线程;所述数据同步线程分别根据预设值将至少一个数据表划分为多个数据块。
优选地,所述异构数据包括增量异构数据,所述获取需同步的异构数据,包括:创建数据变更日志表,所述数据变更日志表包括字段描述、字段名称及字段类型;通过触发器捕获数据的变更事件信息;将所述数据的变更事件信息记录在所述数据变更日志表中。
优选地,普适多源异构大规模数据同步方法还包括:将所述数据块上传至服务端。
优选地,所述数据块被封装为消息包。
根据第三方面,本发明的一个实施例提供一种普适多源异构大规模数据同步方法,包括:获取第二方面实施例所述的数据块;将所述数据块放入消息队列;从所述消息队列中取出数据块同步至目标数据库。
优选地,所述获取第二方面实施例所述的数据块包括:接收客户端上传的消息包,所述消息包包括多个数据块;将所述消息包解析为数据块。
优选地,在所述从所述消息队列中取出数据块同步至目标数据库的步骤之前,包括:判断所述数据块是否包括主键值;当所述数据块不包括主键值时,根据所述数据块多个属性列的值构建虚拟主键。
根据第四方面,本发明的一个实施例提供一种普适多源异构大规模数据同步装置,包括:异构数据获取单元,用于获取需同步的异构数据;数据表获取单元,用于根据所述异构数据,获取至少一个数据表,所述数据表是根据映射规则创建的包括所述异构数据标识信息的表;线程建立单元,用于根据每个所述数据表分别建立数据同步线程;数据块划分单元,用于所述数据同步线程分别根据预设值将至少一个数据表划分为多个数据块。
优选地,所述异构数据包括增量异构数据,所述异构数据获取单元包括:变更日志表创建子单元,用于创建数据变更日志表,所述数据变更日志表包括字段描述、字段名称及字段类型;数据变更捕获子单元,用于通过触发器捕获数据的变更事件信息;数据变更记录子单元,用于将所述数据的变更事件信息记录在所述数据变更日志表中。
优选地,普适多源异构大规模数据同步装置还包括:数据上传单元,用于将所述数据块上传至服务端。
优选地,所述数据上传单元还包括封装子单元,用于将所述数据块封装为消息包。
根据第五方面,本发明的一个实施例提供一种普适多源异构大规模数据同步装置,包括:获取单元,用于获取上述数据块;放入消息队列单元,用于将所述数据块放入消息队列;同步单元,用于从所述消息队列中取出数据块同步至目标数据库。
优选地,所述获取单元包括:接收子单元,用于接收客户端上传的消息包,所述消息包包括多个数据块;解析子单元,用于将所述消息包解析为数据块。
优选地,普适多源异构大规模数据同步装置还包括:判断单元,用于判断所述数据块是否包括主键值;虚拟主键构建单元,用于当所述数据块不包括主键值时,根据所述数据块多个属性列的值构建虚拟主键。
根据第六方面,本发明的一个实施例提供一种客户端,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如第二方面实施例所述的异构数据同步方法。
根据第七方面,本发明的一个实施例提供一种服务端,包括:无线网络接口、处理器及存储器,所述无线网络接口、处理器及存储器之间通过总线互相连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而实现如第三方面实施例所述的异构数据同步方法。
本发明技术方案,具有如下优点:
1.本发明提供一种普适多源异构大规模数据同步系统,分布在参与同步的各个数据节点,即计算机系统上,并工作在节点数据库层之上和应用逻辑层之下的中间层面。在数据同步过程,客户端根据同步任务计划,将捕获的当地变更信息通过SyncML协议传输到服务端;服务端接收上述变更信息并交由异步并行消息处理机制存储在对应的消息队列中。服务端轮询当地消息队列读取待处理的变更信息,然后根据异构数据映射规则实施后继数据变更,以维护源数据副本与目标数据副本同步数据的一致。本发明的系统以并行于同步节点当地应用的方式独立运行,并通过松耦合协同提供互联网分布式多源异构数据同步的松弛事务保障机制。
2.本发明提供一种普适多源异构大规模数据同步方法及装置和客户端、服务端,通过在客户端获取需同步的异构数据的元数据表;根据所述元数据表,通过构建源数据端和目标数据端的数据映射规则,根据每个数据表分别建立数据同步线程;所述数据同步线程分别根据预设值将至少一个数据表划分为多个数据块。同步作业调度实现了单节点多线程并行处理,可为每个同步数据集提供专用同步线程;同步线程可根据预设的同步安排,对同步数据对象做水平分割,形成更细粒度的多个数据块,在此数据分块的基础上,实现可靠的同步事务前进机制。在服务端端获取上述数据块;将所述数据块放入消息队列;从所述消息队列中取出数据块同步至目标数据库。在服务端端通过引入消息队列机制,实现数据更新并行处理优化。以统一的SyncML同步模式,在移动网和互联网上实现大型关系型数据库、计算机文档对象、手机文档对象的通用数据同步机制。本发明通过客户端并发多线程调度、大数据集水平分割、服务端异步并行处理的组合措施,在无特定通讯保障的广域网上提供了实用级的异构数据同步服务。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种普适多源异构大规模数据同步系统的结构示意图;
图2为一种普适多源异构大规模数据同步系统的数据同步处理流程图;
图3为一种异构数据同步方法的流程图;
图4为一种异构数据同步方法的流程图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本实施例提供一种普适多源异构大规模数据同步系统,如图1所示,包括:同步网络规划管理单元11、安装配置单元12、分块流水线处理单元13、单向同步单元14、双向同步单元15和同步正确性保障单元16。
同步网络规划管理单元11,用于构建树状结构的同步拓扑结构,所述同步拓扑结构包括多个由一对相邻节点构成的同步对,所述同步对包括客户端(相对的下级节点)和服务端(相对的上级节点),同步树的中间节点(除叶和根节点之外的节点)可以同时配有客户端和服务端两种角色,但它们分属于不同的同步对。所述客户端包括用于实现全量/增量数据同步的中间层软件组件;所述服务端包括用于接收客户端发送源数据端数据变更,并负责将所接收到的数据变更更新到目标数据端的软件组件;客户端和服务端可安装部署在同一台计算机上,各自在其所处的同步对的同步作业中运行其功能;所述源数据端包括在数据同步中作为数据变更来源的数据副本所在的数据库或文件目录;所述目标数据端包括在数据同步中响应来自源数据端的数据变更的数据副本所在的数据库或文件目录。
系统为同步树的(客户端→服务端)单向数据同步提供扩散与非扩散两种配置策略。扩散策略会把数据变更信息记入目标数据端(当前同步对的服务端)的变更日志表,非扩散策略则不做此记录操作。
安装配置单元12,用于在服务端执行安装脚本以创建异构数据映射表、同步监控表、同步日志表、消息队列、消息队列监控线程和数据更新线程池,以及用于在客户端执行安装脚本以创建同步配置表、变更日志表、变更事件监控线程和同步线程池。
服务端构建的异构数据映射规则包括同步的源数据端和目标数据端的数据表名、主键或“虚拟主键”、字段名、字段数据类型、字段数据长度、字段映射关系等。在服务端构建异构数据映射规则时,若源数据端的数据表未定义主键,服务端则根据所述元数据信息中的字段信息,使用“虚拟主键”算法为数据表构建一个可唯一标识其数据记录的“虚拟主键”,并把“虚拟主键”构建规则存储在服务端。“虚拟主键”算法通过筛选所述数据表的主键字段构建“虚拟主键”。此外,服务端还会检查有无该客户端对应的消息队列,若无,则为该客户端创建对应的消息队列。消息队列用于暂时存储服务端接收的对应客户端的变更块。
客户端获取参与同步的源数据端的元数据信息(源数据端参与同步的所有数据表的结构数据)并传输给服务端;服务端根据所述元数据信息,自动构建并存储“源数据端”←→“目标数据端”的异构数据映射规则。客户端从服务端获取异构数据映射规则,根据该规则和变更捕获触发器(简称“触发器”)在源数据端为每个参与同步的数据表创建“插入”、“删除”和“更改”三种变更捕获触发器。为了方便查看和修改异构数据映射规则,本实施例在服务端提供可视化配置工具以维护或调整异构数据映射规则。
具体地,客户端预创建同步线程池的具体方法为根据所述元数据信息创建若干(预设个数)数据同步线程。一个数据表的增量或全量同步由一个(组)同步线程负责。服务端预创建更新线程池的具体方法为创建若干(预设个数)数据更新线程。一个数据表的数据更新由一个数据更新线程负责。
分块流水线处理单元13,用于将客户端发送的参与同步的源数据端的变更数据划分为若干变更块,并根据网络状况和服务端的处理能力分批次依序向服务端传输,每发送完一批变更块即锁定发送过程直至服务端返回接收确认消息后再恢复后继批次的变更块的反送,循环反复直至完成全部变更志的发送;以及用于服务端将接收到的变更块存入对应的消息队列。
单向同步单元14,用于当客户端的变更事件监控线程监控变更日志表不为空,则调度客户端的若干同步线程启动数据同步作业;以及用于当服务端的消息队列监控线程监控消息队列不为空,则调度服务端的若干数据更新线程进行数据更新作业。分块流水线处理单元13和单向同步单元14协同作业可完成一次数据同步,其数据处理过程如图2所示。
每当源数据端发生数据变更时,触发器将捕获该数据变更事件,并将数据变更信息存储在客户端的数据变更日志表。数据变更信息包含其对应的经受数据变更的数据表的表名、数据记录的主键值、变更操作类型等。客户端的变更事件监控线程通过监控变更日志表即可发现源数据端的数据变更,进一步客户端通过同步线程发起数据同步作业。同步线程根据每个数据表的同步预设值将其待同步的全部变更数据或同步操作记录划分为多个变更块,并将每个变更块封装为SyncML消息包,依序发送到服务端。服务端在数据同步过程中,对每个SyncML消息包的会话请求,分配一个数据接收线程负责接收客户端上传的SyncML消息包。数据接收线程接收SyncML消息包并解析还原出变更块,将其交由消息处理机制存储到指定的消息队列,并在存储成功后向客户端反馈同步成功信息(确认消息)。服务端的消息队列监控线程监控消息队列是否为空,若不为空,则通知服务端调度若干数据更新线程进行数据更新作业。服务端的数据更新线程以异步并行方式做后继处理,即从消息队列读取变更块,根据异构数据映射规则实施当地数据变更,使得目标数据副本(当地)与源数据副本的同步数据一致。
客户端的数据同步线程在读取数据表变更数据时,数据同步线程首先将数据变更日志表与数据表关联,按数据变更日志表记录插入的时间正排序,读取该数据表的所有变更的数据记录;其次,数据同步线程通过SyncML通用协议把SyncML消息包传送到服务端;最后,在服务端返回确认(收到)消息后,数据同步线程将SyncML消息包中的变更块所对应的数据变更日志记录删除。
本实施例的异构数据同步系统,适用于增量同步和全量同步。其中,增量同步指的是仅将上次成功同步以来新产生的当地数据变更同步到目标数据端。实施增量同步时,客户端轮询当地变更日志表,将待同步的数据变更传送到服务端,并在服务端返回同步确认消息后删除当地对应的变更日志记录。全量同步指的是将源数据端的同步数据表,即参与数据同步的数据表的全表数据同步到目标数据端。本实施例中的全量同步,包括两种类型,即合并同步和刷新同步。刷新同步在开始更新数据到目标数据表前,会完全擦除目标数据端的数据表,通常用于重置同步对的同步任务。合并同步在开始更新数据到目标数据表前,会检查数据记录是否已存在目标表中,若不存在,则执行Insert操作,否则执行Update操作。需要说明的是,在实施全量同步期间,源数据端上已激活的触发器可捕获并记载此期间所有发生的当地变更,以便后续的增量同步作业处理。
双向同步单元15,用于顺序执行的两个方向相反的单向同步以完成双向同步,即C←→S等价于C→S和S→C。其中,C和S分别代表客户端和服务端,箭头→或←代表同步方面(变更块传送的方向),以下同。
同步正确性保障单元16,用于在客户端将源数据端的数据变更事件依发生的先后时序不重复记载在变更日志表中,以及用于在服务端依次接收源数据端的数据变更,分别按原顺序落实各个数据变更并记载在同步日志表中。在本实施例中,无论是C→S或S→C的数据同步,均由客户端发起,因此,在本实施例中由客户端完成查验和管理参与同步的数据表触发器,例如客户端负责触发器的创建、更改、激活等管理以及一致性查验。为了进一步保障数据同步的正确性,本实施例的增量同步禁止单点多进程同步,即禁止多个客户端同时对同一个源数据端进行数据同步,以避免同一数据表的同步变更出现错序。
此外,本实施例的系统还提供通用的“多属性主键←→单属性主键”映射规则,以记载单一以及非单一属性主键数据表的变更事件,此类变更事件可记载在客户端的变更日志表中。
由于在本实施例中,数据同步均由客户端发起,为实现对数据同步的统一监管,本实施例还提供针对各个客户端的同步调度以及同步状态实时监控单元。
为了提高数据同步的可靠性和安全性,本实施例提供“乐观”和“谨慎”两种同步性能选项。在“谨慎”选项下,需对待发送的变更块做Hash计算,并将其Hash值和变更块一起封装成SyncML消息包;接收方在接收到SyncML消息包后,要对解释出的变更块做Hash校验,即重算变更块的Hash值,并与发送过来的Hash值比较,如两者相同,则通过校验;如校验成功,才将变更块存入消息队列,否则,返回同步失败消息。在“乐观”选项下,略去上述涉及Hash值的处理。“乐观”选项适用于对同步传输的可靠性有比较乐观预期且倾向于追求更高的同步性能的应用场景,例如同步通讯网络质量较好的情况;相反,“谨慎”选项适用于对同步传输的可靠性有不太乐观,甚至悲观预期,或者倾向于更加谨慎地校验同步传输结果的正确性的应用场景,例如同步通讯网络质量不太好的情况。
本实施例以变更块为同步消息单位发送,并采用块锁步发送机制,即每发送一批变更块就锁定等待,直至接收方返回确认消息或者超时。变更块越大,传输效率就越高,但若出现传输故障,需要重传整个变更块,其重传代价也越高。本实施例提供调配变更块大小(其包含多少条变更数据或变更操作记录)的功能,以便调适大规模数据同步的效率和可靠性。若所应用的网络环境,含端点系统环境,通讯可靠性高,则调大同步的变更块,若所应用的网络环境,含端点系统环境,通讯可靠性低,则调小同步的变更块。无锁步发送机制可视为锁步发送机制的一个特例,其相当于将变更块调到最大,即将全部发送内容作为一个变更块。
实施例2
本实施例提供一种异构数据同步方法,适用于如实施例1所述的普适多源异构大规模数据同步系统,下面以客户端为例介绍该异构数据同步方法,如图3所示,包括如下步骤:
S11:同步配置初始化阶段。客户端获取源数据端参与同步数据表的元数据信息并传输给服务端。然后,客户端创建若干(预设值)数据同步线程,以及根据从服务端获取的异构数据映射规则和变更捕获规则模板,在源数据端创建“删除”、“插入”和“更改”三种变更捕获触发器(统称“触发器”)。
S12:变更事件触发阶段。在变更事件触发时,触发器将变更事件信息存入当地数据变更日志表。变更事件信息包含所涉及的数据表的表名、数据记录的主键值、变更类型以及变更时间等信息。
S13:数据同步阶段。变更事件监控线程轮询变更日志表,确认变更日志表是否为空;若变更日志表不为空,则通知客户端调度若干数据同步线程进行所涉及数据表的数据同步作业。所述数据同步线程分别根据从服务端获取的异构数据映射规则及预设值将至少一个数据表的变更集划分为多个变更块。松散耦合自治应用之间的海量异构数据同步,在不可靠互联网通讯环境场景下,发生意外夭折是不能忽略的,因此需要提供断点续恢复同步机制,即:将同步过程划分成若干段,每段结束时产生一个保存点来保存当前同步进度情况,以备在同步夭折后恢复同步时确定重拾同步过程的位置。
每轮数据同步开始前,同步线程会统计所要同步的数据表的总记录数,并把数据表的表名以及拟同步的总记录数告知服务端,然后启动本轮同步过程。同步线程在发送本轮最后一个变更块时,告知服务端此为本轮同步会话发送的最后一个变更块;服务端接收该变更块后,结束本轮同步。
优选的,上述步骤S11包括以下子步骤:
S111:创建数据变更日志表。变更日志表包括变更所涉及的数据表名、数据记录的主键值、变更事件类型和变更时间等信息。具体地,变更日志表如表1所示(适用于客户端和服务端):
表1
字段描述 | 字段名 | 字段类型 |
记录标识号 | CHG_SEQ_NUM | INTEGER |
变更记录时间 | CHG_TIMESTAMP | TIMESTAMP |
同步发起端URI | SOURCE_URI | VARchar(256) |
同步发起端数据表 | SOURCE_TABLE | VARchar(128) |
变更记录的主键值 | SOURCE_KEY_VALUE | VARchar(128) |
变更类型 | CHG_TYPE | char(1) |
S112:通过触发器捕获数据变更事件。捕获每一行数据记录的UPDATE(更改)、INSERT(插入)和DELETE(删除)等操作事件。
S113:将数据变更事件记录在变更日志表中。预设变更日志表和触发器,能在不干涉上层应用程序、不影响正常的数据库吞吐的情况下,实现增量数据的同步。
下面以服务端为例介绍实施例2中的异构数据同步方法,如图4所示,包括如下步骤:
S21:同步配置初始化阶段。服务端根据客户端上传元数据信息,自动构建并存储源数据端和目标数据端之间的异构数据映射规则;服务端创建若干(预设值)数据更新线程。
本实施例采用Java语言编写中间层系统,使用JDBC(Java DataBaseConnectivity,Java数据库连接)规范实现统一的数据库访问接口。特别地,我们采用建立各种异构关系数据库数据类型至统一的Java数据类型(作为中间数据类型)的方法,为Oracle、MS SQL Server和Sybase ASE 15等异构主流数据库产品之间建立数据类型的映射关系,即预设的映射规则。采用Java数据类型作为中间数据库类型,也保证客户端与服务端之间的传输解析不易出错。
Java数据类型与常见的其它异构数据类型的部分映射如表2所示。
表2
在构建实际异构数据映射规则时,上述各种异构数据类型与Java数据类型之间的映射关系将作为媒介,用以确定同步双方的具体数据类型对应。
优选地,在上述步骤S21构建异构映射规则过程中,还包括:判断所涉及的数据表是否定义了主键。若所述数据表未定义主键时,则为其构建虚拟主键来唯一标识其数据记录,以实施保障同步过程。
具体地,构建虚拟主键的算法如下:虚拟主键=str(F1)+ASII(11)+str(F2)+…+ASII(11)+str(Fk),其中,F1、F2、…和Fk为可联合构成主键的字段,str(X)函数计算变量X的字符串值,“+”为字符串连接运行符,ASII(11)代表ASCII(American Standard Code forInformation Interchange)十进制编码值为11的字符,此为一个不可显示的字符(称“垂直制表符”),它不可能会出现在文字内容中。
S22:数据接收阶段。为客户端每个上传SyncML消息包的会话请求,服务端分配一个数据接收线程来负责消息包的接收、解析,并把解析还原出的变更块交由消息处理机制存入(该客户端)对应的消息队列。为提高同步过程的整体效率,本发明在服务端嵌入异步并行消息处理机制。服务端的数据接收线程接收到来自客户端的SyncML消息包后,只做简单的解析和处理,即调用消息处理机制将其解释出来的变更块存入队列,就向客户端返回确认消息以示意客户端可继续发送其它SyncML消息包,而不必等待目标数据端完成同步变更。而存在消息队列中的变更块,会交由服务端的同步处理模块异步地做并行处理,即多道线程同时进行处理。这种处理方式,加快了客户端消息发送进度,另外,由于服务端不必马上完成全程处理,使得服务端的整体处理压力得到缓解。在大规模数据同步应用中,服务端通常是性能瓶颈。
S23:数据更新阶段。消息队列监控线程监控消息队列是否为空,若队列不为空,则通知服务端调度若干数据更新线程进行队列对应同步数据表的数据更新作业。数据更新线程用于从消息队列读取变更块更新到目标数据端。数据更新线程从消息队列中读取变更块,然后根据异构数据映射规则,把变更块更新到目标数据端的对应的同步数据表。
优选地,上述步骤S22包括以下子步骤:
S221:接收客户端上传的消息包,所述消息包含有一个或多个变更块。
S222:将消息包解析为变更块。
为得到更广泛的的应用,本发明是基于IT业界通用的SyncML标准协议进行数据同步。SyncML最初作为一种开放的、平台无关的信息同步标准协议提出,现属于OMA(开放移动联盟)组织的Data Synchronization and Device Management协议族,可在兼容的设备、程序及网络进行数据同步,使任何设备或程序可以获得一致的数据。但是,SyncML只提供基本的通讯框架,远不足以应对大规模数据同步应用实用级的产品需求,例如,它未提供可靠性保障机制,这在实用级的应用中是至关重要的。为了填补上述不足,实施例1的普适多源异构大规模数据同步系统设置的同步正确性保障单元16,以保障异构数据同步的可靠性。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (16)
1.一种普适多源异构大规模数据同步系统,其特征在于,包括:
同步网络规划管理单元,用于构建树状结构的同步拓扑结构,所述同步拓扑结构包括多个由一对相邻节点构成的同步对,所述同步对包括客户端和服务端;
安装配置单元,用于在服务端执行安装脚本以创建异构数据映射表、同步日志表、消息队列、消息队列监控线程和数据更新线程池,以及用于在客户端执行安装脚本以创建变更日志表、变更事件监控线程和同步线程池;
分块流水线处理单元,用于将客户端发送的参与同步的源数据端的变更数据划分为若干变更块,并根据网络状况和服务端的处理能力分批次依序向服务端传输,每发送完一批变更块即锁定发送过程直至服务端返回接收确认消息后再恢复后继批次的变更块的发送,循环反复直至完成全部变更块的发送;以及用于服务端将接收到的变更块存入对应的消息队列;
单向同步单元,用于当客户端的变更事件监控线程监控到变更日志表不为空,则调度客户端的若干同步线程启动数据同步作业;以及用于当服务端的消息队列监控线程监控到消息队列不为空,则调度服务端的若干数据更新线程进行数据更新作业;
双向同步单元,用于顺序执行的两个方向相反的单向同步以完成双向同步;
同步正确性保障单元,用于在客户端将源数据端的数据变更事件依发生的先后时序不重复记载在变更日志表中,以及用于在服务端依次接收源数据端的数据变更,分别按原顺序落实各个数据变更并记载在同步日志表中。
2.如权利要求1所述的一种普适多源异构大规模数据同步系统,其特征在于,所述客户端包括用于实现全量/增量数据同步的中间层软件组件;所述服务端包括用于接收客户端发送的源数据端的数据变更,并负责将所接收到的数据变更更新到目标数据端的软件组件;所述源数据端包括在数据同步中作为数据变更来源的数据副本所在的数据库或文件目录;所述目标数据端包括在数据同步中响应来自源数据端的数据变更的数据副本所在的数据库或文件目录。
3.如权利要求1所述的一种普适多源异构大规模数据同步系统,其特征在于,对于所述树状结构的同步拓扑结构的中间节点,同时配有分属于不同的同步对的客户端和服务端。
4.如权利要求2所述的一种普适多源异构大规模数据同步系统,其特征在于,所述源数据端的变更日志表用于保存数据变更信息。
5.如权利要求2所述的一种普适多源异构大规模数据同步系统,其特征在于,所述安装配置单元还包括同步配置子单元,所述同步配置子单元用于控制客户端获取参与同步的源数据端的元数据信息并传输给服务端,控制服务端根据所述元数据信息构建并存储异构数据映射规则,控制客户端从服务端获取异构数据映射规则和在源数据端为每个参与同步的数据表创建插入、删除和更改三种变更捕获触发器,以及控制服务端提供可视化配置工具维护或调整异构数据映射规则。
6.如权利要求5所述的一种普适多源异构大规模数据同步系统,其特征在于,所述安装配置单元在服务端预创建的数据更新线程池中包含预设个数的数据更新线程,所述目标数据端中每一个数据表的数据更新由一个数据更新线程负责;所述安装配置单元在客户端预创建的同步线程池中包含根据所述元数据信息创建的预设个数的数据同步线程,所述源数据端中每一个数据表的增量或全量同步由一个或一组同步线程负责。
7.如权利要求5所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于每当源数据端发生数据变更时,控制所述变更捕获触发器捕获该数据变更事件,并将对应的数据变更信息存储在客户端的变更日志表;所述数据变更信息包含经受数据变更的数据表的表名、数据记录的主键值和变更操作类型。
8.如权利要求7所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于控制客户端的同步线程根据每个经受数据变更的数据表的同步预设值将其对应的变更数据或同步操作记录划分为多个变更块,将每个所述变更块封装为SyncML消息包并依序发送到服务端。
9.如权利要求8所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于控制服务端在数据同步过程中,对每个SyncML消息包的会话请求,分配一个数据接收线程以接收客户端上传的SyncML消息包;所述数据接收线程用于接收SyncML消息包并解析还原出变更块,以及将所述解析出的变更块存储到指定的消息队列,并在存储成功后向客户端反馈同步成功信息。
10.如权利要求9所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于控制客户端的同步线程将变更日志表与经受数据变更的数据表关联,按所述变更日志表记录插入的时间正排序,读取所述变更日志表的所有变更的数据记录;以及在服务端接收变更块并返回确认信息后,控制所述同步线程将变更块所对应的变更日志表中的变更日志记录删除。
11.如权利要求9所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于控制服务端的数据更新线程从所述消息队列读取变更块,根据所述异构数据映射规则实施当地数据变更,使得目标数据端的目标数据副本与源数据端的源数据副本的同步数据一致。
12.如权利要求9所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于控制客户端的同步线程对待发送的变更块做Hash计算,并将其Hash值和变更块一起封装成SyncML消息包;以及控制服务端的数据接收线程在接收到所述SyncML消息包后,要对解析出的变更块做Hash校验,当校验成功时将所述变更块存入消息队列,否则,返回同步失败消息。
13.如权利要求9所述的一种普适多源异构大规模数据同步系统,其特征在于,所述单向同步单元还用于控制所述变更块的大小,以及控制客户端的同步线程在每发送一个变更块后进入锁定等待状态,直至服务端返回确认消息或者超时。
14.如权利要求5所述的一种普适多源异构大规模数据同步系统,其特征在于,所述安装配置单元在服务端创建的异构数据映射表中的异构数据映射规则,包括同步的源数据端和目标数据端的数据表名、主键或虚拟主键、字段名、字段数据类型、字段数据长度和字段映射关系。
15.如权利要求14所述的一种普适多源异构大规模数据同步系统,其特征在于,所述安装配置单元还用于构建所述异构数据映射规则中的虚拟主键;当源数据端的数据表未定义主键时,所述安装配置单元控制服务端根据所述元数据信息中的字段信息,为所述数据表构建一个可唯一标识其数据记录的虚拟主键,并把所述虚拟主键的构建规则存储在服务端。
16.如权利要求1所述的一种普适多源异构大规模数据同步系统,其特征在于,所述安装配置单元还用于检查服务端有无对应客户端的消息队列;当服务端没有对应客户端的消息队列时,所述安装配置单元控制服务端为该客户端创建对应的消息队列,所述消息队列用于暂时存储服务端接收的对应客户端的变更块。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710805313.8A CN107729366B (zh) | 2017-09-08 | 2017-09-08 | 一种普适多源异构大规模数据同步系统 |
PCT/CN2018/076485 WO2019047479A1 (zh) | 2017-09-08 | 2018-02-12 | 一种普适多源异构大规模数据同步系统 |
US16/812,243 US11500903B2 (en) | 2017-09-08 | 2020-03-06 | Generic multi-source heterogeneous large-scale data synchronization client-server method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710805313.8A CN107729366B (zh) | 2017-09-08 | 2017-09-08 | 一种普适多源异构大规模数据同步系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729366A CN107729366A (zh) | 2018-02-23 |
CN107729366B true CN107729366B (zh) | 2021-01-05 |
Family
ID=61205807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710805313.8A Active CN107729366B (zh) | 2017-09-08 | 2017-09-08 | 一种普适多源异构大规模数据同步系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11500903B2 (zh) |
CN (1) | CN107729366B (zh) |
WO (1) | WO2019047479A1 (zh) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407633A (zh) * | 2018-09-13 | 2021-09-17 | 华东交通大学 | 一种分布式数据源异构同步的方法 |
CN109445816B (zh) * | 2018-10-16 | 2022-03-22 | 网易(杭州)网络有限公司 | 导表处理方法、装置、存储介质、处理器及终端 |
CN109710690B (zh) * | 2018-11-30 | 2020-09-01 | 北京大数元科技发展有限公司 | 一种业务驱动计算方法及系统 |
US10977275B1 (en) * | 2018-12-21 | 2021-04-13 | Village Practice. Management Company, Llc | System and method for synchronizing distributed databases |
CN109815028B (zh) * | 2018-12-27 | 2022-02-08 | 汉海信息技术(上海)有限公司 | 数据同步的系统、方法、装置和计算机存储介质 |
CN109815292A (zh) * | 2019-01-03 | 2019-05-28 | 广州中软信息技术有限公司 | 一种基于异步消息机制的涉税数据采集系统 |
CN109933587B (zh) * | 2019-02-26 | 2023-04-11 | 厦门市美亚柏科信息股份有限公司 | 基于目录注册的数据处理方法、装置、系统及存储介质 |
CN111782690A (zh) * | 2019-04-04 | 2020-10-16 | 上海晶赞融宣科技有限公司 | 多源异构数据的汇聚方法及装置、存储介质、终端 |
CN111985944B (zh) * | 2019-05-21 | 2024-06-18 | 北京沃东天骏信息技术有限公司 | 物料数据的处理方法、装置、设备及存储介质 |
CN110413677A (zh) * | 2019-07-30 | 2019-11-05 | 无锡柠檬科技服务有限公司 | 一种支持并发应用的分布式数据同步方法和系统 |
CN110659138B (zh) * | 2019-08-26 | 2024-03-15 | 平安科技(深圳)有限公司 | 基于定时任务的数据同步方法、装置、终端及存储介质 |
CN110795499B (zh) * | 2019-09-17 | 2024-04-16 | 中国平安人寿保险股份有限公司 | 基于大数据的集群数据同步方法、装置、设备及存储介质 |
CN110795505A (zh) * | 2019-10-23 | 2020-02-14 | 北京仿真中心 | 一种用户数据跨域同步分发系统以及方法 |
CN111078687B (zh) * | 2019-11-14 | 2023-07-25 | 青岛民航空管实业发展有限公司 | 航班运行数据融合方法、装置及设备 |
CN111008189B (zh) * | 2019-11-26 | 2023-08-25 | 浙江电子口岸有限公司 | 一种动态数据模型构建方法 |
CN110895547B (zh) * | 2019-11-29 | 2023-09-05 | 交通银行股份有限公司 | 基于db2联邦特性的多源异构数据库数据同步系统及方法 |
CN111177266B (zh) * | 2019-12-27 | 2024-03-22 | 广州米茄科技有限公司 | Cg生产中的数据同步系统 |
CN111274257B (zh) * | 2020-01-20 | 2023-10-20 | 山东省电子口岸有限公司 | 一种基于数据的实时同步方法及系统 |
CN111291119B (zh) * | 2020-01-21 | 2023-04-25 | 郑州阿帕斯数云信息科技有限公司 | 数据同步方法和装置 |
CN111339103B (zh) * | 2020-03-13 | 2023-06-20 | 河南安冉云网络科技有限公司 | 一种基于全量分片和增量日志解析的数据交换方法及系统 |
CN111339207A (zh) * | 2020-03-20 | 2020-06-26 | 宁夏菲麦森流程控制技术有限公司 | 一种多类型数据库之间同步数据的方法 |
WO2021237704A1 (zh) * | 2020-05-29 | 2021-12-02 | 深圳市欢太科技有限公司 | 数据同步方法及相关装置 |
CN111767332B (zh) * | 2020-06-12 | 2021-07-30 | 上海森亿医疗科技有限公司 | 异构数据源的数据集成方法、系统以及终端 |
CN111831748B (zh) * | 2020-06-30 | 2024-04-30 | 北京小米松果电子有限公司 | 数据同步方法、装置及存储介质 |
CN111881214B (zh) * | 2020-07-29 | 2024-04-16 | 浪潮云信息技术股份公司 | 一种基于cmsp的drdb数据库数据同步的方法 |
CN112069157B (zh) * | 2020-08-24 | 2024-02-02 | 浙江鸿城科技有限责任公司 | 一种车间数据可信度判断的方法 |
US11669548B2 (en) * | 2020-09-14 | 2023-06-06 | Formagrid Inc | Partial table and multisource synchronization for databases |
CN112182003A (zh) * | 2020-09-28 | 2021-01-05 | 北京沃东天骏信息技术有限公司 | 一种数据同步方法和装置 |
CN112818054B (zh) * | 2020-10-15 | 2022-05-06 | 广州南天电脑系统有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN113407528A (zh) * | 2020-11-20 | 2021-09-17 | 广东美云智数科技有限公司 | 一种权限数据的同步方法、管理装置以及存储介质 |
CN113407530A (zh) * | 2020-11-20 | 2021-09-17 | 广东美云智数科技有限公司 | 一种权限数据的回收方法、管理装置以及存储介质 |
CN112463780B (zh) * | 2020-12-02 | 2024-01-05 | 中国工商银行股份有限公司 | 数据质量检查方法及装置 |
CN112540839B (zh) * | 2020-12-22 | 2024-03-19 | 平安银行股份有限公司 | 信息变更方法、装置、电子设备及存储介质 |
CN112631369B (zh) * | 2020-12-23 | 2023-05-12 | 中国人民解放军63921部队 | 一种用于多个异构系统间的时间同步联合控制方法 |
CN112765265A (zh) * | 2020-12-30 | 2021-05-07 | 杭州贝嘟科技有限公司 | 数据同步方法、装置、计算机设备和可读存储介质 |
CN112667745A (zh) * | 2020-12-31 | 2021-04-16 | 北京天融信网络安全技术有限公司 | 数据同步方法、装置、隔离网闸及数据同步系统 |
CN112835890A (zh) * | 2021-01-13 | 2021-05-25 | 北京金山云网络技术有限公司 | 元数据的处理方法、装置及电子设备 |
CN112732839B (zh) * | 2021-01-21 | 2023-06-23 | 云账户技术(天津)有限公司 | 一种数据同步方法及装置 |
CN112800134A (zh) * | 2021-01-27 | 2021-05-14 | 北京明略软件系统有限公司 | 一种数据同步方法及系统 |
CN112905109B (zh) * | 2021-01-28 | 2023-02-03 | 平安普惠企业管理有限公司 | 消息处理方法、装置、设备及存储介质 |
CN113760987A (zh) * | 2021-02-04 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法和数据处理平台 |
CN112925958A (zh) * | 2021-02-05 | 2021-06-08 | 深圳力维智联技术有限公司 | 多源异构数据适配方法、装置、设备及可读存储介质 |
CN112783899B (zh) * | 2021-02-08 | 2023-03-24 | 青岛港国际股份有限公司 | 空轨单机控制系统与码头设备控制系统交互方法 |
US11847138B2 (en) | 2021-03-08 | 2023-12-19 | Smart Systems Technology, Inc. | Reflection database architecture with state driven synchronization |
CN113032379B (zh) * | 2021-03-16 | 2022-07-22 | 广东电网有限责任公司广州供电局 | 面向配网运检多源数据采集的方法 |
CN113220711A (zh) * | 2021-05-19 | 2021-08-06 | 李坚白 | 一种同步异构机器人控制器数据库的方法及系统 |
CN113254225A (zh) * | 2021-05-26 | 2021-08-13 | 北京沃东天骏信息技术有限公司 | 一种数据同步方法和装置 |
CN113468168B (zh) * | 2021-05-27 | 2024-01-19 | 中国特种设备检测研究院 | 一种起重机械多源异构数据高速采集与处理软控制方法 |
CN113220791B (zh) * | 2021-06-03 | 2023-07-28 | 西安热工研究院有限公司 | 一种数据级联同步系统及方法 |
CN113076208B (zh) * | 2021-06-04 | 2021-08-31 | 上海燧原科技有限公司 | 一种多事件同步电路、方法以及计算芯片 |
CN113254535B (zh) * | 2021-06-08 | 2022-12-13 | 成都新潮传媒集团有限公司 | 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 |
CN113377791A (zh) * | 2021-06-10 | 2021-09-10 | 北京齐尔布莱特科技有限公司 | 一种数据处理方法、系统及计算设备 |
US11816110B2 (en) * | 2021-06-22 | 2023-11-14 | International Business Machines Corporation | Processing large query results in a database accelerator environment |
CN113505175A (zh) * | 2021-07-08 | 2021-10-15 | 浪潮云信息技术股份公司 | 一种基于消息队列实现MySQL增量数据同步的方法 |
CN113407636B (zh) * | 2021-07-09 | 2022-06-03 | 明度智云(浙江)科技有限公司 | 一种用于数字工厂的离线数据同步方法、装置和服务器 |
US11928131B2 (en) | 2021-09-27 | 2024-03-12 | International Business Machines Corporation | Synchronized activation of datasets in multicloud computing environment |
CN114071698B (zh) * | 2021-10-19 | 2024-01-09 | 四川九洲空管科技有限责任公司 | 一种具备参数动态配置与状态感知的自组网数据收发方法及装置 |
CN113722401B (zh) * | 2021-11-04 | 2022-02-01 | 树根互联股份有限公司 | 数据缓存方法、装置、计算机设备及可读存储介质 |
CN114297295A (zh) * | 2021-12-24 | 2022-04-08 | 北京京东拓先科技有限公司 | 数据同步方法及装置、电子设备和计算机可读存储介质 |
CN114510367B (zh) * | 2022-01-11 | 2023-06-02 | 电子科技大学 | 一种安全智能的多源异构数据处理系统 |
CN114756629B (zh) * | 2022-06-16 | 2022-10-21 | 之江实验室 | 基于sql的多源异构数据交互分析引擎及方法 |
CN115208899B (zh) * | 2022-06-29 | 2023-06-06 | 安阳师范学院 | 一种改进的p2p海量科学数据同步方法 |
CN115914330B (zh) * | 2022-10-11 | 2024-04-12 | 中国电子科技集团公司第二十八研究所 | 一种基于nio异步线程模型的异构应用间通信方法 |
CN115599797A (zh) * | 2022-11-29 | 2023-01-13 | 广东通莞科技股份有限公司(Cn) | 基于操作日志的双向同步方法、装置和电子设备 |
CN116094938B (zh) * | 2023-01-16 | 2024-04-19 | 紫光云技术有限公司 | 基于kafka的网络拓扑同步方法、设备、服务器及存储介质 |
CN115982133A (zh) * | 2023-02-01 | 2023-04-18 | 花瓣云科技有限公司 | 数据处理方法及装置 |
CN116204593A (zh) * | 2023-03-17 | 2023-06-02 | 北京金和网络股份有限公司 | 一种数据实时同步的方法、系统、设备及存储介质 |
CN116414902B (zh) * | 2023-03-31 | 2024-06-04 | 华能信息技术有限公司 | 一种快速数据源接入方法 |
CN117112656A (zh) * | 2023-05-19 | 2023-11-24 | 中国标准化研究院 | 一种科技志愿服务管理的一体化信息智能管理系统及方法 |
CN116954927B (zh) * | 2023-09-07 | 2023-12-01 | 建信住房服务有限责任公司 | 一种分布式异构数据采集方法、存储介质及电子设备 |
CN117290451B (zh) * | 2023-09-12 | 2024-06-07 | 上海沄熹科技有限公司 | 一种保证数据库系统事务一致性的方法及系统 |
CN117421337B (zh) * | 2023-09-26 | 2024-05-28 | 东土科技(宜昌)有限公司 | 数据采集方法、装置、设备及计算机可读介质 |
CN117171534B (zh) * | 2023-11-03 | 2024-03-19 | 济南二机床集团有限公司 | 一种数控机床多源异构数据获取方法、系统、装置及介质 |
CN117573759A (zh) * | 2023-12-11 | 2024-02-20 | 中国电子投资控股有限公司 | 一种多源异构数据管理系统、管理装置和管理方法 |
CN117407407B (zh) * | 2023-12-15 | 2024-04-12 | 中信证券股份有限公司 | 多异构数据源数据集更新方法、装置、设备和计算机介质 |
CN117909410B (zh) * | 2023-12-29 | 2024-07-02 | 江苏大塔科技有限公司 | 一种基于快照的无锁全增量一体化数据同步方法 |
CN117591607B (zh) * | 2024-01-19 | 2024-05-07 | 杭州青橄榄网络技术有限公司 | 数据同步管理方法与系统 |
CN118170851B (zh) * | 2024-05-11 | 2024-08-13 | 浪潮云信息技术股份公司 | 异构数据库数据字段同步方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN104376062A (zh) * | 2014-11-11 | 2015-02-25 | 中国有色金属长沙勘察设计研究院有限公司 | 一种异构数据库平台数据的同步方法 |
CN104778175A (zh) * | 2014-01-13 | 2015-07-15 | 世纪禾光科技发展(北京)有限公司 | 一种实现异构数据库数据同步的方法及系统 |
CN106790407A (zh) * | 2016-11-29 | 2017-05-31 | 江苏省邮电规划设计院有限责任公司 | 一种基于dlp大屏异构事务处理和信息通讯的系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535892B1 (en) * | 1999-03-08 | 2003-03-18 | Starfish Software, Inc. | System and methods for exchanging messages between a client and a server for synchronizing datasets |
US7299230B2 (en) * | 2001-08-30 | 2007-11-20 | Siebel Systems, Inc. | Method, apparatus and system for transforming, converting and processing messages between multiple systems |
US7526575B2 (en) * | 2001-09-28 | 2009-04-28 | Siebel Systems, Inc. | Method and system for client-based operations in server synchronization with a computing device |
US20070073899A1 (en) * | 2005-09-15 | 2007-03-29 | Judge Francis P | Techniques to synchronize heterogeneous data sources |
US8024290B2 (en) * | 2005-11-14 | 2011-09-20 | Yahoo! Inc. | Data synchronization and device handling |
US8965954B2 (en) * | 2008-10-21 | 2015-02-24 | Google Inc. | Always ready client/server data synchronization |
US9002787B2 (en) * | 2009-01-30 | 2015-04-07 | Blackberry Limited | Method and apparatus for tracking device management data changes |
CN102542007B (zh) * | 2011-12-13 | 2014-06-25 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及系统 |
CN102982126A (zh) * | 2012-11-14 | 2013-03-20 | 浙江星汉信息技术有限公司 | 一种数据库表数据实时推送的方法及其系统 |
CN104376017B (zh) * | 2013-08-15 | 2018-10-23 | 阿里巴巴集团控股有限公司 | 在数据库之间进行数据同步的方法及系统 |
CN106055723B (zh) * | 2016-08-17 | 2019-08-02 | 浪潮软件股份有限公司 | 一种数据库数据同步装置、系统及方法 |
CN106557592A (zh) * | 2016-12-02 | 2017-04-05 | 中铁程科技有限责任公司 | 数据同步方法、装置及服务器集群 |
-
2017
- 2017-09-08 CN CN201710805313.8A patent/CN107729366B/zh active Active
-
2018
- 2018-02-12 WO PCT/CN2018/076485 patent/WO2019047479A1/zh active Application Filing
-
2020
- 2020-03-06 US US16/812,243 patent/US11500903B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN104778175A (zh) * | 2014-01-13 | 2015-07-15 | 世纪禾光科技发展(北京)有限公司 | 一种实现异构数据库数据同步的方法及系统 |
CN104376062A (zh) * | 2014-11-11 | 2015-02-25 | 中国有色金属长沙勘察设计研究院有限公司 | 一种异构数据库平台数据的同步方法 |
CN106790407A (zh) * | 2016-11-29 | 2017-05-31 | 江苏省邮电规划设计院有限责任公司 | 一种基于dlp大屏异构事务处理和信息通讯的系统 |
Non-Patent Citations (1)
Title |
---|
"分布式异构数据库同步系统的研究与应用";林源 等;《计算机工程与设计》;20101231;第31卷(第24期);第5278-5281页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019047479A1 (zh) | 2019-03-14 |
US11500903B2 (en) | 2022-11-15 |
US20200409977A1 (en) | 2020-12-31 |
CN107729366A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729366B (zh) | 一种普适多源异构大规模数据同步系统 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN107038162B (zh) | 基于数据库日志的实时数据查询方法和系统 | |
US8719232B2 (en) | Systems and methods for data integrity checking | |
JP5585062B2 (ja) | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム | |
US10795910B2 (en) | Robust communication system for guaranteed message sequencing with the detection of duplicate senders | |
CN105447046A (zh) | 一种分布式系统数据一致性处理方法、装置和系统 | |
CN103067230A (zh) | 一种通过植入监控代码实现对http服务监控的方法 | |
WO2016155492A1 (zh) | 一种数据库的远程数据同步方法和装置 | |
CN111222089B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN102385582A (zh) | 生产测试数据处理方法、服务器及系统 | |
WO2021147793A1 (zh) | 数据处理方法、装置、系统、电子设备及计算机存储介质 | |
US20170199903A1 (en) | System for backing out data | |
CN104462562A (zh) | 一种基于数据仓库自动化的数据迁移系统及方法 | |
CN108737549A (zh) | 一种大数据量的日志分析方法及装置 | |
US20220164260A1 (en) | System and method for robust, efficient, adaptive streaming replication application protocol with dancing recovery for high-volume distributed live subscriber datasets | |
CN112732756A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN104281980A (zh) | 基于分布式计算的火力发电机组远程诊断方法及系统 | |
CN114661823A (zh) | 数据同步的方法、装置、电子设备及可读存储介质 | |
CN116756108A (zh) | 一种文件同步方法、系统、装置及可读存储介质 | |
CN102594889B (zh) | 一种基于数据召测的数据同步与分析系统 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理系统以及处理装置 | |
CN112667586B (zh) | 一种基于流处理的数据同步的方法、系统、设备及介质 | |
CN113872994B (zh) | 组织架构同步方法、装置、计算机设备和存储介质 | |
CN107330089B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1246878 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |