数据同步方法、装置、计算机设备及存储介质与流程

文档序号:24306618发布日期:2021-03-17 00:59阅读:75来源:国知局
数据同步方法、装置、计算机设备及存储介质与流程

本申请涉及大数据技术领域,尤其涉及一种数据同步方法、装置、计算机设备及存储介质。



背景技术:

随着计算机技术的发展,大数据的应用也越来越广泛。数据同步是大数据技术中不可缺少的一环,为了更好地对海量数据进行同步,出现了一些数据同步工具。

但是,现有的数据同步工具在使用中均存在一些缺点和不便。例如,有的数据同步工具容易出现数据重复,还需要在数据同步后再进行数据去重的操作,在数据量较大时还需要耗费时间进行数据去重,使得数据同步的效率较低;还有的数据同步软件只能单机运行,在进行大数据处理时运行压力较大,需要牺牲同步速度,数据同步效率依然较低。



技术实现要素:

本申请实施例的目的在于提出一种数据同步方法、装置、计算机设备及存储介质,以解决数据同步效率较低的问题。

为了解决上述技术问题,本申请实施例提供一种数据同步方法,采用了如下所述的技术方案:

根据触发的数据同步指令,获取同步配置文件;

基于所述同步配置文件对spark进行设置;

通过所述同步配置文件访问数据源表,并对所述数据源表中的待同步数据进行数据分割;

将分割后的待同步数据分配给所述spark中的各进程;

通过所述各进程对所述分割后的待同步数据进行同步。

进一步的,在所述根据触发的数据同步指令,获取同步配置文件之前,还包括:

当接收到终端发送的配置指令时,通过所述终端展示同步配置页面;

通过所述终端获取所述同步配置页面中输入的任务配置信息;

根据所述任务配置信息生成同步配置文件。

进一步的,所述基于所述同步配置文件对spark进行设置包括:

从所述同步配置文件中提取数据源地址和数据源表名;

根据所述数据源地址访问所述数据源表名对应的数据源表;

获取所述数据源表中待同步数据的数据量;

根据获取到的数据量对spark进行进程设置和内存设置。

进一步的,所述通过所述同步配置文件访问数据源表,并对所述数据源表中的待同步数据进行数据分割包括:

通过所述同步配置文件访问数据源表;

在所述数据源表中查询待同步数据;

对查询到的待同步数据进行数据分割,其中,数据分割方式包括:伪列分割、结果伪列分割、时间分割或随机字段分割。

进一步的,所述在所述数据源表中查询待同步数据包括:

从所述同步配置文件中读取预设的数据分割方式;

当所述数据分割方式为结果伪列分割时,获取预设的创建截止时间和查询条件;

通过所述创建截止时间和所述查询条件,在所述数据源表中查询待同步数据。

进一步的,所述将分割后的待同步数据分配给所述spark中的各进程包括:

将分割后的待同步数据分配给所述各进程,并通过所述各进程将分配到的待同步数据持久化到所述spark的预设磁盘中。

进一步的,所述通过所述各进程对所述分割后的待同步数据进行同步包括:

从所述同步配置文件中获取目标存储目录;

通过所述各进程将所述预设磁盘中的待同步数据同步到所述目标存储目录,并删除所述预设磁盘中的待同步数据。

为了解决上述技术问题,本申请实施例还提供一种数据同步装置,采用了如下所述的技术方案:

文件获取模块,用于根据触发的数据同步指令,获取同步配置文件;

设置模块,用于基于所述同步配置文件对spark进行设置;

源表访问模块,用于通过所述同步配置文件访问数据源表,并对所述数据源表中的待同步数据进行数据分割;

数据分配模块,用于将分割后的待同步数据分配给所述spark中的各进程;

数据同步模块,用于通过所述各进程对所述分割后的待同步数据进行同步。

为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:

根据触发的数据同步指令,获取同步配置文件;

基于所述同步配置文件对spark进行设置;

通过所述同步配置文件访问数据源表,并对所述数据源表中的待同步数据进行数据分割;

将分割后的待同步数据分配给所述spark中的各进程;

通过所述各进程对所述分割后的待同步数据进行同步。

为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:

根据触发的数据同步指令,获取同步配置文件;

基于所述同步配置文件对spark进行设置;

通过所述同步配置文件访问数据源表,并对所述数据源表中的待同步数据进行数据分割;

将分割后的待同步数据分配给所述spark中的各进程;

通过所述各进程对所述分割后的待同步数据进行同步。

