一种数据同步方法和装置制造方法及图纸

技术编号:15791579 阅读:130 留言:0更新日期:2017-07-09 21:26
本申请实施例提供了一种根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数;按照期望运行的同步线程数进行线程配置,并采用配置的线程针对所述待同步数据同步至目标数据库。根据本申请实施例,可以针对于同步任务的实际情况动态配置线程,避免出现部分线程已经完成同步任务,而同一任务的其他线程还处于等待状态的情况,提升了数据同步的效率和稳定性。

【技术实现步骤摘要】
一种数据同步方法和装置
本申请涉及互联网
,特别是涉及一种数据同步方法和一种数据同步装置。
技术介绍
数据同步任务是针对不同数据库之间的数据同步而创建的一系列周期调度的任务。在一个大型的数据调度系统中,经常会在同一时间运行有大量的数据同步任务。例如将HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)的数据同步至mySQL(关系型数据库管理系统),或者从HDFS同步数据至Hbase(HadoopDatabase,分布式存储系统)。在使用数据同步任务将源数据库的数据同步至目标数据库时,用户通常需要预先设置一个同步线程数,同步控制器根据预设的同步线程数调用相应的线程,分发到一个或多个同步处理设备,由同步处理设备进行数据同步处理。然而,当某个同步任务的待同步数据的数据量较大,如果将该同步任务的线程分发到比较繁忙的同步处理设备,其无法调用满足预设的同步线程数进行同步,可能部分线程已经完成同步任务,而同一任务的其他线程还处于等待状态,从而导致整个同步任务的平均同步速度较低。因此,目前的数据同步方式无法有效利用同步处理设备的同步处理能力,存在着数据同步效率较低的问题。
技术实现思路
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据同步方法和相应的一种数据同步装置。为了解决上述问题,本申请公开了一种数据同步方法,包括:根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数;按照期望运行的同步线程数进行线程配置,并采用配置的线程针对所述待同步数据同步至目标数据库。可选地,所述按照期望运行的同步线程数进行线程配置包括:判断所述期望运行的同步线程数是否大于运行所需的同步线程数;若是,则根据所述期望运行的同步线程数和所述运行所需的同步线程数的差值,补充配置相应的线程。可选地,在所述根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数之前,所述方法还包括:从用户提交的数据同步任务中,获取所述同步任务的优先级,并从保存有待同步数据的所述源数据库中,获取所述待同步数据的数据量。可选地,所述根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数包括:查找针对所述待同步数据的数据量和同步任务的优先级的平均同步速率;利用所述平均同步速率、同步处理设备的最大同步速率和所述同步处理设备可供同步处理的线程数,计算所述期望运行的同步线程数。可选地,在所述判断所述期望运行的同步线程数是否大于运行所需的同步线程数之前,所述方法还包括:从待与源数据库进行数据同步的所述目标数据库中,获取所述运行所需的同步线程数。可选地,在所述采用配置的线程针对所述待同步数据同步至目标数据库之前,所述方法还包括:按照所述运行所需的同步线程数将所述待同步数据拆分成多个待同步数据块;所述采用配置的线程针对所述待同步数据同步至目标数据库为:将用于同步各个待同步数据块的同步线程,调度至同步处理设备,以由所述同步处理设备处理所述同步线程。可选地,所述采用配置的线程针对所述待同步数据同步至目标数据库包括:将线程属性满足预设条件的至少一个同步线程优先发送至所述同步处理设备。可选地,所述预设条件包括以下至少一种:所述至少一个同步线程属于同一个数据同步任务、待处理时间大于预设时间阈值、对应同步任务的优先级大于预设优先级阈值、单个同步处理设备可同步处理。可选地,所述采用配置的线程针对所述待同步数据同步至目标数据库包括:将所述同步线程优先发送至可供同步处理的最大线程数大于预设线程数阈值的同步处理设备。为了解决上述问题,本申请还公开了一种数据同步装置,包括:同步线程数生成模块,用于根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数;同步处理模块,用于按照期望运行的同步线程数进行线程配置,并采用配置的线程针对所述待同步数据同步至目标数据库。可选地,所述同步处理模块包括:同步线程数判断子模块,用于判断所述期望运行的同步线程数是否大于运行所需的同步线程数,若是,则调用线程补充子模块;线程补充子模块,用于根据所述期望运行的同步线程数和所述运行所需的同步线程数的差值,补充配置相应的线程。可选地,所述装置还包括:优先级及数据量获取模块,用于从用户提交的数据同步任务中,获取所述同步任务的优先级,并从保存有待同步数据的源数据库中,获取所述待同步数据的数据量。可选地,所述同步线程数生成模块包括:平均同步速率查找子模块,用于查找针对所述待同步数据的数据量和同步任务的优先级的平均同步速率;同步线程数计算子模块,用于利用所述平均同步速率、同步处理设备的最大同步速率和所述同步处理设备可供同步处理的线程数,计算所述期望运行的同步线程数。可选地,所述装置还包括:运行所需同步线程数获取模块,用于从待与源数据库进行数据同步的目标数据库中,获取所述运行所需的同步线程数。可选地,所述装置还包括:待同步数据拆分模块,用于按照所述运行所需的同步线程数将所述待同步数据拆分成多个待同步数据块;所述同步处理模块具体用于:将用于同步各个待同步数据块的同步线程,调度至同步处理设备,以由所述同步处理设备处理所述同步线程。可选地,所述同步处理模块具体用于:将线程属性满足预设条件的至少一个同步线程优先发送至所述同步处理设备。可选地,所述预设条件包括以下至少一种:所述至少一个同步线程属于同一个数据同步任务、待处理时间大于预设时间阈值、对应同步任务的优先级大于预设优先级阈值、单个同步处理设备可同步处理。可选地,所述同步处理设备包括多个,所述同步处理模块具体用于:将所述同步线程优先发送至可供同步处理的最大线程数大于预设线程数阈值的同步处理设备。本申请实施例包括以下优点:根据本申请实施例,通过根据源数据库中待同步数据的数据量和同步任务的优先级生成期望运行的同步线程数,根据期望运行的同步线程数配置相应数量的线程进行数据同步,从而可以针对于同步任务的实际情况动态配置线程,避免出现部分线程已经完成同步任务,而同一任务的其他线程还处于等待状态的情况,提升了数据同步的效率和稳定性。而且,根据同步任务的优先级动态调整期望运行的同步线程数,使得重要程度较高的同步任务可以优先得到处理。附图说明图1是本申请的一种数据同步方法实施例一的步骤流程图;图2是本申请的一种数据同步方法实施例二的步骤流程图;图3是本申请的一种数据同步装置实施例一的结构框图;图4是本申请的一种数据同步装置实施例二的结构框图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。参照图1,示出了本申请的一种数据同步方法实施例一的步骤流程图,具体可以包括如下步骤:步骤101,根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数。需要说明的是,期望运行的同步线程数可以为由用户预先设置的首轮同步线程数或多轮同步线程数。因为用户无法得知本次同步任务中待同步数据的情况和同步处理设备的运行情况,或者用户并不了解如何设置,所设置的同步线程数可能与运行同步时实际所需的同步线程数并不匹配,从而导致同步时将同步线程分发到繁忙本文档来自技高网...
一种数据同步方法和装置

