一种数据转存的方法及系统技术方案

技术编号:9033894 阅读:147 留言:0更新日期:2013-08-15 00:45
本申请公开了一种数据转存的方法及系统,其中,所述数据转存的方法用于基于一分布式系统将存储于第一储存装置的数据存储到第二储存装置中,所述方法包括:所述分布式系统获得一任务,所述任务基于所述第一储存装置的目录信息建立,并且所述任务与将所述第一储存装置中数据存储到所述第二储存装置相关;所述分布式系统将所述任务分成至少一个子任务;所述分布式系统将所述至少一个子任务分发给所述分布式系统的至少一个进程;通过在所述分布式系统的至少一个进程内启动所述至少一个子任务,将存储于所述第一存储装置的数据存储到第二储存装置。

【技术实现步骤摘要】
一种数据转存的方法及系统
本申请涉及数据处理领域,尤其涉及一种数据转存的方法及系统。
技术介绍
随着计算机及网络的技术不断发展,通过计算机处理的数据的量和业务种类也是越来越多,通常会采用数据库技术,以提高对数据的处理效率,以更好地实现对业务的处理。在传统的互联网领域,作为核心关键数据的存储中心的数据库,承担了基于全部前端页面的访问。目前常见的访问数据库、获取数据的方法,主要有两种,一种是通过单机按照一定的顺序对数据库中各个数据表的数据进行转存;另一种是通过脚本协同一组机器对数据库中的各个数据表进行数据转存。如图1所示,其为通过脚本协同一组机器对数据库中的各个数据表进行数据转存的流程图,主要包括如下步骤:S101:定义需要数据转存的数据表的集合M,即有M张数据表需要进行数据转存;S102:定义可用的机器资源集合N,即有N台机器可以使用;S103:以数据表为单位给每个机器平均分配资源,即每个机器平均分得M/N个数据表的数据转存任务;S104:在每台机器上并行执行如下操作:使用数据库接口依次对分配到每个机器的数据表的数据进行数据转存操作;S105:判断该数据表是否是本机的最后一张数据表,如果判断结果为否,转向S104;如果判断结果为是,转向S106;S106:反馈信息给总控脚本告知本机数据转存任务完成;S107:总控脚本收到所有机器的完成信息后,整体并行任务结束。在实现本申请实施例中技术方案的过程中,申请人发现现有技术中至少存在如下问题:(1)由于在现有技术中,采用的是单机或者多机对数据表中的数据进行数据转存,其机器规模小并且需要机器本地读和写各一次,故而存在着数据转存速率慢、效率低的技术问题;(2)由于在现有技术中,机器的硬件容量有限制,而对数据转存又需要大频率的读写操作,故而存在着机器的损坏率较高的技术问题;(3)由于在现有技术中,进行数据转存的硬件环境并不稳定,故而存在着如果发生死机等情况,数据转存的任务无法进行转移和恢复的技术问题;(4)由于在现有技术中,进行数据转存时的软件也不稳定,比如数据库或者网络链路会偶尔出现不稳定的情况,故而在此种情况下存在着数据转存任务失败并且不能自动恢复的技术问题;(5)由于在现有技术中,对于系统进行扩展和控制比较困难,故而不能控制对数据库的访问压力;(6)由于在现有技术中,难以系统的管理数据转存的过程和转存出的数据,故而存在着在数据转存过程中,任何一张数据表出现错误后该数据表中的数据都不易恢复、以及转存出的数据分散于各个机器难以统一管理的技术问题。
技术实现思路
本申请提供一种数据转存的方法及系统,用以解决现有技术中存在的数据转存效率低和速度慢的技术问题。本申请通过本申请中的实施例,提供如下技术方案:一方面,本申请通过本申请中的一个实施例,提供如下技术方案:一种数据转存方法,用于基于一分布式系统将存储于第一储存装置的数据存储到第二储存装置中,所述方法包括:所述分布式系统获得一任务,所述任务基于所述第一储存装置的目录信息建立,并且所述任务与将所述第一储存装置中数据存储到所述第二储存装置相关;所述分布式系统将所述任务分成至少一个子任务;所述分布式系统将所述至少一个子任务分发给所述分布式系统的至少一个进程;通过在所述分布式系统的至少一个进程内启动所述至少一个子任务,将存储于所述第一存储装置的数据存储到第二储存装置。另一方面,本申请通过本申请中的另一实施例提供如下技术方案:一种数据转存的系统,用于将存储于第一储存装置的数据存储到第二储存装置中,所述系统包括:文件单元:用于获得一任务,所述任务基于所述第一储存装置的目录信息建立,并且所述任务与将所述第一储存装置中数据存储到所述第二储存装置相关;处理单元:所述处理单元具体包括:分割模块:用于将所述任务分成至少一个子任务;分发模块:用于将所述至少一个子任务分发给分布式系统的至少一个进程;转存模块:用于通过在所述至少一个进程内启动所述至少一个子任务,将存储于所述第一存储装置的数据存储到第二储存装置。本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:本申请实施例针对不同的数据库以及不同类型的数据进行转存时,采用不同的方案。对于没有经过分库分表处理的数据库,在进行全表数据转存时,获取该数据库中的段信息、起始行ID、结束行ID,然后基于这些索引信息,采用分布式系统的Map/Reduce作业来高效获取数据库中的信息;对其进行增量数据转存时,获得该数据库中的段信息、增量数据的行ID,然后基于这些索引信息,采用分布式系统的Map/Reduce作业来高效获取数据库中的信息;对于经过分库分表处理的数据库,直接获取该数据库中数据表的连接语句,比如SQL语句,采用分布式系统的Map/Reduce作业来高效获取数据库中的信息。进而提高了数据转存的速度和稳定性以及降低单机的损耗。附图说明图1为本申请现有技术中利用多机进行数据转存的流程图;图2为本申请实施例一中一种数据转存的方法的流程图;图3为本申请实施例一中基于数据库获得配置信息的流程图;图4为本申请实施例一中基于Oracle数据库获取配置信息的流程图;图5为本申请实施例一中segmentList.txt的示意图;图6A为本申请实施例一中在T1时刻块766中数据的示意图;图6B为本申请实施例一中在T2时刻块766中数据的示意图;图6C为本申请实施例一中rowidList.txt的示意图;图7为本申请实施例一中当执行子任务出现错误时的处理流程图;图8为本申请实施例二中数据转存系统的方框图。具体实施方式现有技术在对数据进行转存时,由于只是基于单机或者多机对数据表中的数据进行数据转存,而机器规模小并且需要机器本地读和写各一次,故而在速度上、容量上都不能满足大规模的数据转存的需要,另外,大规模的读写操作对于单机硬盘的损坏也较大,并且进行数据转存的软件不够稳定以及在出现错误的时候没法纠正,故而存在着在进行数据转存任务失败时没法恢复并且对单机损坏较大的技术问题。本申请实施例提出一种数据转存的方法和系统,旨在提高数据转存的速度和稳定性以及降低单机的损耗。为了使本申请所属
中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。实施例一请参考图2至图7,本申请实施例一提供一种数据转存的方法,用于将存储于第一储存装置的数据存储到第二储存装置中。在具体实施过程中,进行数据转存的系统为一分布式系统,比如Hadoop分布式系统,所述分布式系统由两部分组成,一部分为HDFS(HadoopDistributedFileSystem,分布式文件系统),另一部分为MapReduce(计算系统);所述第一储存装置可以是数据库,比如Oracle数据库、MYSQL数据库等,而第二储存装置一般为分布式系统的HDFS。进行数据转存的过程,也就是将位于数据库中的数据转存于分布式系统的HDFS上。如图2所示,所述数据转存的方法包括如下步骤:S201:所述分布式系统获得一任务,所述任务基于所述第一储存装置的目录信息建立,并且所述任务与将所述第一储存装置中数据存储到所述第二储存装置相关;在具体实施过程中,所述任务基于数据库的不同,表现为不同的形式。如果要进行数据转存的数据库,对于还没本文档来自技高网
...
一种数据转存的方法及系统