与现有技术相比,本申请实施例主要有以下有益效果:在进行数据同步时,先获取同步配置文件,根据同步配置文件对spark进行设置,以便spark的运行时的硬件资源能够与待同步数据相匹配,保证数据同步的效率,同时,基于spark进行数据同步,也可以减少单机运行的压力;根据同步配置文件访问数据源表,对数据源表中的待同步数据进行数据分割,各进程均分配得到一份待同步数据,可以并发式地对数据源表进行同步,提高了数据同步的效率。

附图说明

为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的数据同步方法的一个实施例的流程图;

图3是根据本申请的数据同步装置的一个实施例的结构示意图;

图4是根据本申请的计算机设备的一个实施例的结构示意图。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

如图1所示,系统架构100可以包括终端设备101,网络102和服务器103,集群服务器104、105,数据存储服务器106。网络102用以在终端设备101,服务器103,集群服务器104、105,数据存储服务器106之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

服务器103可以是提供各种服务的服务器,例如对终端设备101上显示的页面提供支持的后台服务器,本申请中的服务器103可以提供数据同步的控制服务。集群服务器104、105可以是spark集群中的服务器,实现spark的功能,其中,服务器103也可以是集群服务器。数据存储服务器106可以是存储数据源表的服务器。

需要说明的是,本申请实施例所提供的数据同步方法一般由服务器执行,相应地,数据同步装置一般设置于服务器中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

继续参考图2,示出了根据本申请的数据同步方法的一个实施例的流程图。所述的数据同步方法,包括以下步骤:

步骤s201,根据触发的数据同步指令,获取同步配置文件。

在本实施例中,数据同步方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式进行通信。需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。

具体地,数据同步指令可以由用户在终端触发,终端将数据同步指令发送至服务器,也可以由服务器自动触发数据同步指令,例如通过定时任务触发数据同步指令。服务器根据数据同步指令,访问预先配置好的同步配置文件。同步配置文件记录了数据同步任务的任务配置信息,包括数据源地址、数据源表名、数据源表的预设数据量、目标表名、数据分割方式等。同步配置文件用于指示服务器进行数据同步,同步配置文件可以实现增量同步任务和全量同步任务。

需要强调的是,为进一步保证上述同步配置文件的私密和安全性,上述同步配置文件还可以存储于一区块链的节点中。

本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

步骤s202,基于同步配置文件对spark进行设置。

具体地,数据同步可以基于spark集群实现。服务器从同步配置文件中读取预设数据量,预设数据量可以是数据源表中待同步数据的数据量估计值,根据预设数据量对spark进行配置,为spark分配硬件资源,具体可以是对spark集群进行进程(executor)设置和内存设置。

对于spark,其运行架构包括集群资源管理器(clustermanager)、运行作业任务的工作节点(workernode)、每个应用的任务控制节点(driver)和每个工作节点上负责具体任务的执行进程(executor)。

服务器读取预设数据量后,获取预先建立的资源配置表,在资源配置表中查询与预设数据量相匹配的资源设置信息,根据资源设置信息向spark分配硬件资源。

举例说明,当预设数据量小于6千万时,设置进程数量为6,内存为8g;当数据量大于6千万时,每千万数据量分配一个进程,每亿数据量增加1g内存。为减轻源数据库所在的数据存储服务器的中央处理器cpu和spark集群的压力,可以给进程和内存设置上限值,例如,可以设置进程数量最大为10,内存最大为20g。还可以根据进程的数量设置spark-jdbc读取数据源表的并行数,使并行数与进程数量相同,以保证充分利用spark集群进行数据同步。

步骤s203,通过同步配置文件访问数据源表,并对数据源表中的待同步数据进行数据分割。

其中,数据源表位于数据存储服务器中,用于存储数据。

具体地,同步配置文件可以记录数据源表的地址,并记录要对数据源表中哪些数据进行同步,即记录了待同步数据的相关信息。服务器根据数据源表的地址读取数据源表,在数据源表中确定待同步数据。

为了提高数据同步的效率,服务器可以对待同步数据进行数据分割,分割的份数可以与设置好的进程数量相同。待同步数据可以进行均等分割,每份待同步数据的数据量保持相同,以避免出现数据倾斜的问题。

步骤s204,将分割后的待同步数据分配给spark中的各进程。

具体地,服务器将分割后的待同步数据分配给spark中的进程,每个进程均可以分得一份待同步数据。数据分割可以由各进程进行,每个进程标记一部分待同步数据,且每个进程标记的待同步数据互不相同;进程标记的待同步数据将分配给该进程进行处理。

步骤s205,通过各进程对分割后的待同步数据进行同步。

