减少数据迁移耗时的方法、装置、存储介质及电子设备与流程

文档序号:20029617发布日期:2020-02-28 10:13阅读:127来源:国知局
本申请涉及数据处理
技术领域
:,特别地涉及一种减少数据迁移耗时的方法、装置、存储介质及电子设备。
背景技术
::随着计算机硬件和软件的不断发展,在大数据能力和表现的吸引力下,数据的使用量和交换量都在急剧攀升,而在数据的使用和交换过程中会进行数据迁移,而现有技术中不能在保证数据的完整性和及时性的前提下,减少数据迁移的总体时间。技术实现要素:针对上述问题,本申请提供一种减少数据迁移耗时的方法、装置、存储介质及电子设备,解决了现有技术中不能在保证数据的完整性和及时性的前提下,减少数据迁移的总体时间的问题。第一方面,本申请提供了一种减少数据迁移耗时的方法,所述方法包括:步骤s110,获取数据更新日志表,将数据更新成功后的日志表的表名记录在第一表;步骤s120,比较所述第一表与预设表,得到所述第一表中需要进行数据迁移的日志表的表名;其中,预设表中记录的是预设的需要进行数据迁移的所有日志表的表名;步骤s130,查询第二表中是否记录所述第一表中需要进行数据迁移的日志表的表名,其中,第二表中记录的是已完成数据迁移的日志表的表名;步骤s140,将所述第一表中未记录在所述第二表中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;步骤s150,将已进行数据迁移的日志表的表名记录在所述第二表中。根据本申请的实施例,可选的,上述减少数据迁移耗时的方法中,比较所述第一表与预设表,包括:遍历预设表中的所有日志表的表名,与所述第一表中的日志表的表名一一比对,得到所述第一表中需要进行数据迁移的日志表的表名,以及所述预设表中未进行数据迁移的日志表的表名。根据本申请的实施例,可选的,上述减少数据迁移耗时的方法中,得到所述预设表中未进行数据迁移的日志表的表名之后,还包括:将所述预设表中未进行数据迁移的日志表的表名覆盖记录在第三表中;重新获取数据更新日志表,将数据更新成功后的日志表的表名覆盖记录在第一表中;将覆盖后的第一表与预设表进行比较,得到所述覆盖后的第一表中需要进行数据迁移的日志表的表名;对所述覆盖后的第一表与所述覆盖后的第三表中的所有需要进行数据迁移的日志表的表名对应的数据进行数据迁移。根据本申请的实施例,可选的,上述减少数据迁移耗时的方法中,还包括:当查询所述第二表中记录了所述第一表中所有需要进行数据迁移的日志表的表名时,返回执行步骤s110。根据本申请的实施例,可选的,上述减少数据迁移耗时的方法中,还包括:在得到所述第一表中需要进行数据迁移的日志表的表名之后,对所述第一表中需要进行数据迁移的日志表的表名对应的数据进行数据迁移。根据本申请的实施例,可选的,上述减少数据迁移耗时的方法中,还包括:将所述第二表与所述预设表进行比较,判断所述第二表中是否记录所述预设中的所有日志表的表名;当所述第二表中记录所述预设中的所有日志表的表名时,输出数据迁移已完成的提示信息。根据本申请的实施例,可选的,上述减少数据迁移耗时的方法中,还包括:当所述第二表中未记录所述预设中的所有日志表的表名时,返回执行步骤s110。第二方面,本申请提供了一种减少数据迁移耗时的装置,包括:获取模块,被配置成获取数据更新日志表;处理模块,被配置成判断数据更新日志表的状态是否为成功、比较所述第一表与预设表,以及查询第二表中是否记录了所述第一表中需要进行数据迁移的日志表的表名;执行模块,被配置成对所述日志表的表名对应的数据进行数据迁移,将完成数据迁移后的日志表的表名记录在所述第二表中;存储模块,被配置成对数据更新日志、第一表、预设表、第二表及第三表进行存储。第三方面,本申请提供了一种存储介质,该存储介质存储的计算机程序,可被一个或多个处理器执行,可用来实现如上述的减少数据迁移耗时的方法。第四方面,本申请提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行上述的减少数据迁移耗时的方法。与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:本申请提供的一种减少数据迁移耗时的方法、装置、存储介质及电子设备,获取数据更新日志表,将数据更新成功后的日志表的表名记录在第一表;比较第一表与预设表,得到第一表中需要进行数据迁移的日志表的表名;其中,预设表中记录的是预设的需要进行数据迁移的所有日志表的表名;查询第二表中是否记录第一表中需要进行数据迁移的日志表的表名,其中,第二表记录的是已进行数据迁移的日志表的表名;将第一表中未记录在第二表中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;将已进行数据迁移的日志表的表名记录在第二表中。在保证数据的完整性和及时性的前提下,减少数据迁移的总体时间。附图说明在下文中将基于实施例并参考附图来对本申请进行更详细的描述:图1为本申请实施例提供的一种减少数据迁移耗时的方法的流程示意图;图2为本申请实施例提供的一种减少数据迁移耗时的方法的另一种流程示意图;图3为本申请实施例提供的一种减少数据迁移耗时的方法的另一流程示意图;图4为本申请实施例提供的一种减少数据迁移耗时的方法的另一流程示意图;图5为本申请实施例提供的一种减少数据迁移耗时的方法的另一流程示意图;图6为本申请实施例提供的一种减少数据迁移耗时的方法的另一流程示意图;图7为本申请实施例提供的一种减少数据迁移耗时的装置的结构示意图。在附图中,相同的部件使用相同的附图标记,附图并未按照实际的比例绘制。具体实施方式以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本申请的保护范围之内。本申请提供的一种减少数据迁移耗时的方法、装置、存储介质及电子设备,获取数据更新日志表,将数据更新成功后的日志表的表名记录在第一表;比较第一表与预设表,得到第一表中需要进行数据迁移的日志表的表名;其中,预设表中记录的是预设的需要进行数据迁移的所有日志表的表名;查询第二表中是否记录第一表中需要进行数据迁移的日志表的表名,其中,第二表记录的是已进行数据迁移的日志表的表名;将第一表中未记录在第二表中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;将已进行数据迁移的日志表的表名记录在第二表中。解决了现有技术中不能在保证数据的完整性和及时性的前提下,减少数据迁移的总体时间。实施例一图1为本申请实施例提供的一种减少数据迁移耗时的方法的示意图,如图1所示,本方法包括以下步骤:s110:获取数据更新日志表,将数据更新成功后的日志表的表名记录在第一表。具体包括:预设定时任务,当定时任务开始计时执行时,从关系型数据库中获取数据更新日志表,日志表记录了表名和更新状态,更新状态只有更新成功和更新失败两种状态,将更新状态为成功的日志表的表名记录在第一表。其中,迁移数据源是指最原始的应用数据,应用层之下或者备份数据表,一般存在关系型数据库,oracle(oraclerdbms;oracle数据库)、sqlserver(structuredquerylanguageserver;结构化查询语言)等具体的文件存储方式与数据处理方式一致。迁移数据源的数据量:看业务而定,几十万、几千万、几十亿不等。迁移数据的时间跨度:从此业务开始起到此刻都为此表数据的时间跨度,但是也有不同的业务切入角度和统计方式不一样,时间跨度也不是完全一致,但一定是在业务开始时间到结束之间。在关系型数据库中创建一张新表,这张新表专门保存需要更新的表,上游数据库中记录了表名、表更新的开始时间和结束时间以及表更新的状态,新表从上游数据库日志表获得各表更新状态,即数据更新日志表。数据迁移对象有数据表或数据视图,但都可称为数据源,在本实施例中统一以表来统称了。预设数据更新的定时任务,当定时任务开始计时,执行步骤s110,定时任务可以是业务数据更新完成的定时任务,也可以是业务数据未更新完的定时任务,但是一定注意,这个定时任务必须为业务数据表中最新的数据存在的时间任务。比如说,每天更新一次,就必须保持每天一次,不能出现一天两次或更多次的情况出现。s120:比较第一表与预设表,得到第一表中需要进行数据迁移的日志表的表名;其中,预设表中记录的是预设的需要进行数据迁移的所有日志表的表名。具体包括:遍历预设表中的所有日志表的表名,与第一表中的日志表的表名一一比对,得到第一表中需要进行数据迁移的日志表的表名,以及预设表中未进行数据迁移的日志表的表名。其中,预设表中记录的需要进行数据迁移的所有日志表的表名是根据业务中需要来对数据表数据进行数据迁移进行预设的。其中,得到预设表中未进行数据迁移的日志表的表名之后,还包括:将表中未进行数据迁移的日志表的表名覆盖记录在第三表中;重新获取数据更新日志表,将数据更新成功后的日志表的表名覆盖记录在第一表中;将覆盖后的第一表与预设表进行比较,得到覆盖后的第一表中需要进行数据迁移的日志表的表名;对覆盖后的第一表与覆盖后的第三表中的所有需要进行数据迁移的日志表的表名对应的数据进行数据迁移。如图2所示,获取数据更新日志表,将数据更新成功的表名记录在表a中;比较表a和表b,得到表b中未进行数据迁移的日志表的表名;重新获取数据更新日志,将数据更新成功后的日志表的表名覆盖记录在表a中,将覆盖后的表a与表b进行比较,得到覆盖后的表a中需要进行数据迁移的日志表的表名;对覆盖后的与覆盖后的表d中的所有需要进行数据迁移的日志表的表名对应的数据进行数据迁移。其中,表a为第一表,表b为预设表,表d为第三表。s130:查询第二表中是否记录第一表中需要进行数据迁移的日志表的表名,其中,第二表记录的是已完成数据迁移的日志表的表名。包括:利用linux自带工具打开第二表兼并利用管道等工具,切分字母为单独的表名,将第二表中记录的表名与第一表中的表名一一比对,判断第一表中的所有表名是否都已进行数据迁移,得到第一表中未进行数据迁移的表名和已进行数据迁移的表名。避免重复进行数据迁移。其中,查询第二表中的日志表的表名后进行数据迁移,是否对日志表的表名对应的数据进行数据迁移取决于查询第二表是否记录有该日志表的表名,即第二表中记录的是已完成数据迁移的日志表的表名,以便于确认每次循环要进行数据迁移的日志表的表名对应的数据是否已经进行了数据迁移。逐一进行后台进行对日志表的表名对应的数据进行数据迁移,以达到多个数据同时进行数据迁移的目的,减少数据迁移的总消耗时间,并且监控每个文件的运行状态,直到预设表中记录的所有日志表的表名对应的数据完成数据迁移,结束本次数据迁移。s140:将第一表中未记录在第二表中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移。包括:根据第二表中记录的表名信息对第一表中所有需要进行数据迁移的日志表的表名对应的数据进行数据迁移。其中,要进行数据迁移的数据放在数据库,不在表中。进行数据迁移的过程包括:获得一个更新完成的表名后就利用linux自带的shell命令对表名对应的数据进行存放数据迁移,其中,每个表名对应一个需进行数据迁移的数据。利用linux系统自带的shell命令就可判断上一数据迁移命令是否运行完成,对数据迁移的状态进行监控。s150:将已进行数据迁移的日志表的表名记录在第二表中。具体包括:将进行数据迁移的日志表的表名存储在第二表中,避免重复循环。第二表中记录的是已完成数据迁移的日志表的表名,即第二表中记录的是目前数据迁移状态为“完成”的日志表的表名,已经完成数据迁移的表对应的数据就不用再次进行数据迁移,只对未进行数据迁移的表对应的数据进行数据迁移,避免对同一数据重复进行数据迁移。举例说明,如图3所示,获取数据更新日志表,将数据更新成功的日志表的表名记录在表a,比较表a与表b,得到表a中需要进行数据迁移的日志表的表名,查询表c中是否记录了表a中所有需要进行数据迁移的日志表的表名。当表c中记录了表a中所有需要进行数据迁移的日志表的表名时,返回执行步骤s110。当表c中未记录表a中所有需要进行数据迁移的日志表的表名时,将表a中未记录在表c中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;将已进行数据迁移的日志表的表名记录在表c中。其中,表a为第一表,表b为预设表,表c为第二表。在s120:比较第一表与预设表,得到第一表中需要进行数据迁移的日志表的表名之后,还包括:对第一表中需要进行数据迁移的日志表的表名对应的数据进行数据迁移,将已进行数据迁移的日志表的表名记录在第二表中。如图4所示,获取数据更新日志表,将数据更新成功的日志表的表名记录在表a,比较表a与表b,得到表a中需要进行数据迁移的日志表的表名;对表a中需要进行数据迁移的日志表的表名对应的数据进行数据迁移,将已进行数据迁移的日志表的表名记录在表c中。其中,表a为第一表,表b为预设表,表c为第二表。在s150:将已进行数据迁移的日志表的表名记录在第二表中之后,还包括:将第二表与预设表进行比较,判断第二表中是否记录了预设表中的所有日志表的表名;当第二表中记录了预设表中的所有日志表的表名时,输出数据迁移已完成的提示信息;当第二表中未记录预设表中的所有日志表的表名时,返回执行步骤s110。如图5所示,获取数据更新日志表,将数据更新成功的日志表的表名记录在表a,比较表a与表b,得到表a中需要进行数据迁移的日志表的表名,查询表c中是否记录了表a中所有需要进行数据迁移的日志表的表名。当表c中记录了表a中所有需要进行数据迁移的日志表的表名时,返回执行步骤s110。当表c中未记录表a中所有需要进行数据迁移的日志表的表名时,将表a中未记录在表c中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;将已进行数据迁移的日志表的表名记录在表c中。将表c与表b进行比较,判断表c中是否记录了表b中的所有日志表的表名;当表c中记录了表b中的所有日志表的表名时,输出数据迁移已完成的提示信息;当表c中未记录表b中的所有日志表的表名时,返回执行步骤s110。其中,表a为第一表,表b为预设表,表c为第二表。在保证数据的正确性和技术性的前提下,减少数据迁移的总体时间。实施例二图6为本申请实施例提供的一种减少数据迁移耗时的方法的另一流程示意图。如图6所示,获取更新日志表,取更新状态为“成功”的表名table1、table2、table3,将表名table1、table2、table3记录在表a中,比较表a与表b,表a中table1、table2、table3分别对应的数据需要进行数据迁移,table4、table5为表b中需要进数据迁移的日志表的表名。其中,表b中记录的是需要进行数据迁移的日志表的表名:table1、table2、table3、table4、table5。将table1、table2、table3拆成单个表名,分别对table1、table2、table3对应的数据进行数据迁移,将完成数据迁移的table1、table2、table3记录在表c中;其中,表c中记录了已进行数据迁移的日志表的表名。查询表c中是否记录有table1、table2、table3,当表c中记录有table1、table2、table3时,将表c与表b比较,表c中记录的日志表的表名与表b中记录的日志表的表名都为table1、table2、table3、table4、table5时,输出数据迁移已完成的提示信息,否则继续获取更新日志表,取更新状态为“成功”的表名table1、table2、table3,将表名table1、table2、table3记录在表a中,进行循环。将table4、table5存入表d中,重新获取更新日志表,取更新状态为“成功”的表名table1、table2、table3、table4、table5,将表名table1、table2、table3、table4、table5覆盖记录在表a中。此时,表a中记录了table1、table2、table3、table4、table5。再次比较表a与表b,表a中table1、table2、table3、table4、table5分别对应的数据需要进行数据迁移,对表a中记录的table1、table2、table3、table4、table5,与表d中记录的table4、table5中每个表名对应的数据进行数据迁移。将完成数据迁移的table1、table2、table3、table4、table5存入表c中,将表c与表b进行比较,当表c中记录的日志表的表名与表b中记录的日志表的表名都为table1、table2、table3、table4、table5时,输出数据迁移已完成的提示信息,否则继续获取更新日志表,取更新状态为“成功”的表名table1、table2、table3,将表名table1、table2、table3记录在表a中,进行循环。在保证数据的完整性和及时性的前提下,减少数据迁移的总体时间。实施例三图7为本申请实施例提供的一种减少数据迁移耗时的装置20的结构示意图,如图7所示,一种减少数据迁移耗时的装置20,包括:获取模块21,被配置成获取数据更新日志表;处理模块22,被配置成判断数据更新日志表状态是否为成功、比较第一表与预设表,以及查询第二表中是否记录第一表中需要进行数据迁移的日志表的表名;执行模块23,被配置成对日志表的表名对应的数据进行数据迁移程序,将完成数据迁移后的日志表的表名记录在第二表中;存储模块24,被配置成对数据更新日志、第一表、预设表、第二表及第三表进行存储。获取模块21获取数据更新日志表,处理模块22判断数据更新日志表状态是否为成功,存储模块24将状态为成功的日志表存入第一表,处理模块22将第一表与预设表进行比较,以及查询第二表中是否记录了第一表中需要进行数据迁移的日志表的表名,执行模块23根据处理模块22的处理结果,对日志表的表名对应的数据进行数据迁移,以及将进行数据迁移后的日志表的表名记录在第二表中。上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。实施例四本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,计算机程序被处理器执行时可以实现如下方法步骤:步骤s110,获取数据更新日志表,将数据更新成功后的日志表的表名记录在第一表;步骤s120,比较第一表与预设表,得到第一表中需要进行数据迁移的日志表的表名;其中,预设表中记录的是预设的需要进行数据迁移的所有日志表的表名;步骤s130,查询第二表中是否记录第一表中需要进行数据迁移的日志表的表名,其中,第二表记录的是已完成数据迁移的日志表的表名;步骤s140,将第一表中未记录在第二表中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;步骤s150,将已完成数据迁移的日志表的表名记录在第二表中。上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。实施例五本申请实施例提供了一种电子设备,该电子设备可以是手机、电脑或平板电脑等,包括存储器和处理器,存储器上存储有计算器程序,该计算机程序被处理器执行时实现如实施例一中的减少数据迁移耗时。可以理解,电子设备还可以包括,多媒体组件,输入/输出(i/o)接口,以及通信组件。其中,处理器用于执行如实施例一中减少数据迁移耗时的方法中的全部或部分步骤。存储器用于存储各种类型的数据,这些数据例如可以包括电子设备中的任何应用程序或方法的指令,以及应用程序相关的数据。处理器可以是专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例一中的减少数据迁移耗时的方法。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。综上,本申请提供的一种减少数据迁移耗时的方法、装置、存储介质及电子设备,获取数据更新日志表,将数据更新成功后的日志表的表名记录在第一表;比较第一表与预设表,得到第一表中需要进行数据迁移的日志表的表名;其中,预设表中记录的是预设的需要进行数据迁移的所有日志表的表名;查询第二表中是否记录第一表中需要进行数据迁移的日志表的表名,其中,第二表记录的是已进行数据迁移的日志表的表名;减少了人工核对,增加了工作效率。将第一表中未记录在第二表中的需要进行数据迁移的日志表的表名对应的数据进行数据迁移;让其在后台运行,不用等待此程序执行完成再去执行下一个程序,减少数据迁移任务的等待。将已进行数据迁移的日志表的表名记录在第二表中。避免重复执行已执行过的数据迁移任务。通过动态检测业务层数据的更新状态,及时跟进数据迁移至数仓步骤,大大减少数据迁移总耗时,且在保证数据迁移过程中数据的完整性和有效性的前提下减少迁移任务的排队等候的问题。在本申请实施例所提供的几个实施例中,应该理解到,本发明所揭露的方法,也可以通过其它的方式实现。以上所描述的方法实施例仅仅是示意性的。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。虽然本申请所揭露的实施方式如上,但上述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属
技术领域
:内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1