一种数据迁移测试方法和系统的制作方法

文档序号:8457278阅读:478来源:国知局
一种数据迁移测试方法和系统的制作方法
【专利说明】一种数据迁移测试方法和系统 【技术领域】
[0001] 本发明涉及计算机应用技术领域,特别涉及一种数据迁移测试方法和系统。 【【背景技术】】
[0002] 随着大数据时代的到来,很多公司或者企业都会在自己的数据库中存储海量的数 据,而随着业务的发展,市场面临着系统的升级或者重构,就可能会涉及到数据的迁移和表 的拆分或合并,这么大数据量的迁移给数据的验证带来挑战,如何更加高效地测试并保证 质量亟待解决。
[0003] 现有的测试方式主要存在以下两种:
[0004] 第一种、通过编写java类,将原始文件的数据和目标文件的数据分别一条一条的 取出,然后进行循环比对。
[0005] 第二种、在数据库层面编写存储程序,将原始文件的数据和目标文件的数据一条 一条的取出,然后进行循环比对。
[0006] 上述原始文件指的是数据迁移之前的数据文件,目标文件指的是数据迁移之后的 数据文件,正常情况之下数据迁移后,原始文件和目标文件中的各条数据应该相同,如果发 生不同,则说明存在错误(Bug)。
[0007] 然而,现有技术中的两种方式都需要从原始文件中取出一条数据后,循环遍历目 标表中的数据,取出对应同一条数据的内容进行比对,然后再从原始文件中取出下一条数 据,以此循环执行。也就是说,需要执行两层循环,对于大数量来说,耗时长,可能要达到几 个小时或者十几个小时,而且写存储过程,对数据库端的压力也是相当大。 【
【发明内容】

[0008] 有鉴于此,本发明提供了一种数据迁移测试方法和系统,以便于提高测试效率。
[0009] 具体技术方案如下:
[0010] 本发明首先提供了一种数据迁移测试方法,该方法包括:
[0011] 分别将原始文件与目标文件中的每一条数据封装成键key-值data对,其中同一 条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key ;
[0012] 对各key-data对中具有相同key的数据进行收集;
[0013] 将key相同的data进行比较从而得到测试结果。
[0014] 根据本发明一优选实施方式,所述key能够分别在所述原始文件和目标文件中唯 一标识一条数据;
[0015] 所述data为所述原始文件和目标文件中预设字段的数据。
[0016] 根据本发明一优选实施方式,所述将key相同的data进行比较从而得到测试结果 包括:
[0017] 将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data 出现异常;或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;
[0018] 将出现异常的data形成测试结果文件。
[0019] 根据本发明一优选实施方式,该方法还包括:
[0020] 利用在不同类型数据库文件系统之间交换数据的工具读取原始文件和目标文件, 并将所述原始文件和目标文件进行格式转换,得到分布式系统能够处理的数据格式;
[0021] 利用所述工具将原始文件和目标文件拉到所述分布式系统;
[0022] 由所述分布式系统执行所述封装、收集和比较的处理;
[0023] 由所述分布式系统输出所述测试结果,或者所述分布式系统将所述测试结果返回 给所述工具,由所述工具将所述测试结果导出。
[0024] 根据本发明一优选实施方式,在所述分布式系统中,所述封装的处理被分发至多 个子系统并行执行,将各子系统的处理结果进行汇总后,由一个子系统执行所述收集和比 较的处理;或者,
[0025] 在所述分布式系统中,所述封装的处理被分发至多个子系统并行执行,将各子系 统的处理结果进行汇总后,所述收集和比较的处理被分发至多个子系统并行执行;其中在 将各子系统的处理结果进行汇总后,采用散列算法来保证具有相同key的key-data对被分 发至同一个子系统。
[0026] 本发明还提供了一种数据迁移测试系统,该系统包括:
[0027] 封装单元,用于分别将原始文件与目标文件中的每一条数据封装成key-data对, 其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key ;
[0028] 收集单元,用于对各key-data对中具有相同key的数据进行收集;
[0029] 比较单元,用于将key相同的data进行比较从而得到测试结果。
[0030] 根据本发明一优选实施方式,所述key能够分别在所述原始文件和目标文件中唯 一标识一条数据;
[0031] 所述data为所述原始文件和目标文件中预设字段的数据。
[0032] 根据本发明一优选实施方式,所述比较单元,具体用于将key相同的两个data进 行比较,如果两个data不同,则确定该key对应的data出现异常,或者,如果key仅存在一 个对应的data,则确定该key对应的data出现异常;将出现异常的data形成测试结果文 件。
[0033] 根据本发明一优选实施方式,该系统还包括:在不同类型数据库文件系统之间交 换数据的工具和分布式系统;
[0034] 所述工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转 换,得到分布式系统能够处理的数据格式,将所述原始文件和目标文件拉到所述分布式系 统;
[0035] 所述封装单元、收集单元和比较单元设置于所述分布式系统中;
[0036] 所述分布式系统,还用于输出所述测试结果,或者将所述测试结果返回给所述工 具,由所述工具将所述测试结果导出。
[0037] 根据本发明一优选实施方式,在所述分布式系统中,所述封装单元设置于多个并 行的子系统中,所述收集单元和比较单元设置于一个子系统中,设置有封装单元的各子系 统的处理结果被汇总后提供给设置有收集单元和比较单元的子系统;或者,
[0038] 在所述分布式系统中,所述封装单元设置于多个并行的子系统中,所述收集单元 和比较单元也设置于多个并行的子系统中,设置有封装单元的各子系统的处理结果被汇总 后采用散列算法保证具有相同key的key-data对被分发至同一个设置有收集单元和比较 单兀的子系统。
[0039] 由以上技术方案可以看出,在本发明中仅需要对所有key-data对进行一次循环 比较即可获得测试结果,相比较现有技术中通过编写java类或者在数据库层面编写存储 程序的方式需要两层循环,提高了测试效率。 【【附图说明】】
[0040] 图1为本发明实施例一提供的数据迁移测试方法流程图;
[0041] 图2为本发明实施例二提供的数据迁移测试方法流程图;
[0042] 图3为本发明实施例三提供的数据迁移测试系统的结构图;
[0043] 图4为本发明实施例三提供的采用分布式方式的数据迁移测试系统的结构图;
[0044] 图5为本发明实施例三提供的采用分布式方式的数据迁移测试系统的另一种结 构图。 【【具体实施方式】】
[0045] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本发明进行详细描述。
[0046] 本发明的核心思想在于,分别读取原始文件与目标文件并封装成键值对,然后对 各键值对中具有相同key的数据进行收集,将key相同的数据进行比较,从而得到测试结 果。下面通过实施例一对本发明提供的方法进行详细描述。
[0047] 实施例一、
[0048] 图1为本发明实施例一提供的数据迁移测试方法流程图,如图1所示,该方法可以 具体包括以下步骤:
[0049] 步骤101 :分别读取原始文件与目标文件并封装成map对象,其中同一条数据分别 在原始文件和目标文件封装成的map对象中具有相同的key。
[0050] 由于map对象的数据结构由两部分组成:key (键)和值(data),表示为Map (key, data),可以将预设字段的数据内容作为data,需要将可以唯一标识data的字段作为key, 从而保证由原始文件封装成的各data具有不
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1