具体地,数据同步是在spark集群上实现的,spark集群工作时,各进程同时进行数据同步,并行读取待同步数据,将待同步数据保存到预设的目标存储目录中。

本申请支持各类关系数据库间的数据同步,例如,可以将oracle、mysql和postgresql数据库中的数据同步到hive或者hdfs。

在一个实施例中,数据同步方法的流程包括:在同步配置页面中填写任务配置信息,生成任务shell脚本和同步配置文件,将shell脚本发送至调度平台(例如azkaban,一种工作流控制引擎,可以解决多个spark任务之间的依赖关系),由调度平台执行脚本,操控spark依据数据同步配置文件进行数据同步。

本实施例中,在进行数据同步时,先获取同步配置文件,根据同步配置文件对spark进行设置,以便spark的运行时的硬件资源能够与待同步数据相匹配,保证数据同步的效率,同时,基于spark进行数据同步,也可以减少单机运行的压力;根据同步配置文件访问数据源表,对数据源表中的待同步数据进行数据分割,各进程均分配得到一份待同步数据,可以并发式地对数据源表进行同步,提高了数据同步的效率。

进一步的,上述步骤s201之前,还可以包括:当接收到终端发送的配置指令时,通过终端展示同步配置页面;通过终端获取同步配置页面中输入的任务配置信息;根据任务配置信息生成同步配置文件。

其中,配置指令可以是请求对数据同步任务进行配置的指令。

具体地,本申请中的服务器搭建有数据同步平台,数据同步平台提供可视化的任务配置方式。用户在终端访问数据处理平台的用户页面,可以在用户页面中触发配置指令,由终端将配置指令发送至服务器。服务器接收到配置指令后,通过终端展示同步配置页面。

同步配置页面用于对数据同步任务进行所见即所得的配置,用户无需编写复杂的脚本,简化了数据同步操作的配置,提高了数据同步的效率。用户可以在同步配置页面中输入各种任务配置信息,包括数据源地址、数据源表名、数据源表的预设数据量、同步条件、数据分割方式、目标存储目录等。服务器根据任务信息生成同步配置文件,在进行数据同步时,依据同步配置文件中的任务配置信息进行任务同步。

本实施例中,通过在同步配置页面中根据需求录入任务配置信息即可自动生成同步配置文件,操作简便,调整灵活,提高了数据同步的效率。

进一步的,上述步骤s202可以包括:从同步配置文件中提取数据源地址和数据源表名;根据数据源地址访问数据源表名对应的数据源表;获取数据源表中待同步数据的数据量;根据获取到的数据量对spark进行进程设置和内存设置。

具体地,同步配置文件中可以记录数据源地址和数据源表名,服务器可以根据数据源地址读取数据源表名所对应的数据源表,并通过数据量查询指令获取数据源表中待同步数据的数据量。服务器可根据实际查询到的数据量对spark进行进程设置和内存设置,以便使spark集群的硬件资源更好地适配实际的数据量,保证数据同步的效率。

本实施例中,访问数据源表后获取数据源表中待同步数据实际的数据量,根据实际的数据量对spark进行设置,保证了数据同步的效率。

进一步的,上述步骤s203可以包括:通过同步配置文件访问数据源表;在数据源表中查询待同步数据;对查询到的待同步数据进行数据分割,其中,数据分割方式包括:伪列分割、结果伪列分割、时间分割或随机字段分割。

具体地,服务器根据同步配置文件访问数据源表,同步配置文件中可以记录同步条件,例如对哪些字段进行同步,根据哪些条件进行数据查询并将查询到的数据作为待同步数据等;同步配置文件中还可以记录数据分割方式,数据分割方式与同步条件相关,也与数据源表的特性相关;数据分割方式也可以不记录在同步配置文件中,由服务器根据同步条件和数据源表确定。

服务器根据同步条件在数据源表中查询待同步数据,并根据对应的数据分割方式对待同步数据进行数据分割,其中,数据分割方式包括:伪列(rowid)分割、结果伪列(rownum)分割、时间分割和随机字段分割。

其中,伪列(rowid)是oracle数据库特有的,建立表的时候,oracle数据库会为每个表建立rowid列,作为数据库中每一条记录的标识,存储每条记录的存储位置,但是rowid并不存储在原来的数据表中,因此叫做伪列。所以当数据源表来自oracle数据库时,可以采用伪列分割,采用伪列分割时,待同步数据分割均匀,且查询效率高。可以理解,来自oracle数据库的待同步数据并不局限于伪列分割这一种数据分割方式。

