CN116467383A - 数据同步方法、系统、装置、存储介质及电子设备 - Google Patents
数据同步方法、系统、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116467383A CN116467383A CN202310297466.1A CN202310297466A CN116467383A CN 116467383 A CN116467383 A CN 116467383A CN 202310297466 A CN202310297466 A CN 202310297466A CN 116467383 A CN116467383 A CN 116467383A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- file
- segmentation
- data synchronization
- 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 52
- 230000011218 segmentation Effects 0.000 claims abstract description 122
- 230000001360 synchronised effect Effects 0.000 claims abstract description 105
- 238000005192 partition Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 17
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000008676 import Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013468 resource allocation 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
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法、系统、装置、存储介质及电子设备。涉及大数据技术领域。其中,该方法包括:响应数据同步请求,获取目标集群中的待同步文件;统计对待同步文件进行文件切分的切分数据,其中,切分数据至少包括:切分数量;依据切分数据对待同步文件进行文件切分,得到多个目标文件,其中,多个目标文件的文件数量为切分数量;将每个目标文件中的数据导入目标数据库的目标数据表。本发明解决了相关技术中将集群内的数据导入关系型数据库中,导入效果不佳的技术的技术问题。
Description
技术领域
本发明涉及大数据技术领域,具体而言,涉及一种数据同步方法、系统、装置、存储介质及电子设备。
背景技术
目前,对于数据同步的方案主要有两种,一种是使用Sqoop(一种开源的工具)等工具将Hive(一种数据仓库工具)的数据导出到MySQL数据库、Oracle数据库、Postgres数据库等传统关系型数据库;另一种是将Hive的数据导出到临时文件,再将临时文件中的数据导入到其它关系型数据库中。
第一种方案,需要依赖特定软件系统,但是有些软件系统是商业的,需要投入一定的成本,并且使用时需要配置各种参数,导致数据同步过程比较繁琐并且容易出现配置错误的情况。
第二种技术方案,将数据导出成文件后,需要人工使用load data(一种数据导入命令)语法再导入其它关系型数据库,不够灵活,且数据同步效率低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据同步方法、系统、装置、存储介质及电子设备,以至少解决相关技术中将集群内的数据导入关系型数据库中,导入效果不佳的技术问题。
根据本发明实施例的一个方面,提供了一种数据同步方法,包括:响应数据同步请求,获取目标集群中的待同步文件;统计对所述待同步文件进行文件切分的切分数据,其中,所述切分数据至少包括:切分数量;依据所述切分数据对所述待同步文件进行文件切分,得到多个目标文件,其中,所述多个目标文件的文件数量为所述切分数量;将每个所述目标文件中的数据导入目标数据库的目标数据表。
进一步地,统计对所述待同步文件进行文件切分的切分数据,包括:响应目标统计命令,计算所述待同步文件的文本行数;基于所述文本行数和预设切分阈值,计算所述切分数据。
进一步地,基于所述文本行数和预设切分阈值,计算所述切分数据,包括:比较所述文本行数和预设切分阈值,得到比较结果;在所述比较结果指示所述文本行数大于或等于所述预设切分阈值的情况下,计算所述文本行数与所述预设切分阈值的比值,得到计算结果;基于所述计算结果,确定所述切分数据。
进一步地,获取目标集群中的待同步文件,包括:获取所述目标集群的登录信息;基于所述登录信息登录所述目标集群,并在所述目标集群中下载所述待同步文件。
进一步地,在获取所述目标集群的登录信息之前,还包括:判断目标作业是否完成,其中,所述目标作业与所述数据同步请求关联的数据同步作业具有依赖关系;在所述目标作业完成的情况下,将所述数据同步作业添加到任务队列中;执行所述任务队列中的所述数据同步作业,以执行获取所述目标集群的登录信息的步骤。
进一步地,在将每个所述目标文件中的数据导入目标数据库的目标数据表之前,还包括:获取所述目标数据库的连接信息,并基于所述连接信息连接所述目标数据库;获取所述目标数据库的表字段信息,并基于所述表字段信息判断所述目标数据表是否为分区表,得到第一判断结果;在所述第一判断结果指示所述目标数据表为分区表的情况下,判断所述分区表是否在所述目标数据库的目标分区,得到第二判断结果;在所述第二判断结果指示所述分区表在所述目标数据库的目标分区的情况下,判断是否清空所述目标数据表,得到第三判断结果;在所述第三判断结果指示清空所述目标数据表的情况下,清空所述目标数据表。
根据本发明实施例的另一方面,还提供了一种数据同步系统,所述数据同步系统应用于上述的任意一项的数据同步方法,所述数据同步系统至少包括:数据同步模块,其中,所述数据同步模块包括:数据导出模块,其中,所述数据导出模块用于获取目标集群中的待同步文件;数据切分模块,其中,所述数据切分模块用于通过目标统计命令,统计对所述待同步文件进行文件切分的切分数据,并通过目标切分命令,依据所述切分数据对所述待同步文件进行文件切分,得到多个目标文件;其中,所述切分数据至少包括:对所述待同步文件进行文件切分后得到的文件数量;数据同步模块,其中,所述数据同步模块用于将每个所述目标文件中的数据导入目标数据库的目标数据表。
进一步地,所述数据同步系统还包括:调度模块,其中,所述调度模块用于调度所述数据同步系统中的数据同步作业;文件存储模块,其中,所述文件存储模块用于存储待同步文件,其中,所述待同步文件至少包括:在目标集群中获取的文件;配置中心,其中,所述配置中心至少包括:所述数据同步系统的配置信息;监控模块,其中,所述监控模块用于监控所述数据同步系统中的数据同步作业。
根据本发明实施例的另一方面,还提供了一种数据同步装置,包括:获取单元,用于响应数据同步请求,获取目标集群中的待同步文件;统计单元,用于统计对所述待同步文件进行文件切分的切分数据,其中,所述切分数据至少包括:切分数量;切分单元,用于依据所述切分数据对所述待同步文件进行文件切分,得到多个目标文件,其中,所述多个目标文件的文件数量为所述切分数量;导入单元,用于将每个所述目标文件中的数据导入目标数据库的目标数据表。
进一步地,统计单元包括:第一计算子单元,用于响应目标统计命令,计算所述待同步文件的文本行数;第二计算子单元,用于基于所述文本行数和预设切分阈值,计算所述切分数据。
进一步地,第二计算子单元包括:比较模块,用于比较所述文本行数和预设切分阈值,得到比较结果;计算模块,用于在所述比较结果指示所述文本行数大于或等于所述预设切分阈值的情况下,计算所述文本行数与所述预设切分阈值的比值,得到计算结果;确定模块,用于基于所述计算结果,确定所述切分数据。
进一步地,获取单元包括:获取子单元,用于获取所述目标集群的登录信息;处理子单元,用于基于所述登录信息登录所述目标集群,并在所述目标集群中下载所述待同步文件。
进一步地,获取单元还包括:判断子单元,用于在获取所述目标集群的登录信息之前,判断目标作业是否完成,其中,所述目标作业与所述数据同步请求关联的数据同步作业具有依赖关系;添加子单元,用于在所述目标作业完成的情况下,将所述数据同步作业添加到任务队列中;执行子单元,用于执行所述任务队列中的所述数据同步作业,以执行获取所述目标集群的登录信息的步骤。
进一步地,数据同步装置还包括:第一处理单元,用于在将每个所述目标文件中的数据导入目标数据库的目标数据表之前,第二处理单元,用于获取所述目标数据库的连接信息,并基于所述连接信息连接所述目标数据库;第三处理单元,用于获取所述目标数据库的表字段信息,并基于所述表字段信息判断所述目标数据表是否为分区表,得到第一判断结果;第一判断单元,用于在所述第一判断结果指示所述目标数据表为分区表的情况下,判断所述分区表是否在所述目标数据库的目标分区,得到第二判断结果;第二判断单元,用于在所述第二判断结果指示所述分区表在所述目标数据库的目标分区的情况下,判断是否清空所述目标数据表,得到第三判断结果;清空单元,用于在所述第三判断结果指示清空所述目标数据表的情况下,清空所述目标数据表。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的数据同步方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的数据同步方法。
在本发明中,响应数据同步请求,获取目标集群中的待同步文件;统计对待同步文件进行文件切分的切分数据,其中,切分数据至少包括:切分数量;依据切分数据对待同步文件进行文件切分,得到多个目标文件,其中,多个目标文件的文件数量为切分数量;将每个目标文件中的数据导入目标数据库的目标数据表。进而解决了相关技术中将集群内的数据导入关系型数据库中,导入效果不佳的技术问题。在本发明中,通过将待同步文件进行文件切分,并将切分后得到的多个目标文件中的数据导入目标数据库,达到了避免通过数据同步工具将待同步文件导入到关系型数据库,配置复杂、效率低的情况,或采用先导出到临时文件的方式将待同步文件导入到关系型数据库,灵活性低的情况,从而实现了提高数据同步的效率以及灵活性的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的数据同步方法的流程图;
图2是根据本发明实施例的一种可选的数据同步系统的结构图;
图3是根据本发明实施例的一种可选的数据导出模块处理的流程图;
图4是根据本发明实施例的一种可选的数据切分模块处理的流程图;
图5是根据本发明实施例的一种可选的数据导入模块处理的结构图;
图6是根据本发明实施例的一种可选的数据同步装置的示意图;
图7是根据本发明实施例的一种电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
实施例一
根据本发明实施例,提供了一种可选的数据同步方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的数据同步方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,响应数据同步请求,获取目标集群中的待同步文件。
上述的数据同步请求可以用于请求将目标集群的Hive(一种数据仓库工具)数据导入到目标数据库中(如:关系型数据库),上述的目标集群可以为服务器集群,可以在目标集群中下载上述的待同步文件,上述的待同步文件中可以包括但不限于:Hive数据。
步骤S102,统计对待同步文件进行文件切分的切分数据,其中,切分数据至少包括:切分数量。
上述的切分数据可以包括但不限于切分数量,切分数量可以用于确定需要将待同步文件切分成多个目标文件,上述的切分数据可以通过目标统计命令,统计待同步文件的文本行数。基于文本行数和预设切分阈值,进行计算得到上述的切分数据。
上述的目标统计命令可以包括但不限于Linux wc统计命令。
步骤S103,依据切分数据对待同步文件进行文件切分,得到多个目标文件,其中,多个目标文件的文件数量为切分数量。
在本实施例中可以通过执行目标切分命令,依据切分数据对待同步文件进行文件切分,上述的目标切分命令可以包括但不限于Linux split切分命令,具体的,可以依据切分数据中的切分数量,将待同步文件切分成上述的切分数量个目标文件。在执行目标切分命令,依据切分数据对待同步文件进行文件切分前,还可以判断执行数据同步的数据同步系统的调度服务器是否支持目标切分命令,如:Linux split切分命令,支持该目标切分命令可以对待切分文件进行文件切分,其中,调度服务器可以用于调度数据同步的程序,可以负责数据同步请求关联的作业的分配调度。
步骤S104,将每个目标文件中的数据导入目标数据库的目标数据表。
在本实施例中,可以将进行文件切分的每个目标文件中的数据导入目标数据库的目标数据表中,上述的目标数据表可以是用于存储待同步文件中数据的数据表。
通过上述步骤,在本实施例中,通过将待同步文件进行文件切分,并将切分后得到的多个目标文件中的数据导入目标数据库,达到了避免通过数据同步工具将待同步文件导入到关系型数据库,配置复杂、效率低的情况,或采用先导出到临时文件的方式将待同步文件导入到关系型数据库,灵活性低的情况,从而实现了提高数据同步的效率以及灵活性的技术效果。进而解决了相关技术中将集群内的数据导入关系型数据库中,导入效果不佳的技术问题。
可选的,统计对待同步文件进行文件切分的切分数据,包括:响应目标统计命令,计算待同步文件的文本行数;基于文本行数和预设切分阈值,计算切分数据。
上述的目标统计命令可以包括但不限于Linux wc统计命令,通过执行上述的目标统计命令,可以得到待同步文件的文本行数,如:使用Linux wc命令计算得到导出文件(对应于上述的待同步文件)的文本行数N,在响应目标统计命令之前,还可以判断判断调度服务器是否支持目标统计命令,如Linux wc统计命令。
上述的预设切分阈值可以用于确定对待同步文件进行切分时,每次对待同步文件进行文件切分,按照上述预设切分阈值的文本行数进行切分。
在待同步文件的文本行数大于预设切分阈值的情况下,可以通过计算待同步文件的文本行数N包括多少个预设切分阈值K(其中,若文本行数不够预设切分阈值,可以按1个算),得到上述的切分数据,实现了提高文件切分数据的计算效率的技术效果。
可选的,基于文本行数和预设切分阈值,计算切分数据,包括:比较文本行数和预设切分阈值,得到比较结果;在比较结果指示文本行数大于或等于预设切分阈值的情况下,计算文本行数与预设切分阈值的比值,得到计算结果;基于计算结果,确定切分数据。
在本实施例中,可以比较文本行数N和预设切分阈值K的大小,如果N小于K,可以不用进行文件切分;若N大于或等于K,可以计算拆分文件数量M(对应于上述的切分数据),M可由M的计算公式计算得出,其中,N为文件总行数(对应于上述的文本行数),K为拆分文件阈值(对应于上述的预设切分阈值),M的计算公式为:
在计算出上述的切分数据之后,可以使用Linux split切分命令按顺序将待同步文件按照单个文件行数K进行拆分,拆分中行数不足K则单独为一个目标文件,实现了提高切分数据的计算效率的技术效果。
可选的,获取目标集群中的待同步文件,包括:获取目标集群的登录信息;基于登录信息登录目标集群,并在目标集群中下载待同步文件。
在本实施例中,从调度数据库(用于存储调度配置和数据同步的作业的作业状态)获取作业配置源数据库(即目标集群的登录)的登录信息,登录信息可以包括但不限于:连接地址,登录用户,认证文件等信息。
在获取登录信息后,可以判断获取的登录信息是否为空,若为空则表明调度数据库配置错误,可以退出数据同步的程序;若非空则可以基于获取的登录信息连接登录目标集群。下载导出数据(对应于上述的待同步文件)。
在本实施例中,还可以判断下载数据(即下载待同步文件)是否失败,若下载数据成功则将数据文件转移至数据同步系统的文件存储服务,若失败则可以进一步判断失败次数是否达到阈值,没有达到阈值则可以重试下载,否则可以检查源数据(待同步文件)是否正确,实现了提高待同步文件的安全性以及待同步文件的下载速度的技术效果。
可选的,在获取目标集群的登录信息之前,还包括:判断目标作业是否完成,其中,目标作业与数据同步请求关联的数据同步作业具有依赖关系;在目标作业完成的情况下,将数据同步作业添加到任务队列中;执行任务队列中的数据同步作业,以执行获取目标集群的登录信息的步骤。
上述的依赖关系可以用于查询数据同步作业的前序依赖完成情况,当前序依赖作业(对应于上述的目标作业)完成,且系统资源可用时,后续作业(数据同步请求关联的数据同步作业)则可以被触发;前序作业未完成则会等待,直到完成后再进行后续作业的调度。也即是在本实施例中可以通过数据同步系统的调度模块查询数据同步请求关联的数据同步作业的作业依赖(前序依赖作业)是否完成,若未完成,则继续等待;若已经完成,则查看任务队列情况,如果队列已满,则等待;如果队列没有满,可以通过数据同步系统的调度模块触发数据同步脚本。从调度数据库获取作业配置源数据库(也即是目标集群)的登录信息,登录信息可以包括但不限于连接地址,登录用户,认证文件等信息,实现了提高数据同步处理过程的可靠性的技术效果。
可选的,在将每个目标文件中的数据导入目标数据库的目标数据表之前,还包括:获取目标数据库的连接信息,并基于连接信息连接目标数据库;获取目标数据库的表字段信息,并基于表字段信息判断目标数据表是否为分区表,得到第一判断结果;在第一判断结果指示目标数据表为分区表的情况下,判断分区表是否在目标数据库的目标分区,得到第二判断结果;在第二判断结果指示分区表在目标数据库的目标分区的情况下,判断是否清空目标数据表,得到第三判断结果;在第三判断结果指示清空目标数据表的情况下,清空目标数据表。
在本实施例中可以从数据同步系统的配置中心查询同步任务(数据同步作业)参数,得到查询结果。从查询结果中获取目标数据库的连接信息,目标数据库的连接信息如:数据库地址、用户、加密密码、密钥、端口、库名等。可以基于该连接信息连接数据库,获取目标数据库的表字段信息。依据表字段信息可以判断目标数据表是否为分区表,若为分区表,判断表是否包含目标分区,如果没有则创建分区;否则可以判断数据同步前是否需要清空目标数据表,判断是否清空目标数据表可以依据目标数据表是否为预设的数据表,或数据同步文件中是否包括预设数据,若需要则清空目标数据表,否则搜索切分文件(即目标文件),用于准备数据导入,在本实施例中,还可以判断是否需要并行导入,如果需要,则可以初始化线程池,进行多线程导入,否则使用循环,单个目标文件逐一进行导入,以将每个目标文件中的数据导入目标数据库的目标数据表中。
通过本实施例,解决了相关技术数据同步方式配置复杂、自动化程度低的技术问题,实现了提高数据同步的灵活性、降低配置复杂度、提高自动化程度、便于运维监控的技术效果,可以减少人工成本,提高数据同步任务效率,提高数据同步的自动化程度。
实施例二
本申请实施例二提供了一种数据同步系统,数据同步系统应用于实施例一中的数据同步方法。
本实施例的数据同步系统至少包括:数据同步模块,其中,数据同步模块包括:数据导出模块,其中,数据导出模块用于获取目标集群中的待同步文件;数据切分模块,其中,数据切分模块用于通过目标统计命令,统计对待同步文件进行文件切分的切分数据,并通过目标切分命令,依据切分数据对待同步文件进行文件切分,得到多个目标文件;其中,切分数据至少包括:对待同步文件进行文件切分后得到的文件数量;数据同步模块,其中,数据同步模块用于将多个目标文件导入目标数据库的目标数据表。
图2是根据本发明实施例的一种可选的数据同步系统的结构图,如图2所示,上述的数据同步模块可以包括数据导出模块、数据切分模块和数据导入模块,其中,数据导出模块负责源数据文件(对应于上述的待同步文件)的导出生成,数据切分模块负责导出文件拆分,即对待同步文件进行文件切分,当数据量较大时,将大文件拆分成多个小文件,用于后续数据导入模块将多个目标文件中的数据导入目标数据库的目标数据表中,即将多个目标文件导入目标数据库,可以加速数据导入进程;数据导入模块具体负责数据文件导入目标数据库。
在本实施例中,通过将待同步文件进行文件切分,并将切分后得到的多个目标文件中的数据导入目标数据库,达到了避免通过数据同步工具将待同步文件导入到关系型数据库,配置复杂、效率低的情况,或采用先导出到临时文件的方式将待同步文件导入到关系型数据库,灵活性低的情况,从而实现了提高数据同步的效率以及灵活性的技术效果。进而解决了相关技术中将集群内的数据导入关系型数据库中,导入效果不佳的技术问题。
图3是根据本发明实施例的一种可选的数据导出模块处理的流程图,如图3所示,数据导出模块的处理流程可以包括:
步骤1:调度系统查询作业依赖是否完成,若未完成,则继续等待;若已经完成,则执行查看任务队列情况的步骤。
步骤2:查看任务队列情况,如果任务队列已满,则等待;如果任务队列没有满,则执行调度系统触发数据同步脚本的步骤。
步骤3:调度系统触发数据同步脚本。
步骤4:从调度数据库获取作业配置源数据库的登录信息(即目标集群的登录信息),登录信息可以包括但不限于连接地址,登录用户,认证文件等。
步骤5:判断从获取的登录信息是否为空,若为空则表明调度数据库配置错误,程序(用于进行数据同步的程序)退出;若非空则执行使用获取的登录信息连接登录集群的步骤。
步骤6:使用获取的登录信息连接登录集群。
步骤7:下载导出数据(即待同步文件)。
步骤8:下载数据是否失败,下载数据成功则将数据文件转移至文件存储服务,若失败则执行判断失败次数是否达到阈值的步骤。
步骤9:判断失败次数是否达到阈值,没有则重试下载,执行继续下载导出数据的步骤;否则需要检查源数据是否正确,程序退出。
图4是根据本发明实施例的一种可选的数据切分模块处理的流程图,如图4所示,数据切分的处理过程具体包括:
步骤1:基于文件存储服务从服务存储模块获取导出的数据(即待同步文件)。
步骤2:判断调度服务器是否支持Linux split切分命令,若不支持则结束,否则执行判断调度服务器是否支持Linux wc统计命令的步骤。
步骤3:判断调度服务器是否支持Linux wc统计命令,若不支持则结束,否则执行“执行Linux wc统计命令计算得到导出文件的行数N”的步骤。
步骤4:执行Linux wc统计命令计算得到导出文件的行数N(对应于上述的文本行数)。
步骤5:判断行数N和切分阈值K的大小,如果N小于K,则结束,否则执行计算拆分文件数量M的步骤。
步骤6:计算拆分文件数量M(对应于上述的切分数量),M可由计算M的公式得出,其中,N为文件总行数,K为拆分文件阈值(对应于实施例一中的预设切分阈值),M的计算公式为:
步骤7:执行Linux split命令按顺序将文件按照单个文件行数K进行拆分,拆分中行数不足K则单独为一个目标文件。
图5是根据本发明实施例的一种可选的数据导入模块处理的流程图,如图5所示,数据导入的处理过程可以包括:
步骤1:从配置中心查询同步任务参数。
步骤2:从查询结果中获取数据库(对应于上述的目标数据库)连接信息,例如:数据库地址、用户、加密密码、密钥、端口、库名等。
步骤3:连接数据库,获取数据库表字段信息。
步骤4:判断表(对应于上述的目标数据表)是否为分区表,若为分区表,则执行判断表是否包含目标分区的步骤;否则执行判断数据同步前是否需要清空目标表的步骤。
步骤5:判断表是否包含目标分区,如果没有则创建分区,否则执行判断数据同步前是否需要清空目标数据表的步骤。
步骤6:判断数据同步前是否需要清空目标数据表,若需要则清空目标数据表,否则执行搜索切分文件的步骤。
步骤7:搜索切分文件(即目标文件),用于准备将目标文件中的数据导入目标数据表。
步骤8:判断是否需要并行导入(可以通过判断待导入文件是否满足预设条件,满足可以并行导入),如果需要,则初始化线程池,进行多线程导入,否则使用循环,单个目标文件逐一进行导入。
可选的,数据同步系统还包括:调度模块,其中,调度模块用于调度数据同步系统中的数据同步作业;文件存储模块,其中,文件存储模块用于存储待同步文件,其中,待同步文件至少包括:在目标集群中获取的文件;配置中心,其中,配置中心至少包括:数据同步系统的配置信息;监控模块,其中,监控模块用于监控数据同步系统中的数据同步作业。
调度系统(如图2数据同步系统的结构图中左侧的调度系统,对应于上述的调度模块)主要负责系统数据同步任务(对应于上述的数据同步作业)的调度分配,由调度数据库(如图2中左侧的调度数据库)和作业调度模块(如图2中调度系统下的作业调度模块)组成。调度数据库可以使用关系型数据库,用于存储调度配置和作业状态等数据。作业调度模块部署在调度服务器,用于调度程序负责作业分配调度,具体功能可以包括但不限于作业并发控制、作业依赖配置检查、作业状态查询更新等。作业并发控制主要指作业资源分配,并发数分配等操作,用于控制调度系统资源和集群资源的合理使用,作业依赖配置检查用于查询作业前序依赖完成情况,当前序依赖作业完成,且系统资源可用时,后续作业就会被触发;前序作业未完成则会等待,直到完成后再进行后续作业的调度;作业状态查询更新是指作业当前运行状态的查询和当作业状态变化时,更新作业状态。
上述的文件存储模块可以包括文件存储服务(如图2中的文件存储服务),文件存储服务是一种云存储服务,可以基于文件存储服务,在文件存储模块存储导出后的数据文件(即待同步文件),具有接入简单、易扩展、读写速度快等优点。
配置中心(如图2中的配置中心)可以存储数据同步系统的程序共同使用的配置,可以存储数据库用户、加密密码、密钥、端口、连接信息等轻量级配置。当需要使用时,数据同步系统的程序可以通过连接配置中心,安全、快速地获得需要的配置信息。
交易监控模块(如图2中的交易监控模块,对应于上述的监控模块可以对数据同步任务(对应于上述的数据同步作业)的状态监控,将同步任务信息(数据同步作业的信息),例如:开始时间、结束时间、任务时长、源数据库、源表名、目标数据库、目标表名、同步模式、任务状态等记录,对接前台系统进行展现。
通过本实施例,解决了相关技术数据同步方式配置复杂、自动化程度低的技术问题,实现了提高数据同步的灵活性、降低配置复杂度、提高自动化程度、便于运维监控的技术效果,达到了减少人工成本,提高数据同步任务的处理效率,提高数据同步的自动化程度的目的。
实施例三
本申请实施例三提供了一种可选的数据装置,该数据同步装置中的各个实施单元对应于实施例一中的各个实施步骤。
图6是根据本发明实施例的一种可选的数据同步装置的示意图,如图6所示,该数据同步装置包括:获取单元61、统计单元62、切分单元63、导入单元64。
具体的,获取单元61,用于响应数据同步请求,获取目标集群中的待同步文件;
统计单元62,用于统计对待同步文件进行文件切分的切分数据,其中,切分数据至少包括:切分数量;
切分单元63,用于依据切分数据对待同步文件进行文件切分,得到多个目标文件,其中,多个目标文件的文件数量为切分数量;
导入单元64,用于将每个目标文件中的数据导入目标数据库的目标数据表。
在本申请实施三提供的数据同步装置中,可以通过获取单元61响应数据同步请求,获取目标集群中的待同步文件,通过统计单元62统计对待同步文件进行文件切分的切分数据,其中,切分数据至少包括:切分数量,通过切分单元63依据切分数据对待同步文件进行文件切分,得到多个目标文件,其中,多个目标文件的文件数量为切分数量,通过导入单元64将每个目标文件中的数据导入目标数据库的目标数据表。进而解决了相关技术中将集群内的数据导入关系型数据库中,导入效果不佳的技术问题。在本实施例中,通过将待同步文件进行文件切分,并将切分后得到的多个目标文件中的数据导入目标数据库,达到了避免通过数据同步工具将待同步文件导入到关系型数据库,配置复杂、效率低的情况,或采用先导出到临时文件的方式将待同步文件导入到关系型数据库,灵活性低的情况,从而实现了提高数据同步的效率以及灵活性的技术效果。
可选的,在本申请实施三提供的数据同步装置中,统计单元62包括:第一计算子单元,用于响应目标统计命令,计算待同步文件的文本行数;第二计算子单元,用于基于文本行数和预设切分阈值,计算切分数据。
可选的,在本申请实施三提供的数据同步装置中,第二计算子单元包括:比较模块,用于比较文本行数和预设切分阈值,得到比较结果;计算模块,用于在比较结果指示文本行数大于或等于预设切分阈值的情况下,计算文本行数与预设切分阈值的比值,得到计算结果;确定模块,用于基于计算结果,确定切分数据。
可选的,在本申请实施三提供的数据同步装置中,获取单元61包括:获取子单元,用于获取目标集群的登录信息;处理子单元,用于基于登录信息登录目标集群,并在目标集群中下载待同步文件。
可选的,在本申请实施三提供的数据同步装置中,获取单元61还包括:判断子单元,用于在获取目标集群的登录信息之前,判断目标作业是否完成,其中,目标作业与数据同步请求关联的数据同步作业具有依赖关系;添加子单元,用于在目标作业完成的情况下,将数据同步作业添加到任务队列中;执行子单元,用于执行任务队列中的数据同步作业,以执行获取目标集群的登录信息的步骤。
可选的,在本申请实施三提供的数据同步装置中,数据同步装置还包括:第一处理单元,用于在将每个目标文件中的数据导入目标数据库的目标数据表之前,第二处理单元,用于获取目标数据库的连接信息,并基于连接信息连接目标数据库;第三处理单元,用于获取目标数据库的表字段信息,并基于表字段信息判断目标数据表是否为分区表,得到第一判断结果;第一判断单元,用于在第一判断结果指示目标数据表为分区表的情况下,判断分区表是否在目标数据库的目标分区,得到第二判断结果;第二判断单元,用于在第二判断结果指示分区表在目标数据库的目标分区的情况下,判断是否清空目标数据表,得到第三判断结果;清空单元,用于在第三判断结果指示清空目标数据表的情况下,清空目标数据表。
上述的数据同步装置还可以包括处理器和存储器,上述的获取单元61、统计单元62、切分单元63、导入单元64等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来通过将待同步文件进行文件切分,并将切分后得到的多个目标文件中的数据导入目标数据库,达到了避免通过数据同步工具将待同步文件导入到关系型数据库,配置复杂、效率低的情况,或采用先导出到临时文件的方式将待同步文件导入到关系型数据库,灵活性低的情况,从而实现了提高数据同步的效率以及灵活性的技术效果。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的数据同步方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的数据同步方法。
图7是根据本发明实施例的一种电子设备的示意图,如图7所示,本发明实施例提供了一种电子设备70,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述任意一项的数据同步方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种数据同步方法,其特征在于,包括:
响应数据同步请求,获取目标集群中的待同步文件;
统计对所述待同步文件进行文件切分的切分数据,其中,所述切分数据至少包括:切分数量;
依据所述切分数据对所述待同步文件进行文件切分,得到多个目标文件,其中,所述多个目标文件的文件数量为所述切分数量;
将每个所述目标文件中的数据导入目标数据库的目标数据表。
2.根据权利要求1所述的数据同步方法,其特征在于,统计对所述待同步文件进行文件切分的切分数据,包括:
响应目标统计命令,计算所述待同步文件的文本行数;
基于所述文本行数和预设切分阈值,计算所述切分数据。
3.根据权利要求2所述的数据同步方法,其特征在于,基于所述文本行数和预设切分阈值,计算所述切分数据,包括:
比较所述文本行数和预设切分阈值,得到比较结果;
在所述比较结果指示所述文本行数大于或等于所述预设切分阈值的情况下,计算所述文本行数与所述预设切分阈值的比值,得到计算结果;
基于所述计算结果,确定所述切分数据。
4.根据权利要求1所述的数据同步方法,其特征在于,获取目标集群中的待同步文件,包括:
获取所述目标集群的登录信息;
基于所述登录信息登录所述目标集群,并在所述目标集群中下载所述待同步文件。
5.根据权利要求4所述的数据同步方法,其特征在于,在获取所述目标集群的登录信息之前,还包括:
判断目标作业是否完成,其中,所述目标作业与所述数据同步请求关联的数据同步作业具有依赖关系;
在所述目标作业完成的情况下,将所述数据同步作业添加到任务队列中;
执行所述任务队列中的所述数据同步作业,以执行获取所述目标集群的登录信息的步骤。
6.根据权利要求1所述的数据同步方法,其特征在于,在将每个所述目标文件中的数据导入目标数据库的目标数据表之前,还包括:
获取所述目标数据库的连接信息,并基于所述连接信息连接所述目标数据库;
获取所述目标数据库的表字段信息,并基于所述表字段信息判断所述目标数据表是否为分区表,得到第一判断结果;
在所述第一判断结果指示所述目标数据表为分区表的情况下,判断所述分区表是否在所述目标数据库的目标分区,得到第二判断结果;
在所述第二判断结果指示所述分区表在所述目标数据库的目标分区的情况下,判断是否清空所述目标数据表,得到第三判断结果;
在所述第三判断结果指示清空所述目标数据表的情况下,清空所述目标数据表。
7.一种数据同步系统,其特征在于,所述数据同步系统应用于上述权利要求1至6任意一项所述的数据同步方法,所述数据同步系统至少包括:数据同步模块,其中,所述数据同步模块包括:
数据导出模块,其中,所述数据导出模块用于获取目标集群中的待同步文件;
数据切分模块,其中,所述数据切分模块用于通过目标统计命令,统计对所述待同步文件进行文件切分的切分数据,并通过目标切分命令,依据所述切分数据对所述待同步文件进行文件切分,得到多个目标文件;其中,所述切分数据至少包括:对所述待同步文件进行文件切分后得到的文件数量;
数据同步模块,其中,所述数据同步模块用于将每个所述目标文件中的数据导入目标数据库的目标数据表。
8.根据权利要求7所述的数据同步系统,其特征在于,所述数据同步系统还包括:
调度模块,其中,所述调度模块用于调度所述数据同步系统中的数据同步作业;
文件存储模块,其中,所述文件存储模块用于存储待同步文件,其中,所述待同步文件至少包括:在目标集群中获取的文件;
配置中心,其中,所述配置中心至少包括:所述数据同步系统的配置信息;
监控模块,其中,所述监控模块用于监控所述数据同步系统中的数据同步作业。
9.一种数据同步装置,其特征在于,包括:
获取单元,用于响应数据同步请求,获取目标集群中的待同步文件;
统计单元,用于统计对所述待同步文件进行文件切分的切分数据,其中,所述切分数据至少包括:切分数量;
切分单元,用于依据所述切分数据对所述待同步文件进行文件切分,得到多个目标文件,其中,所述多个目标文件的文件数量为所述切分数量;
导入单元,用于将每个所述目标文件中的数据导入目标数据库的目标数据表。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述的数据同步方法。
11.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任意一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310297466.1A CN116467383A (zh) | 2023-03-23 | 2023-03-23 | 数据同步方法、系统、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310297466.1A CN116467383A (zh) | 2023-03-23 | 2023-03-23 | 数据同步方法、系统、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467383A true CN116467383A (zh) | 2023-07-21 |
Family
ID=87183375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310297466.1A Pending CN116467383A (zh) | 2023-03-23 | 2023-03-23 | 数据同步方法、系统、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467383A (zh) |
-
2023
- 2023-03-23 CN CN202310297466.1A patent/CN116467383A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11442823B2 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
WO2022088804A1 (zh) | 消息推送方法、装置、电子设备及存储介质 | |
WO2018045756A1 (zh) | 故障定位平台、故障定位方法及装置 | |
US20160267099A1 (en) | Similarity Analysis Method, Apparatus, and System | |
US10635473B2 (en) | Setting support program, setting support method, and setting support device | |
CN112463144B (zh) | 分布式存储的命令行服务方法、系统、终端及存储介质 | |
CN109862101B (zh) | 跨平台应用启动方法、装置、计算机设备和存储介质 | |
CN111488181B (zh) | 任务调度方法、装置、存储介质及服务器 | |
CN113297182B (zh) | 数据迁移方法、设备、存储介质及程序产品 | |
US20190373046A1 (en) | Processing an operation with a plurality of processing steps | |
CN111190823A (zh) | Ui自动化测试方法、电子装置及计算机可读存储介质 | |
CN108108119B (zh) | 一种可扩展的存储集群事物的配置方法及装置 | |
EP3018581B1 (en) | Data staging management system | |
CN111339118A (zh) | 基于Kubernetes的资源变更历史记录方法及装置 | |
CN113157411A (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
CN111124854A (zh) | 一种冒烟测试用例分配方法、系统、终端及存储介质 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
CN110753090A (zh) | 服务器集群的任务执行方法、装置、计算机设备及存储介质 | |
CN114880157B (zh) | 一种故障注入方法及装置 | |
CN116467383A (zh) | 数据同步方法、系统、装置、存储介质及电子设备 | |
CN107958414B (zh) | 一种清除cics系统长交易的方法及系统 | |
CN108958967B (zh) | 一种数据处理的方法以及服务器 | |
CN116089446A (zh) | 一种结构化查询语句的优化控制方法及装置 | |
CN114528155A (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 |