CN111291119B - 数据同步方法和装置 - Google Patents
数据同步方法和装置 Download PDFInfo
- Publication number
- CN111291119B CN111291119B CN202010070528.1A CN202010070528A CN111291119B CN 111291119 B CN111291119 B CN 111291119B CN 202010070528 A CN202010070528 A CN 202010070528A CN 111291119 B CN111291119 B CN 111291119B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- reading
- batch number
- rule
- 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
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
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
技术领域
本文件涉及数据库技术领域,尤其涉及一种数据同步方法和装置。
背景技术
目前经常需要将一个数据库中的数据同步至另一个数据库,比如将mysql数据库中的某个数据表同步至Oracle数据库中。现有技术中,可以通过datax、SymmetricDs等同步工具基于预先配置好的数据同步规则进行数据同步。然而,由于在每次进行数据同步时,预先配置的数据同步规则是固定不变的,但是每次进行数据同步的数据同步场景是变化的,比如每次进行数据同步的网络质量和待同步数据量是变化的,且源数据库的类型和目标数据库的类型也是变化的,因此预先配置好的数据同步规则与具体的数据同步场景可能不相匹配,通过预先配置好的数据同步规则进行数据同步,具有数据同步效率低的问题。
发明内容
本说明书一个实施例的目的是提供一种数据同步方法和装置,以解决通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
为解决上述技术问题,本说明书一个实施例是这样实现的:
第一方面,本说明书一个实施例提供了一种数据同步方法,包括:
获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
第二方面,本说明书另一个实施例提供了一种数据同步装置,包括:
第一获取模块,用于获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
数据读取模块,用于根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
第二获取模块,用于根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
数据写入模块,用于根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
第三方面,本说明书又一个实施例提供了一种数据同步设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如上述第一方面所述的数据同步方法的步骤。
第四方面,本说明书再一个实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上述第一方面所述的数据同步方法的步骤。
本实施例中,在读取数据时,可以根据待读取数据的数据量、网络质量参数和待读取数据的源数据库对应的数据读取规律,确定待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据;在写入数据时,可以根据待写入数据的数据量、网络质量参数和待写入数据的目标数据库对应的数据写入规律,确定待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。因此本实施例中在进行数据同步时,考虑到了数据同步场景中的各项因素,包括源数据库类型、待读取数据的数据量、网络质量参数、目标数据库类型、待写入数据的数据量,还考虑到了预先确定的数据读取规律和数据写入规律,因此通过本实施例确定得到的数据读取策略和数据写入策略进行数据同步时,能够结合具体的数据同步场景,提高数据同步效率,解决现有技术中通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
附图说明
为了更清楚地说明本说明书一个或多个实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例提供的数据同步方法的流程示意图;
图2为本说明书另一实施例提供的数据同步方法的流程示意图;
图3为本说明书一实施例提供的数据同步装置的模块组成示意图;
图4为本说明书一实施例提供的数据同步设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
考虑到现有技术中,通过预先配置好的数据同步规则进行数据同步,具有数据同步效率低的问题,本说明书一实施例提供了一种数据同步方法和装置,以解决该问题,提高数据同步效率。
图1为本说明书一实施例提供的数据同步方法的流程示意图,如图1所示,该流程包括以下步骤:
步骤S102,获取待读取数据和待读取数据的源数据库对应的数据读取规律;其中,数据读取规律中记录有源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
步骤S104,根据待读取数据的数据量、设定时刻的网络质量参数和数据读取规律,确定在设定时刻时待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据;
步骤S106,根据读取出来的待读取数据确定待向目标数据库写入的待写入数据,并获取目标数据库对应的数据写入规律;其中,数据写入规律中记录有目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
步骤S108,根据待写入数据的数据量、设定时刻的网络质量参数和数据写入规律,确定在设定时刻时待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。
本实施例中,在读取数据时,可以根据待读取数据的数据量、网络质量参数和待读取数据的源数据库对应的数据读取规律,确定待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据;在写入数据时,可以根据待写入数据的数据量、网络质量参数和待写入数据的目标数据库对应的数据写入规律,确定待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。因此本实施例中在进行数据同步时,考虑到了数据同步场景中的各项因素,包括源数据库类型、待读取数据的数据量、网络质量参数、目标数据库类型、待写入数据的数据量,还考虑到了预先确定的数据读取规律和数据写入规律,因此通过本实施例确定得到的数据读取策略和数据写入策略进行数据同步时,能够结合具体的数据同步场景,提高数据同步效率,解决现有技术中通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
上述步骤S102中,获取待读取数据和待读取数据的源数据库对应的数据读取规律。源数据库对应的数据读取规律中记录有源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时。
具体地,本实施例中,待读取数据指的是准备从源数据库中同步至目标数据库中的数据,在同步过程中,可以同步全部的待读取数据,也可以读取待读取数据之后,进行数据清洗,同步清洗后的数据。待读取数据的源数据库指的是存储待读取数据的数据库。本实施例中,为各种类型的数据库均设置有数据读取规律,各种类型的数据库包括但不限于mysql数据库、Oracle数据库等等。数据读取规律用于记录对应类型的数据库中,各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时。一个示例中,数据读取规律可以通过多次的数据读取实验统计得到,数据读取规律中记录的数据读取耗时可以为多次实验的平均值。
本实施例中,网络质量参数可以包括网络速度,数据读取量可以通过数据读取条数表示,或者,通过读取出来的数据所占的存储空间大小表示。一种示意中,数据读取规律中记录有对应类型的数据库中,各个预设网络速度区间下、各个预设数据读取条数所对应的数据读取耗时,该耗时的单位为毫秒ms。网络速度区间包括0-1M、1-3M、3-5M、5-10M、10-20M、20-50m、50M以上等区间。
以mysql数据库为例,表1示出了mysql数据库对应的数据读取规律。由表1可见,mysql数据库对应的数据读取规律中,记录了各个预设网络速度区间下、各个预设数据读取条数所对应的数据读取耗时。
表1
在获取待读取数据和待读取数据的源数据库对应的数据读取规律之后,执行步骤S104,根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,确定在设定时刻时待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据。
具体地,由于源数据库对应的数据读取规律中记录有源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时,因此本实施例中,可以参考源数据库对应的数据读取规律,确定从源数据库读取数据的数据读取策略。步骤S104中,设定时刻可以为预先设定的进行数据读取的时刻,比如设定每天下午两点为数据读取时刻,则设定时刻为每天下午两点,设定时刻还可以为当前时刻。
步骤S104中,根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,确定在设定时刻时待读取数据对应的数据读取策略,具体为:
(a1)根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数;
(a2)按照第一目标分批次数对待读取数据进行分批,并确定分批得到的各批数据的数据量;
(a3)根据第一目标分批次数和各批数据的数据量,生成在设定时刻时待读取数据对应的数据读取策略。
具体地,本实施例中预设有第一分批次数选取区间,该区间为由各个分批次数值组成的区间,比如数值区间[1,10]。动作(a1)中,首先根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,在第一分批次数选取区间中选取第一目标分批次数,第一目标分批次数即为需要将待读取数据分批读取的批次值,比如,第一目标分批次数为5,即需要将待读取数据分成5批读取出来。
然后,动作(a2)中,按照第一目标分批次数对待读取数据进行分批,并确定分批得到的各批数据的数据量,一个示例中,可以采用平均分批的方式,按照第一目标分批次数对待读取数据进行分批,并确定分批得到的各批数据的数据量,在平均分批的方式中,分批得到的各批数据的数据量大致相等。
最后,动作(a3)中,可以将第一目标分批次数和各批数据的数据量共同组成为,在设定时刻时待读取数据对应的数据读取策略。该数据读取策略用于指示在设定时刻时,如何从源数据库中读取待读取数据。一个例子中,在设定时刻时待读取数据对应的数据读取策略包括“第一目标分批次数为5次、各批数据的数据量为每批100条”,则该策略表示,在设定时刻从源数据库中读取待读取数据时,将待读取数据分为5批读取,每批读取100条,其中,待读取数据的数据量一共为500条。
上述动作(a1)中,根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数,具体为:
(a11)根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,计算第一分批次数选取区间中的特定分批次数值对应的数据读取耗时,根据该数据读取耗时,在第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间;
(a12)在第一目标选取区间内,根据每个分批次数值所对应的数据读取耗时,选取第一目标分批次数;动作(a11)和(a12)中的数据读取耗时指的是按照对应的分批次数值对待读取数据进行分批后,分批读取待读取数据所用的总耗时。
动作(a11)中,预先在第一分批次数选取区间中确定有一个或多个特定分批次数值,比如,将第一分批次数选取区间[1,10]中的1、3、5、7、10,确定为特定分批次数值。然后,根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,计算各个特定分批次数值对应的数据读取耗时,每个特定分批次数值对应的数据读取耗时指的是,按照该分批次数值对待读取数据进行分批后,分批读取待读取数据所用的总耗时。
动作(a11)中,还基于计算得到的各个数据读取耗时,在第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间,比如,根据计算得到的各个数据读取耗时,在第一分批次数选取区间中将区间范围由[1,10]缩小至[1,5]、再缩小至[3,5]、最后缩小至[4,5],将区间[4,5]作为第一目标选取区间,能够理解,第一目标选取区间位于第一分批次数选取区间中。
动作(a12)中,在第一目标选取区间内,根据每个分批次数值所对应的数据读取耗时,选取第一目标分批次数,比如,若对应的数据读取耗时最短的分批次数值为一个,则将该分批次数值作为第一目标分批次数,若对应的数据读取耗时最短的分批次数值为多个,则选取该多个中较大的分批次数值作为第一目标分批次数。
根据前述动作(a11)和(a12)的描述可知,在通过动作(a11)和(a12)选取第一目标分批次数的过程中,需要根据待读取数据的数据量、设定时刻的网络质量参数和数据读取规律,计算第一分批次数选取区间中的多个分批次数值对应的数据读取耗时,为便于描述,这里以计算第一分批次数选取区间中的一个分批次数值对应的数据读取耗时为例,介绍计算数据读取耗时的具体过程。
一个示例中,第一分批次数选取区间为[1,10],以其中的分批次数值5为例,介绍根据待读取数据的数据量、设定时刻的网络质量参数和数据读取规律,计算数据读取耗时的过程。由于数据读取耗时指的是按照对应的分批次数值对待读取数据进行分批后,分批读取待读取数据所用的总耗时,因此该过程中,首先按照分批次数值5对待读取数据进行分批,并根据待读取数据的数据量确定分批得到的各批数据的数据量,比如采用均匀分批的方式,根据待读取数据的数据量确定分批得到的各批数据的数据量,然后在数据读取规律中查找得到与设定时刻的网络质量参数和分批得到的各批数据的数据量相对应的数据读取时间,将该时间乘以分批次数值5即为将待读取数据分为5批后,分批读取待读取数据的数据读取耗时。
一种特殊情况下,分批得到的各批数据的数据量没有记录在数据读取规律中,也即,在根据实验获取数据读取规律的过程中,并没有以分批得到的各批数据的数据量作为实验数据,则这种情况下,可以根据数据读取规律中的与分批得到的各批数据的数据量相近的数据量确定得到数据读取耗时。同理,若设定时刻的网络质量参数没有记录在数据读取规律中,则可以根据数据读取规律中的与设定时刻的网络质量参数相近的网络质量参数确定得到数据读取耗时。
上述动作(a11)中,根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,计算第一分批次数选取区间中的特定分批次数值对应的数据读取耗时,根据该数据读取耗时,在第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间,具体包括:
(a111)按照预设的区间分割策略,将第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,并确定每个第一分批次数选取子区间的边界值,将该边界值作为特定分批次数值;
(a112)针对每个特定分批次数值,按照该特定分批次数值对待读取数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和数据读取规律,确定分批读取待读取数据所用的数据读取耗时;
(a113)根据每个特定分批次数值对应的数据读取耗时之间的大小关系,在两个第一分批次数选取子区间中选取一子区间作为缩小后的第一分批次数选取区间;
(a114)若缩小后的第一分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第一分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第一分批次数选取区间作为第一目标选取区间。
以第一分批次数选取区间为[1,10]为例,动作(a111)中,按照预设的区间分割策略,将第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,比如,按照平均分割的方式,将第一分批次数选取区间[1,10]分割为子区间[1,5]和子区间[5,10]。然后,确定子区间[1,5]的边界值为1和5,确定子区间[5,10]的边界值为5和10,从而确定得到特定分批次数值为1、5、10。
动作(a112)中,根据待读取数据的数据量、设定时刻网络质量参数和源数据库对应的数据读取规律,计算在不对待读取数据进行分批时,从源数据库中读取待读取数据所用的数据读取耗时。以及,根据待读取数据的数据量、设定时刻网络质量参数和源数据库对应的数据读取规律,计算将待读取数据分为5批时,从源数据库中读取待读取数据所用的数据读取耗时。以及,根据待读取数据的数据量、设定时刻网络质量参数和源数据库对应的数据读取规律,计算将待读取数据分为10批时,从源数据库中读取待读取数据所用的数据读取耗时。
动作(a113)中,比较动作(a112)计算得到的3个数据读取耗时之间的大小关系,根据该大小关系,在两个子区间中选取一子区间作为缩小后的第一分批次数选取区间。选取原则为,选取耗时较少的子区间作为缩小后的第一分批次数选取区间。比如,若不分批时的耗时最大,分为5批时的耗时次之,分为10批时的耗时最小,则选取子区间[5,10]作为缩小后的第一分批次数选取区间。
动作(a114)中,判断缩小后的第一分批次数选取区间还能否被分割为两个数值连续的子区间,判断原则为:若缩小后的第一分批次数选取区间除边界值外还包括位于边界值中间的数值,则表示能够分割,若缩小后的第一分批次数选取区间只包括边界值,则表示不能够分割。动作(a114)中,若缩小后的第一分批次数选取区间能够分割,则返回动作(a111)继续执行分割、计算耗时、缩小的步骤,若不能够分割,则将该不能够分割的缩小后的第一分批次数选取区间作为第一目标选取区间。
续接上例,子区间[5,10]能够被分割,因此返回动作(a111)继续执行分割、计算耗时、缩小的步骤,分别得到逐级缩小后的子区间[7,10]、[7,9]、[7,8],子区间[7,8]不能再分割,因此为第一目标选取区间。然后,在第一目标选取区间内,计算每个分批次数值7和8所对应的数据读取耗时,若分批次数值7对应的数据读取耗时小于8对应的耗时,则确定第一目标分批次数为7,若7和8对应的数据读取耗时相同,则选取较大的分批此数值8作为第一目标分批次数。
以上详细介绍了一种根据待读取数据的数据量、设定时刻的网络质量参数和源数据库对应的数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数的过程。在另一个实施例中,可以设定分批次数从2或其他数值开始逐次累加1,按照分批次数由小到大的顺序计算每个分批次数对应的数据读取耗时,若当前计算的耗时小于前一次计算的耗时,则继续计算后面的次数对应的耗时,若当前计算的耗时大于等于前一次计算的耗时,则使用前一次的分批次数作为第一目标分批次数。其中,其他数值可以为待读取数据的数据量与预定数据的比值,该预定数据可以为每次读取数据所允许的最大读取量。在一个实施例中,也可以首先判断待读取数据的数据量是否大于等于预设条数,若大于等于,则通过上述方式进行分批读取,若小于,则不进行分批读取。
通过以上过程,确定得到在设定时刻时待读取数据对应的数据读取策略之后,步骤S104中,在设定时刻时,按照该数据读取策略从源数据库中读取待读取数据。其中,设定时刻可以为当前时刻或者其他时刻,这里不做限定。一个例子中,确定得到当前时刻待读取数据对应的数据读取策略包括“第一目标分批次数为5次、各批数据的数据量为每批100条”,则步骤S104中,根据该策略,在当前时刻将待读取数据分为5批从源数据库中读取出来,每批读取100条。其中,待读取数据的数据量一共为500条。
根据数据读取策略从源数据库中读取待读取数据之后,执行步骤S106,根据读取出来的待读取数据确定待向目标数据库写入的待写入数据,并获取目标数据库对应的数据写入规律。数据写入规律中记录有目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时。
其中,根据读取出来的待读取数据确定待向目标数据库写入的待写入数据,具体包括以下(b1)和(b2)两种操作中的任意一种:
(b1)获取待读取数据对应的数据清洗规则,根据数据清洗规则,对读取出来的待读取数据进行数据清洗,得到待向目标数据库写入的待写入数据。
(b2)将读取出来的待读取数据作为待向目标数据库写入的待写入数据。
动作(b1)中,获取待读取数据对应的数据清洗规则,然后,根据该数据清洗规则,对读取出来的待读取数据进行数据清洗,清洗得到的数据即为待向目标数据库写入的待写入数据。动作(b2)中,不对读取出来的数据进行数据清洗,直接将读取出来的数据作为待向目标数据库写入的待写入数据。
一个具体的实施例中,查找是否存在待读取数据对应的数据清洗路径,若存在,则说明待读取数据需要进行清洗,则根据该路径获取对应的数据清洗规则,根据该数据清洗规则,对读取出来的待读取数据进行数据清洗,清洗得到的数据即为待向目标数据库写入的待写入数据。若不存在,则说明待读取数据不需要进行清洗,则直接将读取出来的数据作为待向目标数据库写入的待写入数据。
步骤S106中,还获取目标数据库对应的数据写入规律。数据写入规律中记录有目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时。
具体地,本实施例中,目标数据库指的是准备写入数据的数据库。本实施例中,为各种类型的数据库均设置有数据写入规律,各种类型的数据库包括但不限于mysql数据库、Oracle数据库等等。数据写入规律用于记录对应类型的数据库中,各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时。一个示例中,数据写入规律可以通过多次的数据写入实验统计得到,数据写入规律中记录的数据写入耗时可以为多次实验的平均值。
本实施例中,网络质量参数可以包括网络速度,数据写入量可以通过数据写入条数表示,或者,通过写入的数据所占的存储空间大小表示。一种示意中,数据写入规律中记录有对应类型的数据库中,各个预设网络速度区间下、各个预设数据写入条数所对应的数据写入耗时,该耗时的单位为毫秒ms。网络速度区间包括0-1M、1-3M、3-5M、5-10M、10-20M、20-50m、50M以上等区间。
以mysql数据库为例,表2示出了mysql数据库对应的数据写入规律。由表2可见,mysql数据库对应的数据写入规律中,记录了各个预设网络速度区间下、各个预设数据写入条数所对应的数据写入耗时。
表2
在获取待写入数据和目标数据库对应的数据写入规律后,执行步骤S108,根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,确定在设定时刻时待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。
具体地,由于目标数据库对应的数据写入规律中记录有目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时,因此本实施例中,可以参考目标数据库对应的数据写入规律,确定在设定时刻时向目标数据库写入待写入数据对应的数据写入策略。步骤S108中,设定时刻可以为预先设定的进行数据写入的时刻,比如设定每天下午两点为数据写入时刻,则设定时刻为每天下午两点,设定时刻还可以为当前时刻。
步骤S108中确定数据写入策略的过程与步骤S104中确定数据读取策略的过程类似,因此下文不做过多说明。
步骤S108中,根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,确定在设定时刻时待写入数据对应的数据写入策略,具体为:
(b1)根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数;
(b2)按照第二目标分批次数对待写入数据进行分批,并确定分批得到的各批数据的数据量;
(b3)根据第二目标分批次数和各批数据的数据量,生成在设定时刻时待写入数据对应的数据写入策略。
关于动作(b1)至动作(b3)的解释可以参考动作(a1)至动作(a3)的解释,这里不再重复。
动作(b1),根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数,具体包括:
(b11)根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,计算第二分批次数选取区间中的特定分批次数值对应的数据写入耗时,根据该数据写入耗时,在第二分批次数选取区间中通过逐级缩小区间范围的方式得到第二目标选取区间;
(b12)在第二目标选取区间内,根据每个分批次数值所对应的数据写入耗时,选取第二目标分批次数;动作(b11)和(b12)中的数据写入耗时指的是按照对应的分批次数值对待写入数据进行分批后,将待写入数据分批写入目标数据库所用的总耗时。
关于动作(b11)至动作(b12)的解释可以参考动作(a11)至动作(a12)的解释,这里不再重复。
动作(b11),根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,计算第二分批次数选取区间中的特定分批次数值对应的数据写入耗时,根据该数据写入耗时,在第二分批次数选取区间中通过逐级缩小区间范围的方式得到第二目标选取区间,具体包括:
(b111)按照预设的区间分割策略,将第二分批次数选取区间分割为两个数值连续的第二分批次数选取子区间,并确定每个第二分批次数选取子区间的边界值,将该边界值作为特定分批次数值;
(b112)针对每个特定分批次数值,按照该特定分批次数值对待写入数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和数据写入规律,确定分批写入待写入数据所用的数据写入耗时;
(b113)根据每个特定分批次数值对应的数据写入耗时之间的大小关系,在两个第二分批次数选取子区间中选取一子区间作为缩小后的第二分批次数选取区间;
(b114)若缩小后的第二分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第二分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第二分批次数选取区间作为第二目标选取区间。
关于动作(b111)至动作(b114)的解释可以参考动作(a111)至动作(a114)的解释,这里不再重复。
以上详细介绍了一种根据待写入数据的数据量、设定时刻的网络质量参数和目标数据库对应的数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数的过程。在另一个实施例中,可以设定分批次数从2或其他数值开始逐次累加1,按照分批次数由小到大的顺序计算每个分批次数对应的数据写入耗时,若当前计算的耗时小于前一次计算的耗时,则继续计算后面的次数对应的耗时,若当前计算的耗时大于等于前一次计算的耗时,则使用前一次的分批次数作为第二目标分批次数。其中,其他数值可以为待写入数据的数据量与预定数据的比值,该预定数据可以为每次写入数据所允许的最大写入量。在一个实施例中,也可以首先判断待写入数据的数据量是否大于等于预设条数,若大于等于,则通过上述方式进行分批写入,若小于,则不进行分批写入。
通过以上过程,确定得到在设定时刻时待写入数据对应的数据写入策略之后,步骤S108中,在设定时刻时,按照该数据写入策略将待写入数据写入目标数据库。其中,设定时刻可以为当前时刻或者其他时刻,这里不做限定。一个例子中,确定得到当前时刻待写入数据对应的数据写入策略包括“第二目标分批次数为5次、各批数据的数据量为每批100条”,则步骤S108中,根据该策略,在当前时刻将待写入数据分为5批写入目标数据库,每批写入100条。其中,待写入数据的数据量一共为500条。
综上,通过本实施例中的数据同步方法在进行数据同步时,考虑到了数据同步场景中的各项因素,包括源数据库类型、待读取数据的数据量、网络质量参数、目标数据库类型、待写入数据的数据量,还考虑到了预先确定的数据读取规律和数据写入规律,因此通过本实施例确定得到的数据读取策略和数据写入策略进行数据同步时,能够结合具体的数据同步场景,提高数据同步效率,解决现有技术中通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
进一步地,图2为本说明书另一实施例提供的数据同步方法的流程示意图,如图2所示,该流程在图1的基础上,还包括以下步骤:
步骤S110,在根据数据读取策略从源数据库中读取待读取数据之后,根据数据读取策略和待读取数据的数据读取耗时,更新数据读取规律;
步骤S112,在根据数据写入策略将待写入数据写入目标数据库之后,根据数据写入策略和待写入数据的数据写入耗时,更新数据写入规律。
步骤S110和步骤S112的执行顺序不分先后,二者也可以同步执行。
具体地,在根据数据读取策略从源数据库中读取待读取数据之后,根据数据读取策略和待读取数据的数据读取耗时,更新数据读取规律。比如,根据数据读取策略确定每批读取的数据量,从而扩充数据读取规律中记录的数据读取量,根据待读取数据的数据读取耗时,扩充数据读取规律中记录的不同数据读取量所对应的数据读取耗时。
同理,在根据数据写入策略将待写入数据写入目标数据库之后,根据数据写入策略和待写入数据的数据写入耗时,更新数据写入规律。比如,根据数据写入策略确定每批写入的数据量,从而扩充数据写入规律中记录的数据写入量,根据待写入数据的数据写入耗时,扩充数据写入规律中记录的不同数据写入量所对应的数据写入耗时。
在读取数据以及写入数据后,更新数据读取规律和数据写入规律,能够达到丰富数据读取规律和数据写入规律中所记录的数据的效果,从而在多次数据同步后,使得数据读取规律和数据写入规律中所记录的数据更为准确丰富。
在一个具体的实施例中,本实施例中的数据同步方法通过json数据实现,并且设置策略生成器,通过策略生成器生成数据读取策略和数据写入策略,并设置多个SQL执行器,通过该多个SQL执行器实现数据读取和数据写入的过程。本实施例中,可以通过多线程的方式调用SQL执行器以进行数据写入和数据读取。本实施例中,数据清洗可以为同步清洗,则清洗后直接得到数据,也可以为异步清洗,则通过回调的形式获取清洗后的数据。本实施例中,还可以采用jdbc连接池的方式提高数据的读取速度和写入速度。
图3为本说明书一实施例提供的数据同步装置的模块组成示意图。如图3所示,本说明书一实施例提供的一种数据同步装置,该装置包括:
第一获取模块31,用于获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
数据读取模块32,用于根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
第二获取模块33,用于根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
数据写入模块34,用于根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
可选地,数据读取模块32具体用于:根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数;按照所述第一目标分批次数对所述待读取数据进行分批,并确定分批得到的各批数据的数据量;根据所述第一目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待读取数据对应的数据读取策略。
可选地,数据读取模块32还具体用于:根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间;在所述第一目标选取区间内,根据每个分批次数值所对应的所述数据读取耗时,选取第一目标分批次数;其中,所述数据读取耗时指的是按照对应的分批次数值对所述待读取数据进行分批后,分批读取所述待读取数据所用的总耗时。
可选地,数据读取模块32还具体用于:按照预设的区间分割策略,将所述第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,并确定每个所述第一分批次数选取子区间的边界值,将该边界值作为所述特定分批次数值;针对每个所述特定分批次数值,按照该特定分批次数值对所述待读取数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定分批读取所述待读取数据所用的数据读取耗时;根据每个所述特定分批次数值对应的所述数据读取耗时之间的大小关系,在两个所述第一分批次数选取子区间中选取一子区间作为缩小后的第一分批次数选取区间;若缩小后的所述第一分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第一分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第一分批次数选取区间作为所述第一目标选取区间。
可选地,第二获取模块33具体用于:获取所述待读取数据对应的数据清洗规则,根据所述数据清洗规则,对读取出来的所述待读取数据进行数据清洗,得到待向目标数据库写入的待写入数据。
可选地,数据写入模块34具体用于:根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数;按照所述第二目标分批次数对所述待写入数据进行分批,并确定分批得到的各批数据的数据量;根据所述第二目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待写入数据对应的数据写入策略。
可选地,所述装置还包括更新模块,用于:在根据所述数据读取策略从所述源数据库中读取所述待读取数据之后,根据所述数据读取策略和所述待读取数据的数据读取耗时,更新所述数据读取规律;在根据所述数据写入策略将所述待写入数据写入所述目标数据库之后,根据所述数据写入策略和所述待写入数据的数据写入耗时,更新所述数据写入规律。
本实施例中,在读取数据时,可以根据待读取数据的数据量、网络质量参数和待读取数据的源数据库对应的数据读取规律,确定待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据;在写入数据时,可以根据待写入数据的数据量、网络质量参数和待写入数据的目标数据库对应的数据写入规律,确定待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。因此本实施例中在进行数据同步时,考虑到了数据同步场景中的各项因素,包括源数据库类型、待读取数据的数据量、网络质量参数、目标数据库类型、待写入数据的数据量,还考虑到了预先确定的数据读取规律和数据写入规律,因此通过本实施例确定得到的数据读取策略和数据写入策略进行数据同步时,能够结合具体的数据同步场景,提高数据同步效率,解决现有技术中通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
本说明书一实施例提供的数据同步装置能够实现前述数据同步方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
进一步地,本说明书一个实施例还提供了一种数据同步设备,图4为本说明书一实施例提供的数据同步设备的结构示意图,如图4所示,该设备包括:存储器601、处理器602、总线603和通信接口604。存储器601、处理器602和通信接口604通过总线603进行通信,通信接口604可以包括输入输出接口,输入输出接口包括但不限于键盘、鼠标、显示器、麦克风、扩音器等。
图4中,所述存储器601上存储有可在所述处理器602上运行的计算机可执行指令,所述计算机可执行指令被所述处理器602执行时实现以下流程:
获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
可选地,所述计算机可执行指令被所述处理器执行时,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,包括:根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数;按照所述第一目标分批次数对所述待读取数据进行分批,并确定分批得到的各批数据的数据量;根据所述第一目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待读取数据对应的数据读取策略。
可选地,所述计算机可执行指令被所述处理器执行时,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数,包括:根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间;在所述第一目标选取区间内,根据每个分批次数值所对应的所述数据读取耗时,选取第一目标分批次数;其中,所述数据读取耗时指的是按照对应的分批次数值对所述待读取数据进行分批后,分批读取所述待读取数据所用的总耗时。
可选地,所述计算机可执行指令被所述处理器执行时,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间,包括:按照预设的区间分割策略,将所述第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,并确定每个所述第一分批次数选取子区间的边界值,将该边界值作为所述特定分批次数值;针对每个所述特定分批次数值,按照该特定分批次数值对所述待读取数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定分批读取所述待读取数据所用的数据读取耗时;根据每个所述特定分批次数值对应的所述数据读取耗时之间的大小关系,在两个所述第一分批次数选取子区间中选取一子区间作为缩小后的第一分批次数选取区间;若缩小后的所述第一分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第一分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第一分批次数选取区间作为所述第一目标选取区间。
可选地,所述计算机可执行指令被所述处理器执行时,根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,包括:获取所述待读取数据对应的数据清洗规则,根据所述数据清洗规则,对读取出来的所述待读取数据进行数据清洗,得到待向目标数据库写入的待写入数据。
可选地,所述计算机可执行指令被所述处理器执行时,根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,包括:根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数;按照所述第二目标分批次数对所述待写入数据进行分批,并确定分批得到的各批数据的数据量;根据所述第二目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待写入数据对应的数据写入策略。
可选地,所述计算机可执行指令被所述处理器执行时,还包括:在根据所述数据读取策略从所述源数据库中读取所述待读取数据之后,根据所述数据读取策略和所述待读取数据的数据读取耗时,更新所述数据读取规律;在根据所述数据写入策略将所述待写入数据写入所述目标数据库之后,根据所述数据写入策略和所述待写入数据的数据写入耗时,更新所述数据写入规律。
本实施例中,在读取数据时,可以根据待读取数据的数据量、网络质量参数和待读取数据的源数据库对应的数据读取规律,确定待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据;在写入数据时,可以根据待写入数据的数据量、网络质量参数和待写入数据的目标数据库对应的数据写入规律,确定待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。因此本实施例中在进行数据同步时,考虑到了数据同步场景中的各项因素,包括源数据库类型、待读取数据的数据量、网络质量参数、目标数据库类型、待写入数据的数据量,还考虑到了预先确定的数据读取规律和数据写入规律,因此通过本实施例确定得到的数据读取策略和数据写入策略进行数据同步时,能够结合具体的数据同步场景,提高数据同步效率,解决现有技术中通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
本说明书一实施例提供的数据同步设备能够实现前述数据同步方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
进一步地,本说明书另一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:
获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
可选地,所述计算机可执行指令被处理器执行时,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,包括:根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数;按照所述第一目标分批次数对所述待读取数据进行分批,并确定分批得到的各批数据的数据量;根据所述第一目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待读取数据对应的数据读取策略。
可选地,所述计算机可执行指令被处理器执行时,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数,包括:根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间;在所述第一目标选取区间内,根据每个分批次数值所对应的所述数据读取耗时,选取第一目标分批次数;其中,所述数据读取耗时指的是按照对应的分批次数值对所述待读取数据进行分批后,分批读取所述待读取数据所用的总耗时。
可选地,所述计算机可执行指令被处理器执行时,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间,包括:按照预设的区间分割策略,将所述第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,并确定每个所述第一分批次数选取子区间的边界值,将该边界值作为所述特定分批次数值;针对每个所述特定分批次数值,按照该特定分批次数值对所述待读取数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定分批读取所述待读取数据所用的数据读取耗时;根据每个所述特定分批次数值对应的所述数据读取耗时之间的大小关系,在两个所述第一分批次数选取子区间中选取一子区间作为缩小后的第一分批次数选取区间;若缩小后的所述第一分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第一分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第一分批次数选取区间作为所述第一目标选取区间。
可选地,所述计算机可执行指令被处理器执行时,根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,包括:获取所述待读取数据对应的数据清洗规则,根据所述数据清洗规则,对读取出来的所述待读取数据进行数据清洗,得到待向目标数据库写入的待写入数据。
可选地,所述计算机可执行指令被处理器执行时,根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,包括:根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数;按照所述第二目标分批次数对所述待写入数据进行分批,并确定分批得到的各批数据的数据量;根据所述第二目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待写入数据对应的数据写入策略。
可选地,所述计算机可执行指令被处理器执行时,还包括:在根据所述数据读取策略从所述源数据库中读取所述待读取数据之后,根据所述数据读取策略和所述待读取数据的数据读取耗时,更新所述数据读取规律;在根据所述数据写入策略将所述待写入数据写入所述目标数据库之后,根据所述数据写入策略和所述待写入数据的数据写入耗时,更新所述数据写入规律。
本实施例中,在读取数据时,可以根据待读取数据的数据量、网络质量参数和待读取数据的源数据库对应的数据读取规律,确定待读取数据对应的数据读取策略,并根据数据读取策略从源数据库中读取待读取数据;在写入数据时,可以根据待写入数据的数据量、网络质量参数和待写入数据的目标数据库对应的数据写入规律,确定待写入数据对应的数据写入策略,并根据数据写入策略将待写入数据写入目标数据库。因此本实施例中在进行数据同步时,考虑到了数据同步场景中的各项因素,包括源数据库类型、待读取数据的数据量、网络质量参数、目标数据库类型、待写入数据的数据量,还考虑到了预先确定的数据读取规律和数据写入规律,因此通过本实施例确定得到的数据读取策略和数据写入策略进行数据同步时,能够结合具体的数据同步场景,提高数据同步效率,解决现有技术中通过预先配置好的数据同步规则进行数据同步所具有的数据同步效率低的问题。
本说明书一实施例提供的存储介质能够实现前述数据同步方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
其中,所述的计算机可读存储介质包括只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本说明书的实施例可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (14)
1.一种数据同步方法,其特征在于,包括:
获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,包括:
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数;
按照所述第一目标分批次数对所述待读取数据进行分批,并确定分批得到的各批数据的数据量;
根据所述第一目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待读取数据对应的数据读取策略。
3.根据权利要求2所述的方法,其特征在于,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数,包括:
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间;
在所述第一目标选取区间内,根据每个分批次数值所对应的所述数据读取耗时,选取第一目标分批次数;其中,所述数据读取耗时指的是按照对应的分批次数值对所述待读取数据进行分批后,分批读取所述待读取数据所用的总耗时。
4.根据权利要求3所述的方法,其特征在于,根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间,包括:
按照预设的区间分割策略,将所述第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,并确定每个所述第一分批次数选取子区间的边界值,将该边界值作为所述特定分批次数值;
针对每个所述特定分批次数值,按照该特定分批次数值对所述待读取数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定分批读取所述待读取数据所用的数据读取耗时;
根据每个所述特定分批次数值对应的所述数据读取耗时之间的大小关系,在两个所述第一分批次数选取子区间中选取一子区间作为缩小后的第一分批次数选取区间;
若缩小后的所述第一分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第一分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第一分批次数选取区间作为所述第一目标选取区间。
5.根据权利要求1所述的方法,其特征在于,根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,包括:
获取所述待读取数据对应的数据清洗规则,根据所述数据清洗规则,对读取出来的所述待读取数据进行数据清洗,得到待向目标数据库写入的待写入数据。
6.根据权利要求1所述的方法,其特征在于,根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,包括:
根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数;
按照所述第二目标分批次数对所述待写入数据进行分批,并确定分批得到的各批数据的数据量;
根据所述第二目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待写入数据对应的数据写入策略。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
在根据所述数据读取策略从所述源数据库中读取所述待读取数据之后,根据所述数据读取策略和所述待读取数据的数据读取耗时,更新所述数据读取规律;
在根据所述数据写入策略将所述待写入数据写入所述目标数据库之后,根据所述数据写入策略和所述待写入数据的数据写入耗时,更新所述数据写入规律。
8.一种数据同步装置,其特征在于,包括:
第一获取模块,用于获取待读取数据和所述待读取数据的源数据库对应的数据读取规律;其中,所述数据读取规律中记录有所述源数据库在各个预设网络质量参数下各个预设数据读取量所对应的数据读取耗时;
数据读取模块,用于根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定在所述设定时刻时所述待读取数据对应的数据读取策略,并根据所述数据读取策略从所述源数据库中读取所述待读取数据;
第二获取模块,用于根据读取出来的所述待读取数据确定待向目标数据库写入的待写入数据,并获取所述目标数据库对应的数据写入规律;其中,所述数据写入规律中记录有所述目标数据库在各个预设网络质量参数下各个预设数据写入量所对应的数据写入耗时;
数据写入模块,用于根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,确定在所述设定时刻时所述待写入数据对应的数据写入策略,并根据所述数据写入策略将所述待写入数据写入所述目标数据库。
9.根据权利要求8所述的装置,其特征在于,所述数据读取模块具体用于:
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,在预先确定的第一分批次数选取区间中选取第一目标分批次数;
按照所述第一目标分批次数对所述待读取数据进行分批,并确定分批得到的各批数据的数据量;
根据所述第一目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待读取数据对应的数据读取策略。
10.根据权利要求9所述的装置,其特征在于,所述数据读取模块还具体用于:
根据所述待读取数据的数据量、设定时刻的网络质量参数和所述数据读取规律,计算所述第一分批次数选取区间中的特定分批次数值对应的数据读取耗时;根据所述数据读取耗时,在所述第一分批次数选取区间中通过逐级缩小区间范围的方式得到第一目标选取区间;
在所述第一目标选取区间内,根据每个分批次数值所对应的所述数据读取耗时,选取第一目标分批次数;其中,所述数据读取耗时指的是按照对应的分批次数值对所述待读取数据进行分批后,分批读取所述待读取数据所用的总耗时。
11.根据权利要求10所述的装置,其特征在于,所述数据读取模块还具体用于:
按照预设的区间分割策略,将所述第一分批次数选取区间分割为两个数值连续的第一分批次数选取子区间,并确定每个所述第一分批次数选取子区间的边界值,将该边界值作为所述特定分批次数值;
针对每个所述特定分批次数值,按照该特定分批次数值对所述待读取数据进行分批,并根据各批数据的数据量、设定时刻的网络质量参数和所述数据读取规律,确定分批读取所述待读取数据所用的数据读取耗时;
根据每个所述特定分批次数值对应的所述数据读取耗时之间的大小关系,在两个所述第一分批次数选取子区间中选取一子区间作为缩小后的第一分批次数选取区间;
若缩小后的所述第一分批次数选取区间能够被分割成两个数值连续的子区间,则返回对第一分批次数选取区间进行分割的步骤继续执行,若不能,则将缩小后的第一分批次数选取区间作为所述第一目标选取区间。
12.根据权利要求8所述的装置,其特征在于,所述第二获取模块具体用于:
获取所述待读取数据对应的数据清洗规则,根据所述数据清洗规则,对读取出来的所述待读取数据进行数据清洗,得到待向目标数据库写入的待写入数据。
13.根据权利要求8所述的装置,其特征在于,所述数据写入模块具体用于:
根据所述待写入数据的数据量、设定时刻的网络质量参数和所述数据写入规律,在预先确定的第二分批次数选取区间中选取第二目标分批次数;
按照所述第二目标分批次数对所述待写入数据进行分批,并确定分批得到的各批数据的数据量;
根据所述第二目标分批次数和所述各批数据的数据量,生成在所述设定时刻时所述待写入数据对应的数据写入策略。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述装置还包括更新模块,用于:
在根据所述数据读取策略从所述源数据库中读取所述待读取数据之后,根据所述数据读取策略和所述待读取数据的数据读取耗时,更新所述数据读取规律;
在根据所述数据写入策略将所述待写入数据写入所述目标数据库之后,根据所述数据写入策略和所述待写入数据的数据写入耗时,更新所述数据写入规律。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010070528.1A CN111291119B (zh) | 2020-01-21 | 2020-01-21 | 数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010070528.1A CN111291119B (zh) | 2020-01-21 | 2020-01-21 | 数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291119A CN111291119A (zh) | 2020-06-16 |
CN111291119B true CN111291119B (zh) | 2023-04-25 |
Family
ID=71030698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010070528.1A Active CN111291119B (zh) | 2020-01-21 | 2020-01-21 | 数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291119B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597153B (zh) * | 2020-12-09 | 2023-07-25 | 杭州趣链科技有限公司 | 一种基于区块链的数据存储方法、装置及存储介质 |
CN112527809B (zh) * | 2020-12-10 | 2023-10-27 | 盛立安元科技(杭州)股份有限公司 | 一种数据库数据写入方法、装置、设备及存储介质 |
CN112800026B (zh) * | 2021-01-18 | 2024-02-06 | 中国银联股份有限公司 | 一种数据转移节点、方法、系统及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729366A (zh) * | 2017-09-08 | 2018-02-23 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN109189785A (zh) * | 2018-08-10 | 2019-01-11 | 平安科技(深圳)有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979549B2 (en) * | 2005-11-30 | 2011-07-12 | Microsoft Corporation | Network supporting centralized management of QoS policies |
US20070124485A1 (en) * | 2005-11-30 | 2007-05-31 | Microsoft Corporation | Computer system implementing quality of service policy |
-
2020
- 2020-01-21 CN CN202010070528.1A patent/CN111291119B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729366A (zh) * | 2017-09-08 | 2018-02-23 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN109189785A (zh) * | 2018-08-10 | 2019-01-11 | 平安科技(深圳)有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于Sync Framework的矿用防爆手机数据同步技术研究与应用;李明建;;计算机应用与软件(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111291119A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291119B (zh) | 数据同步方法和装置 | |
US10055437B2 (en) | Method and apparatus for querying data in database | |
CN108140050B (zh) | 一种使用布隆过滤器过滤文件的方法及装置 | |
EP3640813B1 (en) | Cluster-based random walk method and apparatus | |
CN110968585B (zh) | 面向列的存储方法、装置、设备及计算机可读存储介质 | |
CN110727702B (zh) | 数据查询方法、装置、终端和计算机可读存储介质 | |
WO2021169386A1 (zh) | 一种图数据处理方法、装置、设备、介质 | |
CN111008241A (zh) | 数据同步方法、装置、存储介质和计算机设备 | |
Larsson et al. | A scheme for more efficient usage of CALPHAD data in simulations | |
CN110232095B (zh) | 一种数据同步方法、装置、存储介质和服务器 | |
CN104991836A (zh) | 恢复数据库的方法、装置及数据库服务器 | |
CN114648105A (zh) | 多输出神经网络的切片方法、装置、芯片及存储介质 | |
CN114238389A (zh) | 数据库查询优化方法、装置、电子设备、介质和程序产品 | |
CN108415990B (zh) | 数据质量监控方法、装置、计算机设备和存储介质 | |
CN107391508A (zh) | 数据加载方法和系统 | |
US10776334B2 (en) | Random walking and cluster-based random walking method, apparatus and device | |
CN112001116A (zh) | 一种云资源容量预测方法及装置 | |
CN116561377A (zh) | 一种图数据集的流式图划分方法 | |
CN111639060A (zh) | 一种火电厂时序数据处理方法、装置、设备及介质 | |
CN111783977B (zh) | 一种基于分区域梯度更新的神经网络训练过程中间值存储压缩方法和装置 | |
CN112767056B (zh) | 业务数据预测方法、装置、计算机设备和存储介质 | |
CN112069212B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP2010128830A (ja) | 空間データの出力処理方法、そのプログラム及びデータ処理システム | |
CN117009717B (zh) | Web表格的动态数据计算方法及装置 | |
CN115563103A (zh) | 一种多维度聚合方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |