CN113901076A - 数据同步方法、装置、服务器及存储介质 - Google Patents
数据同步方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN113901076A CN113901076A CN202111193646.2A CN202111193646A CN113901076A CN 113901076 A CN113901076 A CN 113901076A CN 202111193646 A CN202111193646 A CN 202111193646A CN 113901076 A CN113901076 A CN 113901076A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- database
- target
- fragment
- 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
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于人工智能技术领域,提供了一种数据同步方法、装置、服务器及存储介质,该方法包括:获取配置信息,以及根据配置信息,确定数据库群中的各数据库的数据同步方向及对应于数据同步方向的同步触发条件;响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量;根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式,数据同步方式包括全同步方式和切片同步方式;根据所确定的数据同步方式,将目标数据同步至第二数据库。本申请可以提高数据库之间的数据同步效率。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种数据同步方法、装置、服务器及存储介质。
背景技术
数据交换平台通常是用于为不同数据库、不同数据格式之间,进行数据交换而提供服务的平台。实际应用中,数据交换平台通常可以实现为控制服务器,该控制服务器可以对接多个数据库。
相关技术中,在控制服务器将一个数据库中的数据同步至另一个数据库时,若所需同步的数据过大,则容易出现由于控制服务器内存不足导致的数据同步失败的情况发生,降低了数据库之间的数据同步效率。
发明内容
有鉴于此,本申请实施例提供了一种数据同步方法、装置、服务器及存储介质,以解决相关技术中,在控制服务器将一个数据库中的数据同步至另一个数据库时,若所需同步的数据过大,容易出现由于控制服务器内存不足导致的数据同步失败的情况发生,导致数据库之间的数据同步效率较低的问题。
本申请实施例的第一方面提供了一种数据同步方法,包括:
获取配置信息,以及根据配置信息,确定数据库群中的各数据库的数据同步方向及对应于数据同步方向的同步触发条件;
响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量,其中,目标同步触发条件用于触发将第一数据库中的、尚未同步至第二数据库的数据同步至第二数据库,第一数据库和第二数据库属于数据库群;
根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式,数据同步方式包括全同步方式和切片同步方式;
根据所确定的数据同步方式,将目标数据同步至第二数据库。
进一步地,根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式,包括:
若目标数据的数据量大于或等于预设数据值,则确定数据同步方式为全同步方式;
若目标数据的数据量小于预设数据值,则确定数据同步方式为切片同步方式。
进一步地,根据所确定的数据同步方式,将目标数据同步至第二数据库,包括:
若数据同步方式为全同步方式,则根据目标数据的数据标识生成全量查询语句,以及将全量查询语句查询得到的目标数据同步至第二数据库中;
其中,全量查询语句用于从第一数据库中查询得到目标数据。
进一步地,根据所确定的数据同步方式,将目标数据同步至第二数据库,包括:
若数据同步方式为切片同步方式,则根据目标数据的数据标识和数据量对目标数据进行切分,得到多个分片数据;
针对各分片数据,根据相应分片数据的数据标识生成分片查询语句,以及将分片查询语句查询得到的相应分片数据同步至第二数据库中;
其中,分片查询语句用于从第一数据库中查询得到相应分片数据。
进一步地,若方法由控制服务器执行,且控制服务器具有多个服务节点,则根据所确定的数据同步方式,将目标数据同步至第二数据库,包括:
若数据同步方式为全同步方式,则从控制服务器的多个服务节点中选取一个服务节点,控制所选取的服务节点将目标数据同步至第二数据库;
若数据同步方式为切片同步方式,则根据目标数据的数据标识、目标数据的数据量和服务节点的节点数目对目标数据进行切分,得到多个分片数据,以及根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,以实现将目标数据同步至第二数据库。
进一步地,根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,包括:
若分片数量小于或等于节点数目,则从多个服务节点中选取与分片数量相符数目的服务节点,所选取的服务节点并行将各分片数据同步至第二数据库;
若分片数量大于节点数目,则从多个分片数据中选取与节点数目相符数目的分片数据,各服务节点并行将所选取的各分片数据同步至第二数据库,在服务节点完成数据同步时,将相应服务节点的状态设置为空闲状态,以及将剩余分片数据分配至处于空闲状态的服务节点直至所有分片数据同步完成。
进一步地,目标同步触发条件,包括以下至少一项:到达预设同步周期、到达预设同步时间点、检测到用户输入的同步请求。
本申请实施例的第二方面提供了一种数据同步装置,包括:
信息配置单元,用于获取配置信息,以及根据配置信息,确定数据库群中的各数据库的数据同步方向及对应于数据同步方向的同步触发条件;
信息确定单元,用于响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量,其中,目标同步触发条件用于触发将第一数据库中的、尚未同步至第二数据库的数据同步至第二数据库,第一数据库和第二数据库属于数据库群;
方式确定单元,用于根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式,数据同步方式包括全同步方式和切片同步方式;
同步执行单元,用于根据所确定的数据同步方式,将目标数据同步至第二数据库。
进一步地,方式确定单元,具体用于:
若目标数据的数据量大于或等于预设数据值,则确定数据同步方式为全同步方式;
若目标数据的数据量小于预设数据值,则确定数据同步方式为切片同步方式。
进一步地,同步执行单元,具体用于:
若数据同步方式为全同步方式,则根据目标数据的数据标识生成全量查询语句,以及将全量查询语句查询得到的目标数据同步至第二数据库中;
其中,全量查询语句用于从第一数据库中查询得到目标数据。
进一步地,同步执行单元,具体还用于:
若数据同步方式为切片同步方式,则根据目标数据的数据标识和数据量对目标数据进行切分,得到多个分片数据;
针对各分片数据,根据相应分片数据的数据标识生成分片查询语句,以及将分片查询语句查询得到的相应分片数据同步至第二数据库中;
其中,分片查询语句用于从第一数据库中查询得到相应分片数据。
进一步地,若方法由控制服务器执行,且控制服务器具有多个服务节点,则同步执行单元包括单点同步模块和多点同步模块。
单点同步模块,用于若数据同步方式为全同步方式,则从控制服务器的多个服务节点中选取一个服务节点,控制所选取的服务节点将目标数据同步至第二数据库;
多点同步模块,用于若数据同步方式为切片同步方式,则根据目标数据的数据标识、目标数据的数据量和服务节点的节点数目对目标数据进行切分,得到多个分片数据,以及根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,以实现将目标数据同步至第二数据库。
进一步地,多点同步模块中,根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,包括:
若分片数量小于或等于节点数目,则从多个服务节点中选取与分片数量相符数目的服务节点,所选取的服务节点并行将各分片数据同步至第二数据库;
若分片数量大于节点数目,则从多个分片数据中选取与节点数目相符数目的分片数据,各服务节点并行将所选取的各分片数据同步至第二数据库,在服务节点完成数据同步时,将相应服务节点的状态设置为空闲状态,以及将剩余分片数据分配至处于空闲状态的服务节点直至所有分片数据同步完成。
进一步地,信息确定单元中,目标同步触发条件,包括以下至少一项:到达预设同步周期、到达预设同步时间点、检测到用户输入的同步请求。
本申请实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在服务器上运行的计算机程序,处理器执行计算机程序时实现第一方面提供的数据同步方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的数据同步方法的各步骤。
实施本申请实施例提供的一种数据同步方法、装置、服务器及存储介质具有以下有益效果:能够基于配置信息给控制服务器所连接的每个数据库配置数据同步方向和同步触发条件,这样,对于每两个数据库,若对应同步触发条件被触发,则执行数据同步处理,有助于实现数据库之间准确高效地进行数据同步。另外,在执行数据同步的过程中,基于所需同步的数据的大小确定同步方式为全同步方式或者切片同步方式,可以避免控制服务器一次性对过大的数据进行同步,从而可以避免由于所需同步的数据过大,导致控制服务器内存不足、数据同步失败的情况发生,有助于提高数据库之间的数据同步效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据同步方法的实现流程图;
图2是本申请实施例提供的一种将目标数据同步至第二数据库的实现流程图;
图3是本申请实施例提供的一种数据同步方法的应用场景图;
图4是本申请实施例提供的一种数据同步装置的结构框图;
图5是本申请实施例提供的一种服务器的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据同步技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例中,基于人工智能技术,以实现对数据库之间进行同步。
本申请实施例所涉及的数据同步方法,可以由服务器执行,具体地,可以为用于对通信连接的多个数据库进行控制的控制服务器。数据同步方法由控制服务器执行时,执行主体为控制服务器。
需要指出的是,上述服务器可以包括但不限于服务器、手机、平板或可穿戴智能设备等。另外,上述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参阅图1,图1示出了本申请实施例提供的一种数据同步方法的实现流程图,包括:
步骤101,获取配置信息,以及根据配置信息,确定数据库群中的各数据库的数据同步方向及对应于数据同步方向的同步触发条件。
其中,上述配置信息通常是用于配置数据库之间的数据同步关系的信息。作为示例,配置信息中可以配置将数据库A中的数据同步至数据库B中,也可以配置将数据库B中的数据同步至数据库C中。
其中,上述数据同步方向通常是指从数据提供方数据库至数据接收方数据库的方向。如,若数据提供方数据库为A,数据接收方数据库为B,则数据同步方向为从A到B。
其中,上述同步触发条件通常是用于触发执行数据同步的条件。如,上述同步触发条件可以为:到达预设同步周期。
其中,上述数据库群中的数据库通常是与控制服务器通信连接的数据库。实际应用中,数据库通常实现为用于存储数据的存储服务器。
这里,控制服务器可以从本地获取配置信息,也可以从通信连接的其它设备获取配置信息。然后,控制服务器可以按照配置信息给各数据库分配数据同步方向和对应于数据同步方向的同步触发条件。
步骤102,响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量。
其中,目标同步触发条件用于触发将第一数据库中的、尚未同步至第二数据库的数据同步至第二数据库,第一数据库和第二数据库属于数据库群。
上述目标同步触发条件,通常是用于触发将第一数据库中的目标数据同步至第二数据库的条件。上述目标数据,通常是第一数据库中的、尚未同步至第二数据库的数据。
实践中,目标同步触发条件,可以包括但不限于以下至少一项:到达预设同步周期、到达预设同步时间点、检测到用户输入的同步请求。需要指出的是,触发数据库之间进行数据同步的同步触发条件可以实现成一个条件也可以实现成多个条件,灵活度较高,有助于实现灵活控制数据库之间的数据同步。
这里,上述执行主体可以检测当前是否满足目标同步触发条件。若满足目标同步触发条件,则可以执行从第一数据库中确定目标数据的数据量的操作。
实践中,数据库中的每条数据可以具有数据标识,同一数据库中的相邻的两条数据的数据标识通常遵守相同的标识编码规则,如,可以为A001、A002、A003等顺序递增的关系。上述执行主体可以保存每一次同步时的、第一条数据的数据标识和最后一条数据的数据标识,这样,可以采用数据库中的当前数据的数据标识和已同步的最后一条数据的数据标识,计算得到目标数据的数据量。
需要指出的是,目标数据的数目通常有很多条。目标数据的数据量通常是指目标数据的总条数。
步骤103,根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式。
其中,数据同步方式可以包括全同步方式和切片同步方式。其中,上述全同步方式用于将目标数据完整同步至第二数据库,上述切片同步方式用于将目标数据切片后以分片形式同步至第二数据库。
其中,上述预设数据值通常是预先设定的数据值,且上述预设数据值通常为整数。如,上述预设数据值可以为1000。
这里,上述执行主体可以通过比较目标数据的数据量与预设数据值的数值大小关系,确定数据同步方式。
在本实施例的一些可选的实现方式中,上述根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式,可以包括以下两项中的至少一项:其一,若目标数据的数据量大于或等于预设数据值,则确定数据同步方式为全同步方式。其二,目标数据的数据量小于预设数据值,则确定数据同步方式为切片同步方式。
这里,在目标数据的数据量大于或等于预设数据值时,控制服务器可以将数据同步方式确定为全同步方式。在目标数据的数据量小于预设数据值时,控制服务器可以将数据同步方式确定为切片同步方式。
需要指出的是,在执行数据同步的过程中,基于所需同步的数据的大小确定同步方式为全同步方式或者切片同步方式,可以避免控制服务器一次性对过大的数据进行同步,从而可以避免由于所需同步的数据过大,导致控制服务器内存不足、数据同步失败的情况发生,有助于提高数据库之间的数据同步效率。
步骤104,根据所确定的数据同步方式,将目标数据同步至第二数据库。
这里,上述执行主体可以基于所确定的数据同步方式,对目标数据进行同步。如,在数据同步方式为全同步方式时,可以直接将目标数据一次性完整同步至第二数据库中。
本实施例提供的数据同步方法,能够基于配置信息给控制服务器所连接的每个数据库配置数据同步方向和同步触发条件,这样,对于每两个数据库,若对应同步触发条件被触发,则执行数据同步处理,有助于实现数据库之间准确高效地进行数据同步。另外,在执行数据同步的过程中,基于所需同步的数据的大小确定同步方式为全同步方式或者切片同步方式,可以避免控制服务器一次性对过大的数据进行同步,从而可以避免由于所需同步的数据过大,导致控制服务器内存不足、数据同步失败的情况发生,有助于提高数据库之间的数据同步效率。
在本实施例的一些可选的实现方式中,上述根据所确定的数据同步方式,将目标数据同步至第二数据库,可以包括:若数据同步方式为全同步方式,则根据目标数据的数据标识生成全量查询语句,以及将全量查询语句查询得到的目标数据同步至第二数据库中。
其中,全量查询语句用于从第一数据库中查询得到目标数据。
这里,上述执行主体可以采用第一数据库中的最新存入的数据的数据标识和已同步的最后一条数据的数据标识,组合生成全量查询语句。如,全量查询语句可以为“select*from table where SEQ>m and SEQ<=n”,其中,m为已同步的最后一条数据的数据标识,n为第一数据库中的最新存入的数据的数据标识。
在生成全量查询语句之后,上述执行主体可以将该全量查询语句发送至第一数据库,从而查询得到目标数据,以及将查询得到的目标数据同步至第二数据库中。
在本实施例的一些可选的实现方式中,上述根据所确定的数据同步方式,将目标数据同步至第二数据库,包括:
首先,若数据同步方式为切片同步方式,则根据目标数据的数据标识和数据量对目标数据进行切分,得到多个分片数据。
作为一个示例,上述执行主体可以将数据量切分成预设份额,如,切分成5份,以得到5个分片数据。作为另一个示例,上述执行主体也可以将数据量切分成预设间隔,如,间隔1000,在数据量为10000时,可以得到10份,即,得到10个分片数据。实际应用中,若数据量为10000,切分成10份时,第一个分片数据的数据标识从1至1000,第二个分片数据的数据标识从1001至2000,以此类推,第10个分片数据的数据标识从9001至10000。
然后,针对各分片数据,根据相应分片数据的数据标识生成分片查询语句,以及将分片查询语句查询得到的相应分片数据同步至第二数据库中。
其中,分片查询语句用于从第一数据库中查询得到相应分片数据。
这里,针对每个分片数据,上述执行主体可以采用该分片数据中的最大的数据标识和最小的数据标识,组合生成该分片数据的分片查询语句。如,若分片数据甲中的最大的数据标识为1000且最小的数据标识为1,则分片查询语句可以为“select*from tablewhere SEQ>1and SEQ<=1000”,用于从第一数据库中查询得到分片数据甲。
请参阅图2,图2是本申请实施例提供的一种将目标数据同步至第二数据库的实现流程图。在上述数据同步方法由控制服务器执行,且控制服务器具有多个服务节点时,可以通过以下步骤将目标数据同步至第二数据库。
步骤201,若数据同步方式为全同步方式,则从控制服务器的多个服务节点中选取一个服务节点,控制所选取的服务节点将目标数据同步至第二数据库。
这里,若数据同步方式为全同步方式,则上述执行主体可以从多个服务节点中选取一个服务节点,如,可以随机选取一个服务节点,来执行将目标数据同步至第二数据库。另外,上述执行主体也可以选取被选取次数最少的服务节点,来执行将目标数据同步至第二数据库。另外,上述执行主体还可以选取处理速度最快的服务节点,来执行将目标数据同步至第二数据库。本实施例对具体选取方式不做限定。
实际应用中,上述执行主体通常是通过向所选取的服务节点发送指令,实现控制该服务节点执行将目标数据同步至第二数据库。
步骤202,若数据同步方式为切片同步方式,则根据目标数据的数据标识、目标数据的数据量和服务节点的节点数目对目标数据进行切分,得到多个分片数据,以及根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,以实现将目标数据同步至第二数据库。
其中,上述节点数目通常是服务节点的个数。上述分片数量通常是分片数据的个数。
这里,若数据同步方式为切片同步方式,则上述执行主体可以对所有的目标数据进行切分。切分得到的每个分片数据中可以包括多个目标数据。
举例来说,上述执行主体在对目标数据进行切分时,若各目标数据的数据标识从101-1000,则目标数据的数据量为900,若服务节点有3个,若每个服务节点的承载量大于300条,则分片数据可以有3个,其中3=900/3。若每个服务节点的承载量小于300,如,只有100,则分片数据可以有9个,其中,9=900/100。
在切分得到多个分片数据时,上述执行主体可以控制各服务节点将各分片数据同步至第二数据库中。作为示例,上述执行主体可以控制各服务节点顺序执行数据同步操作,以实现将各分片数据全部同步至第二数据库。进一步举例来说,若有3个分片数据,且存在3个服务节点,则第一个服务节点先对第一个分片数据执行数据同步操作,然后第二个服务节点对第二个分片数据执行数据同步操作,最后,第三个服务节点对第三个分片数据执行数据同步操作。
本实施例中,可以在控制服务器具有多个服务节点时,对各服务节点进行合理任务分配,实现高效地对数据库之间的数据进行同步。另外,控制服务器具有多个服务节点时,可以实现并行对各个分片数据进行数据同步,有助于进一步提高数据库之间的数据同步效率。
在一些可选的实现方式中,上述步骤202中,根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,可以包括:
首先,若分片数量小于或等于节点数目,则从多个服务节点中选取与分片数量相符数目的服务节点,所选取的服务节点并行将各分片数据同步至第二数据库。
这里,在分片数量小于或等于节点数目时,服务节点的数目更多,上述执行主体可以从多个服务节点中选取与分片数量相符数目的服务节点,然后,所选取的服务节点并行对各分片数据进行数据同步。
举例来说,若分片数量为2,节点数目为3,则上述执行主体可以从3个服务节点中选取2个服务节点,然后,所选取的2个服务节点并行执行将分片数据同步至第二数据库。
然后,若分片数量大于节点数目,则从多个分片数据中选取与节点数目相符数目的分片数据,各服务节点并行将所选取的各分片数据同步至第二数据库,在服务节点完成数据同步时,将相应服务节点的状态设置为空闲状态,以及将剩余分片数据分配至处于空闲状态的服务节点直至所有分片数据同步完成。
这里,在分片数量大于节点数目时,分片数据的个数更多,上述执行主体可以分批对分片数据进行数据同步,具体可以为,先控制所有服务节点并行同步一批分片数据,然后,针对完成数据同步快的服务节点接着对剩下的分片数据进行同步,直至所有的分片数据同步完成。这样,可以提高数据同步效率。
举例来说,若分片数量为3,节点数目为2,则上述执行主体可以从3个分片数据中选取2个分片数据,然后,2个服务节点并行执行将所选取的2个分片数据同步至第二数据库。若第一个服务节点先执行完同步任务,则该第一个服务节点将剩下的一个分片数据继续同步至第二数据库。这样,3个分片数据均被同步至第二数据库中。
本实施例中,可以实现在控制服务器具有多个服务节点时,对各服务节点的数据同步任务进行合理分配,有助于提高数据同步效率。
图3是本申请实施例提供的数据同步方法的一个应用场景图。在图3中,控制服务器301可以具有4个服务节点,分别为服务节点3011、服务节点3012、服务节点3013和服务节点3014。数据库群中可以包括三个数据库,分别为数据库302、数据库303和数据库304。
其中,控制服务器301可以获取配置信息,以及根据配置信息,确定数据库302的数据同步方向为从数据库302至数据库303,以及同步触发条件为到达第一同步周期;以及确定数据库303的数据同步方向为从数据库303至数据库304,以及同步触发条件为到达第二同步周期。
之后,在控制服务器301检测到当前到达第一同步周期时,可以确定数据库302中的、尚未同步至数据库303的目标数据的数据量。如,目标数据的数据量可以为1000。
接着,控制服务器301可以将目标数据的数据量与预设数据值进行数值比较,然后,根据比较结果得到将目标数据同步至数据库303的数据同步方式。如,可以是用于将目标数据完整同步至数据库303的全同步方式,也可以是用于将目标数据切片后以分片形式同步至数据库303的切片同步方式。全同步方式时,控制服务器301可以控制服务节点3011、服务节点3012、服务节点3013和服务节点3014中的一个,将目标数据完整同步至数据库303。切片同步方式时,控制服务器301可以控制服务节点3011、服务节点3012、服务节点3013和服务节点3014中的至少两个,并行将各分片数据同步至数据库303。
最后,控制服务器301可以以所确定的数据同步方式,将目标数据同步至数据库303。
请参阅图4,图4是本申请实施例提供的一种数据同步装置400的结构框图。本实施例中该数据同步装置包括的各单元用于执行图1-图2对应的实施例中的各步骤。具体请参阅图1-图2以及图1-图2所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,数据同步装置400包括:
信息配置单元401,用于获取配置信息,以及根据配置信息,确定数据库群中的各数据库的数据同步方向及对应于数据同步方向的同步触发条件;
信息确定单元402,用于响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量,其中,目标同步触发条件用于触发将第一数据库中的、尚未同步至第二数据库的数据同步至第二数据库,第一数据库和第二数据库属于数据库群;
方式确定单元403,用于根据目标数据的数据量与预设数据值之间的数值关系,确定将目标数据同步至第二数据库的数据同步方式,数据同步方式包括全同步方式和切片同步方式;
同步执行单元404,用于根据所确定的数据同步方式,将目标数据同步至第二数据库。
作为本申请一实施例,方式确定单元403,具体用于:
若目标数据的数据量大于或等于预设数据值,则确定数据同步方式为全同步方式;
若目标数据的数据量小于预设数据值,则确定数据同步方式为切片同步方式。
作为本申请一实施例,同步执行单元404,具体用于:
若数据同步方式为全同步方式,则根据目标数据的数据标识生成全量查询语句,以及将全量查询语句查询得到的目标数据同步至第二数据库中;
其中,全量查询语句用于从第一数据库中查询得到目标数据。
作为本申请一实施例,同步执行单元404,具体还用于:
若数据同步方式为切片同步方式,则根据目标数据的数据标识和数据量对目标数据进行切分,得到多个分片数据;
针对各分片数据,根据相应分片数据的数据标识生成分片查询语句,以及将分片查询语句查询得到的相应分片数据同步至第二数据库中;
其中,分片查询语句用于从第一数据库中查询得到相应分片数据。
作为本申请一实施例,若方法由控制服务器执行,且控制服务器具有多个服务节点,则同步执行单元404可以包括单点同步模块和多点同步模块。
单点同步模块,用于若数据同步方式为全同步方式,则从控制服务器的多个服务节点中选取一个服务节点,控制所选取的服务节点将目标数据同步至第二数据库;
多点同步模块,用于若数据同步方式为切片同步方式,则根据目标数据的数据标识、目标数据的数据量和服务节点的节点数目对目标数据进行切分,得到多个分片数据,以及根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,以实现将目标数据同步至第二数据库。
作为本申请一实施例,多点同步模块中,根据分片数据的分片数量,控制各服务节点将各分片数据同步至第二数据库,包括:
若分片数量小于或等于节点数目,则从多个服务节点中选取与分片数量相符数目的服务节点,所选取的服务节点并行将各分片数据同步至第二数据库;
若分片数量大于节点数目,则从多个分片数据中选取与节点数目相符数目的分片数据,各服务节点并行将所选取的各分片数据同步至第二数据库,在服务节点完成数据同步时,将相应服务节点的状态设置为空闲状态,以及将剩余分片数据分配至处于空闲状态的服务节点直至所有分片数据同步完成。
作为本申请一实施例,信息确定单元402中,目标同步触发条件,包括以下至少一项:到达预设同步周期、到达预设同步时间点、检测到用户输入的同步请求。
本实施例提供的装置,能够基于配置信息给控制服务器所连接的每个数据库配置数据同步方向和同步触发条件,这样,对于每两个数据库,若对应同步触发条件被触发,则执行数据同步处理,有助于实现数据库之间准确高效地进行数据同步。另外,在执行数据同步的过程中,基于所需同步的数据的大小确定同步方式为全同步方式或者切片同步方式,可以避免控制服务器一次性对过大的数据进行同步,从而可以避免由于所需同步的数据过大,导致控制服务器内存不足、数据同步失败的情况发生,有助于提高数据库之间的数据同步效率。
应当理解的是,图4示出的数据同步装置的结构框图中,各单元用于执行图1-图2对应的实施例中的各步骤,而对于图1-图2对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1-图2以及图1-图2所对应的实施例中的相关描述,此处不再赘述。
图5是本申请另一实施例提供的一种服务器的结构框图。如图5所示,该实施例的服务器500包括:处理器501、存储器502以及存储在存储器502中并可在处理器501上运行的计算机程序503,例如数据同步方法的程序。处理器501执行计算机程序503时实现上述各个数据同步方法各实施例中的步骤,例如图1所示的步骤101至步骤104。或者,处理器501执行计算机程序503时实现上述图4对应的实施例中各单元的功能,例如,图4所示的单元401至404的功能,具体请参阅图4对应的实施例中的相关描述,此处不赘述。
示例性的,计算机程序503可以被分割成一个或多个单元,一个或者多个单元被存储在存储器502中,并由处理器501执行,以完成本申请。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在服务器500中的执行过程。例如,计算机程序503可以被分割成信息配置单元,信息确定单元,方式确定单元,同步执行单元,各单元具体功能如上。
服务器可以包括,但不仅限于,处理器501、存储器502。本领域技术人员可以理解,图5仅仅是服务器500的示例,并不构成对服务器500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器502可以是服务器500的内部存储单元,例如服务器500的硬盘或内存。存储器502也可以是服务器500的外部存储设备,例如服务器500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器502还可以既包括服务器500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及转台设备所需的其他程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
获取配置信息,以及根据所述配置信息,确定数据库群中的各数据库的数据同步方向及对应于所述数据同步方向的同步触发条件;
响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量,其中,所述目标同步触发条件用于触发将所述第一数据库中的、尚未同步至所述第二数据库的数据同步至所述第二数据库,所述第一数据库和所述第二数据库属于所述数据库群;
根据所述目标数据的数据量与预设数据值之间的数值关系,确定将所述目标数据同步至所述第二数据库的数据同步方式,所述数据同步方式包括全同步方式和切片同步方式;
根据所确定的数据同步方式,将所述目标数据同步至所述第二数据库。
2.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述目标数据的数据量与预设数据值之间的数值关系,确定将所述目标数据同步至所述第二数据库的数据同步方式,包括:
若所述目标数据的数据量大于或等于所述预设数据值,则确定所述数据同步方式为全同步方式;
若所述目标数据的数据量小于所述预设数据值,则确定所述数据同步方式为切片同步方式。
3.根据权利要求1所述的数据同步方法,其特征在于,所述根据所确定的数据同步方式,将所述目标数据同步至所述第二数据库,包括:
若所述数据同步方式为全同步方式,则根据所述目标数据的数据标识生成全量查询语句,以及将所述全量查询语句查询得到的所述目标数据同步至所述第二数据库中;
其中,所述全量查询语句用于从所述第一数据库中查询得到所述目标数据。
4.根据权利要求1所述的数据同步方法,其特征在于,所述根据所确定的数据同步方式,将所述目标数据同步至所述第二数据库,包括:
若所述数据同步方式为切片同步方式,则根据所述目标数据的数据标识和数据量对所述目标数据进行切分,得到多个分片数据;
针对各分片数据,根据相应分片数据的数据标识生成分片查询语句,以及将所述分片查询语句查询得到的相应分片数据同步至所述第二数据库中;
其中,所述分片查询语句用于从所述第一数据库中查询得到相应分片数据。
5.根据权利要求1所述的数据同步方法,其特征在于,若所述方法由控制服务器执行,且所述控制服务器具有多个服务节点,则所述根据所确定的数据同步方式,将所述目标数据同步至所述第二数据库,包括:
若所述数据同步方式为全同步方式,则从所述控制服务器的多个服务节点中选取一个服务节点,控制所选取的服务节点将所述目标数据同步至所述第二数据库;
若所述数据同步方式为切片同步方式,则根据所述目标数据的数据标识、所述目标数据的数据量和服务节点的节点数目对所述目标数据进行切分,得到多个分片数据,以及根据分片数据的分片数量,控制各服务节点将各分片数据同步至所述第二数据库,以实现将所述目标数据同步至所述第二数据库。
6.根据权利要求5所述的数据同步方法,其特征在于,所述根据分片数据的分片数量,控制各服务节点将各分片数据同步至所述第二数据库,包括:
若所述分片数量小于或等于所述节点数目,则从多个服务节点中选取与所述分片数量相符数目的服务节点,所选取的服务节点并行将各分片数据同步至所述第二数据库;
若所述分片数量大于所述节点数目,则从多个分片数据中选取与所述节点数目相符数目的分片数据,各服务节点并行将所选取的各分片数据同步至所述第二数据库,在服务节点完成数据同步时,将相应服务节点的状态设置为空闲状态,以及将剩余分片数据分配至处于空闲状态的服务节点直至所有分片数据同步完成。
7.根据权利要求1-6中任一项所述的数据同步方法,其特征在于,所述目标同步触发条件,包括以下至少一项:到达预设同步周期、到达预设同步时间点、检测到用户输入的同步请求。
8.一种数据同步装置,其特征在于,所述装置包括:
信息配置单元,用于获取配置信息,以及根据所述配置信息,确定数据库群中的各数据库的数据同步方向及对应于所述数据同步方向的同步触发条件;
信息确定单元,用于响应于检测到当前满足目标同步触发条件,确定第一数据库中的、尚未同步至第二数据库的目标数据的数据量,其中,所述目标同步触发条件用于触发将所述第一数据库中的、尚未同步至所述第二数据库的数据同步至所述第二数据库,所述第一数据库和所述第二数据库属于所述数据库群;
方式确定单元,用于根据所述目标数据的数据量与预设数据值之间的数值关系,确定将所述目标数据同步至所述第二数据库的数据同步方式,所述数据同步方式包括全同步方式和切片同步方式;
同步执行单元,用于根据所确定的数据同步方式,将所述目标数据同步至所述第二数据库。
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111193646.2A CN113901076A (zh) | 2021-10-13 | 2021-10-13 | 数据同步方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111193646.2A CN113901076A (zh) | 2021-10-13 | 2021-10-13 | 数据同步方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901076A true CN113901076A (zh) | 2022-01-07 |
Family
ID=79191974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111193646.2A Pending CN113901076A (zh) | 2021-10-13 | 2021-10-13 | 数据同步方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901076A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080311A (zh) * | 2022-07-01 | 2022-09-20 | 深圳美克拉网络技术有限公司 | 一种大数据的信息化远程控制方法及装置 |
-
2021
- 2021-10-13 CN CN202111193646.2A patent/CN113901076A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080311A (zh) * | 2022-07-01 | 2022-09-20 | 深圳美克拉网络技术有限公司 | 一种大数据的信息化远程控制方法及装置 |
CN115080311B (zh) * | 2022-07-01 | 2023-01-24 | 深圳美克拉网络技术有限公司 | 一种大数据的信息化远程控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111818112B (zh) | 一种基于Kafka系统的发送消息的方法和装置 | |
CN110636340B (zh) | 视频文件的上传方法、存储设备、终端设备及存储介质 | |
US10467192B2 (en) | Method and apparatus for updating data table in keyvalue database | |
CN109597834A (zh) | 基于redis的海量数据存储方法、装置、介质和设备 | |
CN106302780B (zh) | 集群设备批量传输数据的方法、装置及系统、服务器 | |
US10102098B2 (en) | Method and system for recommending application parameter setting and system specification setting in distributed computation | |
AU2014209697A1 (en) | Method and system for using a recursive event listener on a node in hierarchical data structure | |
CN111143331B (zh) | 数据迁移方法、装置及计算机存储介质 | |
CN112967023B (zh) | 获取日程信息的方法、装置、设备、存储介质及程序产品 | |
CN109756533A (zh) | 一种镜像加速方法、装置及服务器 | |
CN113901076A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN109299148A (zh) | 数据查询方法及服务器 | |
CN105872635A (zh) | 视频资源分发的方法和装置 | |
CN114006946B (zh) | 同质资源请求的处理方法、装置、设备及存储介质 | |
US8667008B2 (en) | Search request control apparatus and search request control method | |
CN117874033A (zh) | 数据库分表方法、装置、电子设备及存储介质 | |
US20150254102A1 (en) | Computer-readable recording medium, task assignment device, task execution device, and task assignment method | |
CN113377817A (zh) | 数据处理方法、系统、设备及存储介质 | |
CN108829735B (zh) | 并行执行计划的同步方法、装置、服务器及存储介质 | |
CN111427950A (zh) | 数据发送、接收方法及相应的装置、设备、存储介质 | |
CN116303418A (zh) | 基于物联网平台的海量规则处理方法、系统及存储介质 | |
CN116150273A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112000671B (zh) | 基于区块链的数据库表处理方法、装置及系统 | |
CN111797158B (zh) | 数据同步系统、方法和计算机可读存储介质 | |
CN110134547B (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 |