rownum也是oracle数据库的伪列,是对查询结果集加的一个伪列,即先查到结果集之后再加上去的一个列,是符合查询条件的结果的序列号。

采用时间分割方式时,可以基于创建时间这一字段,也可以基于修改时间这一字段。在增量同步任务中,可以优先选择时间分割方式。

数据源表中的每一条记录可以有多个字段,因此还可以进行随机字段分割,即任意选择其中一个字段,将其转化为字节流,根据字节流的数值范围进行分割,字节流数值处于某个区间的记录由被某一进程进行同步。在进行随机字段分割时,可以优选uuid(universallyuniqueidentifier,通用唯一识别码)型字段。

在进行数据分割时,可以选择伪劣分割、结果伪劣分割、时间分割、随机分割中的一种。

在一个实施例中,上述在数据源表中查询待同步数据可以包括:从同步配置文件中读取预设的数据分割方式;当数据分割方式为结果伪列分割时,获取预设的创建截止时间和查询条件;通过创建截止时间和查询条件,在数据源表中查询待同步数据。

具体地,各进程并行读取数据源表、在数据源表中进行查询,并对待同步数据进行分割。因为结果伪劣是对查询结果添加的一个列,在查询过程中,如果有新的数据进入数据源表,同样的查询条件会导致各进程的查询结果不同,不同的rownum可能指向同一个数据,导致数据重复的问题。

因此,可以先从同步配置文件中读取预设的数据分割方式,当数据分割方式是结果伪劣分割时,再获取预设的创建截止时间和查询条件。创建截止时间作为限制条件,规定了查询到的数据的创建时间必须在某一个时间之前。由此根据创建截止时间和查询条件进行多并发查询时,避免了数据重复的风险。

服务器可以在查询的sql语句中使用创建截止时间做where条件来限制,保证查询的数据是在某个固定时间之前生成的,以此保证每个进程读取到的快照是相同的,避免数据重复的出现。

本实施例中,在数据分割方式为结果伪劣分割时,通过创建截止时间进行限制,避免多并发时数据重复的风险,保证了数据同步的准确性。

本实施例中,由多个进程对待同步数据进行数据分割,以便各进程可以分别针对一份待同步数据进行处理,提高了数据同步的效率。

进一步的,上述步骤s204可以包括:将分割后的待同步数据分配给各进程,并通过各进程将分配到的待同步数据持久化到spark的预设磁盘中。

具体地,每个进程均对待同步数据进行数据分割,在数据分割时,每个进程将待同步数据中的一部分作为自己将要处理的数据。

服务器通过各进程将待同步数据持久化到spark集群的预设磁盘中,每个进程将分配给自己的待同步数据进行持久化。如果不进行持久化,数据同步时需要不断访问上游的数据源表,速度较慢。而将数据源表中的待同步数据持久化到spark集群本地的预设磁盘中后,从本地的预设磁盘中读取待同步数据的速度可以大大加快。在一个实施例中,可以通过dataframe.persist(storagelevel.memory_and_disk)进行持久化操作。

本实施例中,各进程将分配好的待同步数据持久化到spark的预设磁盘,在进行数据同步时从预设磁盘中读取待同步数据,提高了数据同步的效率。

进一步的,上述步骤s205可以包括:从同步配置文件中获取目标存储目录;通过各进程将预设磁盘中的待同步数据同步到目标存储目录,并删除预设磁盘中的待同步数据。

具体地,预设磁盘并非待同步数据的最终存储位置,服务器从同步配置文件中获取目标存储目录,指示各进程将预设磁盘中的待同步数据同步到目标存储目录,以便完成最终的数据同步,并在数据同步完成后将预设磁盘中的待同步数据删除。

本实施例中,将预设磁盘中的待同步数据同步到目标存储目录中,以便将待同步数据存储到最终的存储区域,完成数据同步。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种数据同步装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图3所示,本实施例所述的数据同步装置300包括:文件获取模块301、设置模块302、源表访问模块303、数据分配模块304以及数据同步模块305。

其中:

文件获取模块301,用于根据触发的数据同步指令,获取同步配置文件。

设置模块302,用于基于同步配置文件对spark进行设置。

源表访问模块303,用于通过同步配置文件访问数据源表,并对数据源表中的待同步数据进行数据分割。

数据分配模块304,用于将分割后的待同步数据分配给spark中的各进程。

数据同步模块305,用于通过各进程对分割后的待同步数据进行同步。