【技术保护点】
一种数据转存方法,用于基于一分布式系统将存储于第一储存装置的数据存储到第二储存装置中,其特征在于,所述方法包括:所述分布式系统获得一任务,所述任务基于所述第一储存装置的目录信息建立,并且所述任务与将所述第一储存装置中数据存储到所述第二储存装置相关;所述分布式系统将所述任务分成至少一个子任务;所述分布式系统将所述至少一个子任务分发给所述分布式系统的至少一个进程;通过在所述分布式系统的至少一个进程内启动所述至少一个子任务,将存储于所述第一存储装置的数据存储到第二储存装置。

【技术特征摘要】
1.一种数据转存方法,用于基于一分布式系统将存储于第一储存装置的数据存储到第二储存装置中,其特征在于,所述方法包括:所述分布式系统获得一任务,所述任务基于所述第一储存装置的目录信息建立,并且所述任务与将所述第一储存装置中数据存储到所述第二储存装置相关;包括:获得配置信息,所述配置信息中包含所述第一储存装置的第一连接信息,以及所述第一储存装置中每一个需要进行数据转存的数据表的第二连接信息;判断存储于所述第一储存装置中的数据是否经过分库分表处理;如果判断结果为否,获取所述第一储存装置中每一个需要进行数据转存的数据表中的每一个数据块的索引信息并基于所述索引信息建立所述任务;如果判断结果为是,基于所述第二连接信息建立所述任务;所述分布式系统将所述任务分成至少一个子任务;所述分布式系统将所述至少一个子任务分发给所述分布式系统的至少一个进程;通过在所述分布式系统的至少一个进程内启动所述至少一个子任务,将存储于所述第一储存装置的数据存储到第二储存装置。2.如权利要求1所述的方法,其特征在于,所述第一储存装置为一存储了Oracle数据库的服务器,其中,所述Oracle数据库中包含至少一个数据表信息、每一个数据表信息又包含至少一个段信息、每一个段信息包含至少一个数据块信息。3.如权利要求2所述的方法,其特征在于,所述获取所述第一储存装置中每一个需要进行数据转存的数据表的中的每一个数据块的索引信息;基于所述索引信息建立所述任务,具体包括:判断对所述第一储存装置是进行全表数据转存还是增量数据转存;如果对所述第一储存装置是进行全表数据转存,基于所述第一储存装置中每一个数据表的段信息、每一个段信息对应的段中的数据块ID以及所述数据块ID对应的数据块中数据的起始行ID和结束行ID,建立所述任务;如果对所述第一储存装置是进行增量数据转存,基于所述第一储存装置中...

【专利技术属性】
技术研发人员:胡广寰程丽敏林佳齐
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1