【技术保护点】
一种数据同步方法,其特征在于,包括:根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数;按照期望运行的同步线程数进行线程配置,并采用配置的线程针对所述待同步数据同步至目标数据库。

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数;按照期望运行的同步线程数进行线程配置,并采用配置的线程针对所述待同步数据同步至目标数据库。2.根据权利要求1所述的方法,其特征在于,所述按照期望运行的同步线程数进行线程配置包括:判断所述期望运行的同步线程数是否大于运行所需的同步线程数;若是,则根据所述期望运行的同步线程数和所述运行所需的同步线程数的差值,补充配置相应的线程。3.根据权利要求1所述的方法,其特征在于,在所述根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数之前,所述方法还包括:从用户提交的数据同步任务中,获取所述同步任务的优先级,并从保存有待同步数据的所述源数据库中,获取所述待同步数据的数据量。4.根据权利要求1所述的方法,其特征在于,所述根据源数据库中待同步数据的数据量和同步任务的优先级,生成期望运行的同步线程数包括:查找针对所述待同步数据的数据量和同步任务的优先级的平均同步速率;利用所述平均同步速率、同步处理设备的最大同步速率和所述同步处理设备可供同步处理的线程数,计算所述期望运行的同步线程数。5.根据权利要求2所述的方法,其特征在于,在所述判断所述期望运行的同步线程数是否大于运行所需的同步线程数之前,所述方法还包括:从待与源数据库进行数据同步的所述目标数据库中,获取所述运行所需的同步线程数。6.根据权利要求1所述的方法,其特征在于,在所述采用配置的线程针对所述待同步数据同步至目标数据库之前,所述方法还包括:按照所述运行所需的同步线程数将所述待同步数据拆分成多个待同步数据块;所述采用配置的线程针对所述待同步数据同步至目标数据库为:将用于同步各个待同步数据块的同步线程,调度至同步处理设备,以由所述同步处理设备处理所述同步线程。7.根据权利要求1所述的方法,其特征在于,所述采用配置的线程针对所述待同步数据同步至目标数据库包括:将线程属性满足预设条件的至少一个同步线程优先发送至所述同步处理设备。8.根据权利要求7所述的方法,其特征在于,所述预设条件包括以下至少一种:所述至少一个同步线程属于同一个数据同步任务、待处理时间大于预设时间阈值、对应同步任务的优先级大于预设优先级阈值、单个同步处理设备可同步处理。9.根据权利要求1所述的方法,其特征在于,所述同步处理设备包括多个,所述采用配置的线程针对所述待同步数据同步至目标数据库包括:将所述同步线程优先发送至可...

【专利技术属性】
技术研发人员:贾元乔苏艳
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1