本实施例中,在进行数据同步时,先获取同步配置文件,根据同步配置文件对spark进行设置,以便spark的运行时的硬件资源能够与待同步数据相匹配,保证数据同步的效率,同时,基于spark进行数据同步,也可以减少单机运行的压力;根据同步配置文件访问数据源表,对数据源表中的待同步数据进行数据分割,各进程均分配得到一份待同步数据,可以并发式地对数据源表进行同步,提高了数据同步的效率。

在本实施例的一些可选的实现方式中,数据同步装置300还包括:页面展示模块、信息获取模块以及文件生成模块,其中:

页面展示模块,用于当接收到终端发送的配置指令时,通过终端展示同步配置页面。

信息获取模块,用于通过终端获取同步配置页面中输入的任务配置信息。

文件生成模块,用于根据任务配置信息生成同步配置文件。

本实施例中,通过在同步配置页面中根据需求录入任务配置信息即可自动生成同步配置文件,操作简便,调整灵活,提高了数据同步的效率。

在本实施例的一些可选的实现方式中,设置模块302可以包括:提取子模块、访问子模块、获取子模块以及设置子模块,其中:

提取子模块,用于从同步配置文件中提取数据源地址和数据源表名。

访问子模块,用于根据数据源地址访问数据源表名对应的数据源表。

获取子模块,用于获取数据源表中待同步数据的数据量。

设置子模块,用于根据获取到的数据量对spark进行进程设置和内存设置。

本实施例中,访问数据源表后获取数据源表中待同步数据实际的数据量,根据实际的数据量对spark进行设置,保证了数据同步的效率。

在本实施例的一些可选的实现方式中,源表访问模块303可以包括:源表访问子模块、数据查询子模块以及数据分割子模块,其中:

源表访问子模块,用于通过同步配置文件访问数据源表。

数据查询子模块,用于在数据源表中查询待同步数据。

数据分割子模块,用于对查询到的待同步数据进行数据分割,其中,数据分割方式包括:伪列分割、结果伪列分割、时间分割或随机字段分割。

本实施例中,由多个进程对待同步数据进行数据分割,以便各进程可以分别针对一份待同步数据进行处理,提高了数据同步的效率。

在本实施例的一些可选的实现方式中,数据查询子模块可以包括:方式读取单元、获取单元以及数据查询单元,其中:

方式读取单元,用于从同步配置文件中读取预设的数据分割方式。

获取单元,用于当数据分割方式为结果伪列分割时,获取预设的创建截止时间和查询条件。

数据查询单元,用于通过创建截止时间和查询条件,在数据源表中查询待同步数据。

本实施例中,在数据分割方式为结果伪劣分割时,通过创建截止时间进行限制,避免多并发时数据重复的风险,保证了数据同步的准确性。

在本实施例的一些可选的实现方式中,数据分配模块304还用于将分割后的待同步数据分配给各进程,并通过各进程将分配到的待同步数据持久化到spark的预设磁盘中。

本实施例中,各进程将分配好的待同步数据持久化到spark的预设磁盘,在进行数据同步时从预设磁盘中读取待同步数据,提高了数据同步的效率。

在本实施例的一些可选的实现方式中,数据同步模块305可以包括:目录获取子模块以及数据同步子模块,其中:

目录获取子模块,用于从同步配置文件中获取目标存储目录。

数据同步子模块,用于通过各进程将预设磁盘中的待同步数据同步到目标存储目录,并删除预设磁盘中的待同步数据。

本实施例中,将预设磁盘中的待同步数据同步到目标存储目录中,以便将待同步数据存储到最终的存储区域,完成数据同步。

为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。

所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如数据同步方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器42在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述数据同步方法的计算机可读指令。

所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。

本实施例中提供的计算机设备可以执行上述数据同步方法。此处数据同步方法可以是上述各个实施例的数据同步方法。

本实施例中,在进行数据同步时,先获取同步配置文件,根据同步配置文件对spark进行设置,以便spark的运行时的硬件资源能够与待同步数据相匹配,保证数据同步的效率,同时,基于spark进行数据同步,也可以减少单机运行的压力;根据同步配置文件访问数据源表,对数据源表中的待同步数据进行数据分割,各进程均分配得到一份待同步数据,可以并发式地对数据源表进行同步,提高了数据同步的效率。

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据同步方法。

本实施例中,在进行数据同步时,先获取同步配置文件,根据同步配置文件对spark进行设置,以便spark的运行时的硬件资源能够与待同步数据相匹配,保证数据同步的效率,同时,基于spark进行数据同步,也可以减少单机运行的压力;根据同步配置文件访问数据源表,对数据源表中的待同步数据进行数据分割,各进程均分配得到一份待同步数据,可以并发式地对数据源表进行同步,提高了数据同步的效率。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1