CN104778179A - 一种数据迁移测试方法和系统 - Google Patents

一种数据迁移测试方法和系统 Download PDF

Info

Publication number
CN104778179A
CN104778179A CN201410015027.8A CN201410015027A CN104778179A CN 104778179 A CN104778179 A CN 104778179A CN 201410015027 A CN201410015027 A CN 201410015027A CN 104778179 A CN104778179 A CN 104778179A
Authority
CN
China
Prior art keywords
data
key
subsystem
source document
file destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410015027.8A
Other languages
English (en)
Other versions
CN104778179B (zh
Inventor
江进朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Singapore Holdings Pte Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410015027.8A priority Critical patent/CN104778179B/zh
Publication of CN104778179A publication Critical patent/CN104778179A/zh
Application granted granted Critical
Publication of CN104778179B publication Critical patent/CN104778179B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据迁移测试方法和系统,其中方法包括:分别将原始文件与目标文件中的每一条数据封装成键-值(key-data)对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;对各key-data对中具有相同key的数据进行收集;将key相同的data进行比较从而得到测试结果。另外,可以由诸如datax工具将原始文件与目标文件拉到分布式系统,由分布式系统执行上述封装、收集和比较的处理。通过本发明能够提高数据迁移测试的效率。

Description

一种数据迁移测试方法和系统
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种数据迁移测试方法和系统。
【背景技术】
随着大数据时代的到来,很多公司或者企业都会在自己的数据库中存储海量的数据,而随着业务的发展,市场面临着系统的升级或者重构,就可能会涉及到数据的迁移和表的拆分或合并,这么大数据量的迁移给数据的验证带来挑战,如何更加高效地测试并保证质量亟待解决。
现有的测试方式主要存在以下两种:
第一种、通过编写java类,将原始文件的数据和目标文件的数据分别一条一条的取出,然后进行循环比对。
第二种、在数据库层面编写存储程序,将原始文件的数据和目标文件的数据一条一条的取出,然后进行循环比对。
上述原始文件指的是数据迁移之前的数据文件,目标文件指的是数据迁移之后的数据文件,正常情况之下数据迁移后,原始文件和目标文件中的各条数据应该相同,如果发生不同,则说明存在错误(Bug)。
然而,现有技术中的两种方式都需要从原始文件中取出一条数据后,循环遍历目标表中的数据,取出对应同一条数据的内容进行比对,然后再从原始文件中取出下一条数据,以此循环执行。也就是说,需要执行两层循环,对于大数量来说,耗时长,可能要达到几个小时或者十几个小时,而且写存储过程,对数据库端的压力也是相当大。
【发明内容】
有鉴于此,本发明提供了一种数据迁移测试方法和系统,以便于提高测试效率。
具体技术方案如下:
本发明首先提供了一种数据迁移测试方法,该方法包括:
分别将原始文件与目标文件中的每一条数据封装成键key-值data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;
对各key-data对中具有相同key的数据进行收集;
将key相同的data进行比较从而得到测试结果。
根据本发明一优选实施方式,所述key能够分别在所述原始文件和目标文件中唯一标识一条数据;
所述data为所述原始文件和目标文件中预设字段的数据。
根据本发明一优选实施方式,所述将key相同的data进行比较从而得到测试结果包括:
将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现异常;或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;
将出现异常的data形成测试结果文件。
根据本发明一优选实施方式,该方法还包括:
利用在不同类型数据库文件系统之间交换数据的工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转换,得到分布式系统能够处理的数据格式;
利用所述工具将原始文件和目标文件拉到所述分布式系统;
由所述分布式系统执行所述封装、收集和比较的处理;
由所述分布式系统输出所述测试结果,或者所述分布式系统将所述测试结果返回给所述工具,由所述工具将所述测试结果导出。
根据本发明一优选实施方式,在所述分布式系统中,所述封装的处理被分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,由一个子系统执行所述收集和比较的处理;或者,
在所述分布式系统中,所述封装的处理被分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,所述收集和比较的处理被分发至多个子系统并行执行;其中在将各子系统的处理结果进行汇总后,采用散列算法来保证具有相同key的key-data对被分发至同一个子系统。
本发明还提供了一种数据迁移测试系统,该系统包括:
封装单元,用于分别将原始文件与目标文件中的每一条数据封装成key-data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;
收集单元,用于对各key-data对中具有相同key的数据进行收集;
比较单元,用于将key相同的data进行比较从而得到测试结果。
根据本发明一优选实施方式,所述key能够分别在所述原始文件和目标文件中唯一标识一条数据;
所述data为所述原始文件和目标文件中预设字段的数据。
根据本发明一优选实施方式,所述比较单元,具体用于将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现异常,或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;将出现异常的data形成测试结果文件。
根据本发明一优选实施方式,该系统还包括:在不同类型数据库文件系统之间交换数据的工具和分布式系统;
所述工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转换,得到分布式系统能够处理的数据格式,将所述原始文件和目标文件拉到所述分布式系统;
所述封装单元、收集单元和比较单元设置于所述分布式系统中;
所述分布式系统,还用于输出所述测试结果,或者将所述测试结果返回给所述工具,由所述工具将所述测试结果导出。
根据本发明一优选实施方式,在所述分布式系统中,所述封装单元设置于多个并行的子系统中,所述收集单元和比较单元设置于一个子系统中,设置有封装单元的各子系统的处理结果被汇总后提供给设置有收集单元和比较单元的子系统;或者,
在所述分布式系统中,所述封装单元设置于多个并行的子系统中,所述收集单元和比较单元也设置于多个并行的子系统中,设置有封装单元的各子系统的处理结果被汇总后采用散列算法保证具有相同key的key-data对被分发至同一个设置有收集单元和比较单元的子系统。
由以上技术方案可以看出,在本发明中仅需要对所有key-data对进行一次循环比较即可获得测试结果,相比较现有技术中通过编写java类或者在数据库层面编写存储程序的方式需要两层循环,提高了测试效率。
【附图说明】
图1为本发明实施例一提供的数据迁移测试方法流程图;
图2为本发明实施例二提供的数据迁移测试方法流程图;
图3为本发明实施例三提供的数据迁移测试系统的结构图;
图4为本发明实施例三提供的采用分布式方式的数据迁移测试系统的结构图;
图5为本发明实施例三提供的采用分布式方式的数据迁移测试系统的另一种结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明的核心思想在于,分别读取原始文件与目标文件并封装成键值对,然后对各键值对中具有相同key的数据进行收集,将key相同的数据进行比较,从而得到测试结果。下面通过实施例一对本发明提供的方法进行详细描述。
实施例一、
图1为本发明实施例一提供的数据迁移测试方法流程图,如图1所示,该方法可以具体包括以下步骤:
步骤101:分别读取原始文件与目标文件并封装成map对象,其中同一条数据分别在原始文件和目标文件封装成的map对象中具有相同的key。
由于map对象的数据结构由两部分组成:key(键)和值(data),表示为Map(key,data),可以将预设字段的数据内容作为data,需要将可以唯一标识data的字段作为key,从而保证由原始文件封装成的各data具有不同的key,由目标文件封装成的各data也具有不同的key,但在原始文件封装成的map对象和目标文件封装成的map对象中作为key的字段是相同的。
在此选取的预设字段是原始文件和目标文件中需要进行比较的内容,主要分为以下三种情况:
第一种情况仅涉及数据表的位置迁移,即原始文件从一个地方迁移到另一个地方形成目标文件。这种情况下就预设数据表中整条数据来作为data,即将所有字段(可以排除数据表中标识各条数据的ID)作为预设字段。
假设原始文件为表a,目标文件为表b,表a和表b中的各条数据都存在字段1、字段2、字段3和字段4,也就是说,一条数据是由字段1、字段2、字段3和字段4组成的,其中字段1对于各条数据而言是不同的,能够唯一标识一条数据用以区分各条数据,那么可以将字段1的数据作为key,其他各字段的数据作为data。
第二种情况涉及数据表的分裂,即原始文件从一张数据表分裂成两张以上的数据表形成两个以上的目标文件。这种情况下,对原始文件分别和各目标文件执行本实施例中的流程,此时在封装map对象时,将目标文件中的各字段作为预设字段来形成data,原始文件也采用相同的字段来形成data。
假设原始文件为表a,表a分裂成两个目标文件:表b1和表b2,这样,分别对表a和表b1执行本实施例中的流程,以及对表a和表b2执行本实施例中的流程。以表a和表b1执行本实施例中的流程为例,假设表a中的各条数据存在字段1、字段2、字段3、字段4和字段5,表b1中的各条数据存在字段1、字段2、字段3,其中字段1对于各条数据而言是不同的,能够唯一标识一条数据用以区分各条数据,那么可以将字段1的数据作为key,目标文件中其他各字段的数据作为data,即字段2和字段3的数据作为data。
第三种情况涉及数据表的合并,即两个以上的原始文件合并成一个目标文件,这种情况下,对各原始文件分别和目标文件执行本实施例中的流程,此时在封装map对象时,将原始文件中的各字段作为预设字段来形成data,目标文件中也采用相同的字段来形成data。
假设原始文件为表a1和表a2,进行合并后形成目标文件表b,这样,分别对表a1和表b执行本实施例中的流程,以及对表a2和表b执行本实施例中的流程。以表a1和表b执行本实施例中的流程为例,假设表a1中的各条数据存在字段1、字段2和字段3,表b中的各条数据存在字段1、字段2、字段3、字段4和字段5,其中字段1对于各条数据而言是不同的,能够唯一标识一条数据用以区分各条数据,那么可以将字段1的数据作为key,表a1中其他各字段的数据作为data,即字段2和字段3的数据作为data。
除了map对象之外,还可以采用其他对象,只要是键值对的形式即可,例如hashmap对象等。
举一个例子,假设有两张数据表:表1和表2,其中表1为原始文件,表2为目标文件,可见,这种情况对应上述的第一种情况。
表1
ID 姓名 身高(cm) 学历 职业
1 张三 180 本科 教师
2 李四 175 研究生 学生
3 王五 185 本科 军人
表2
ID 姓名 身高(cm) 学历 职业
1 张三 180 本科 教师
2 李四 175 研究生 学生
3 王五 185 本科 军人
可见在上述表1和表2中,用来形成data的预设字段为:姓名、身高、学历和职业,其中ID对于各条数据而言是不同的,可以用于唯一标识各data,因此将ID作为封装map对象时的key。将表1封装成map对象后为:
Map(1,(姓名:张三,身高:180,学历:本科,职业:教师,type:table_A));
Map(2,(姓名:李四,身高:175,学历:研究生,职业:学生,type:table_A));
Map(3,(姓名:王五,身高:185,学历:本科,职业:军人,type:table_A))。
将表2封装为map对象后为:
Map(1,(姓名:张三,身高:180,学历:本科,职业:教师,type:table_B));
Map(2,(姓名:李四,身高:175,学历:研究生,职业:学生,type:table_B));
Map(3,(姓名:王五,身高:185,学历:本科,职业:军人,type:table_B))。
其中data中的type用于标识该map对象对应的数据是来源于原始文件还是目标文件,是本发明实施例中在data中增加的记录,当然,也可以不包含该记录。
步骤102:对map对象中具有相同key的数据进行收集形成collect对象。
在本步骤中,对于原始文件与目标文件封装成的map对象,将key相同的数据进行收集,形成同一个key对应的多个data的对象形式,诸如Collect(key1,data1,data2)的形式。接续步骤101中的例子,形成的collect对象为:
Collect(1,(姓名:张三,身高:180,学历:本科,职业:教师,type:table_A),(姓名:张三,身高:180,学历:本科,职业:教师,type:table_B))
Collect(2,(姓名:李四,身高:175,学历:研究生,职业:学生,type:table_A),(姓名:李四,身高:175,学历:研究生,职业:学生,type:table_B))
Collect(3,(姓名:王五,身高:185,学历:本科,职业:军人,type:table_A),(姓名:王五,身高:185,学历:本科,职业:军人,type:table_B))
步骤103:将各collect对象中的数据进行比较。
一个collect对象中包含了key相同的数据,一条数据来自于原始文件,一条数据来自于目标文件,理论上,数据迁移之后,两条数据应该相等,但如果发生异常,则会出现同一key对应的两条数据不相等,此时就测试出了bug。在本步骤中对各collect对象逐一进行遍历比较,如果同一key对应的data不相等,则确定该key对应的data出现bug。
另外,还可能存在这样的情况,在数据迁移之后,可能有的数据出现丢失,或者有的莫名多出现一条或多条数据,这种情况下,collect对象中一个key仅对应一个data,这种情况也确定该key对应的data出现bug。
步骤104:将collect对象中data不相等的数据或者只有一个data的数据形成测试结果文件。
在本发明实施例中,将同一key对应的data不相等的两条数据或者key仅对应一个data的数据形成测试结果文件输出,这样测试结果文件中就是出现bug的数据。由于在各条数据中包含数据来源的标识,因此可以清楚地看出出现bug的数据在原始文件和目标文件中的状况。
对于出现bug的数据可以首先存放在临时文件中,最后将临时文件中的数据导入数据库表中,以方便结果查看和分析定位问题。
为了进一步提高数据迁移测试的效率,本发明实施例一提供的上述方法流程可以在分布式系统中实现,例如hadoop系统。下面在实施例二中以hadoop系统为例对采用分布式系统实现的数据迁移测试方法进行详细描述。
实施例二、
图2为本发明实施例二提供的数据迁移测试方法流程图,如图2所示,该方法可以具体包括以下步骤:
步骤201:利用datax读取待测试的原始文件和目标文件,并将待测试的原始文件和目标文件进行格式转换,得到hadoop系统能够处理的数据格式。
datax是一种在不同类型数据库文件系统之间交换数据的工具,在本发明中并不限于这种工具,也可以使用其他方式或工具,例如可以采用编写多线程java服务的方式。
步骤202:利用datax将原始文件和目标文件拉到hadoop系统。
datax可以将原始文件和目标文件分别发送至hadoop系统存储至hadoop系统的特定目录下。
步骤203:在hadoop系统中完成实施例一中所述流程。
在hadoop系统实现实施例一中所述流程时,可以采用以下两种方式:
第一种方式:将原始文件与目标文件封装成map对象的处理任务分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,由一个子系统执行对map对象中具有相同key的数据进行收集形成collect对象,并将各collect对象中的数据进行比较的处理。
第二种方式:将原始文件与目标文件封装成map对象的处理任务分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,将对map对象中具有相同key的数据进行收集形成collect对象,并将各collect对象中的数据进行比较的处理任务也分发给多个子系统执行,最终将各子系统的处理结果形成测试结果进行输出。
在这种方式中,在将各子系统的处理结果进行汇总后,可以采用散列算法来保证具有相同key的map对象被分发到同一个子系统来形成collect对象。
步骤204:hadoop系统将得到的测试结果返回给datax工具,通过datax工具将测试结果导出。
hadoop系统也可以不将测试结果返回给datax工具,而在hadoop系统查看测试结果。
下面对实施例二中所示流程所消耗的时间进行测试,将万级别数据的原始文件和目标文件拉到hadoop系统用了5s(秒),在hadoop系统中采用两个并行的子系统进行封装、收集和比对用了33s,将测试结果导出用了1s,可见整个测试过程用了39s,不到一分钟的时间。即便不采用分布式系统进行处理,整个测试过程所占用的时间也是分钟级别,比起现有技术中编写java类和在数据库层面编写存储程序的方式所消耗的几个小时或者十几个小时,显然大大提升了效率。
以上是对本发明提供的方法进行的详细描述,下面通过实施例三对本发明提供的系统进行详细描述。
实施例三、
图3为本发明实施例三提供的数据迁移测试系统的结构图,如图3所示,该系统具体包括封装单元01、收集单元02和比较单元03。
其中封装单元01负责分别将原始文件与目标文件中的每一条数据封装成key-data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key。具体地,封装单元01可以将原始文件与目标文件中的每一条数据封装成map对象或者hashmap对象等,其中key能够分别在原始文件和目标文件中唯一标识一条数据,data为原始文件和目标文件中预设字段的数据。除此之外,data中还可以进一步包括用于标识所来源文件的信息,即标识该data是来源于原始文件还是目标文件,这样在测试结果中可以帮助测试人员清楚的获知出现bug的数据在原始文件和目标文件中的状况。
然后收集单元02对各key-data对中具有相同key的数据进行收集,形成同一个key对应的多个data的对象形式,例如可以形成collect对象:Collect(key1,data1,data2)。
再由比较单元03将key相同的data进行比较从而得到测试结果。在此可以将各collect对象逐一进行遍历比较,即将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现bug,或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;将出现bug的data形成测试结果文件。
对于出现bug的数据可以首先存放在临时文件中,最后将临时文件中的数据导入数据库表中,以方便结果查看和分析定位问题。
为了进一步提高数据迁移测试的效率,上述各单元可以在分布式系统中实现,除了分布式系统之外,该系统还包括在不同类型数据库文件系统之间交换数据的工具。其中,该工具可以是诸如datax或者采用编写多线程java服务的方式实现,分布式系统可以采用诸如hadoop系统等,下面的描述中均以datax和hadoop系统为例。
其中datax读取原始文件和目标文件,并将原始文件和目标文件进行格式转换,得到hadoop系统能够处理的数据格式,将原始文件和目标文件拉到hadoop系统。封装单元01、收集单元02和比较单元03设置于hadoop系统中;
测试结果可以由hadoop系统输出,或者hadoop系统将测试结果返回给工具,由工具将测试结果导出。
在分布式系统中,可以存在以下两种实现方式:
第一种方式:如图4所示,封装单元01设置于多个并行的子系统中,收集单元02和比较单元03设置于一个子系统中,设置有封装单元01的各子系统的处理结果被汇总后提供给设置有收集单元02和比较单元03的子系统。也就是说,将原始文件与目标文件封装成map对象的处理任务由多个子系统并行执行,将各子系统的处理结果进行汇总后,由一个子系统执行对map对象中具有相同key的数据进行收集形成collect对象,并将各collect对象中的数据进行比较的处理。
第二种方式:如图5所示,封装单元01设置于多个并行的子系统中,收集单元02和比较单元03也设置于多个并行的子系统中,设置有封装单元01的各子系统的处理结果被汇总后采用散列算法保证具有相同key的key-data对被分发至同一个设置有收集单元02和比较单元03的子系统。也就是说,将原始文件与目标文件封装成map对象的处理任务分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,将对map对象中具有相同key的数据进行收集形成collect对象,并将各collect对象中的数据进行比较的处理任务也分发给多个子系统执行,其中在将各子系统的处理结果进行汇总后,采用散列算法保证具有相同key的key-data对被分发至同一个子系统。
由以上描述可以看出,本发明提供的方法和系统具备以下优点:
1)在本发明中仅需要对所有key-data对进行一次循环比较即可获得测试结果,相比较现有技术中通过编写java类或者在数据库层面编写存储程序的方式需要两层循环,提高了测试效率。
2)本发明可以将原始文件和目标文件拉到分布式系统执行,更进一步提高了测试效率。
3)本发明将原始文件和目标文件拉到分布式系统之后,与数据库交互很少,不会占用太多数据库资源,也不会影响生产环境的数据和服务器资源,因此适用于对生产环境的数据进行验证。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种数据迁移测试方法,其特征在于,该方法包括:
分别将原始文件与目标文件中的每一条数据封装成键key-值data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;
对各key-data对中具有相同key的数据进行收集;
将key相同的data进行比较从而得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述key能够分别在所述原始文件和目标文件中唯一标识一条数据;
所述data为所述原始文件和目标文件中预设字段的数据。
3.根据权利要求1所述的方法,其特征在于,所述将key相同的data进行比较从而得到测试结果包括:
将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现异常;或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;
将出现异常的data形成测试结果文件。
4.根据权利要求1、2或3所述的方法,其特征在于,该方法还包括:
利用在不同类型数据库文件系统之间交换数据的工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转换,得到分布式系统能够处理的数据格式;
利用所述工具将原始文件和目标文件拉到所述分布式系统;
由所述分布式系统执行所述封装、收集和比较的处理;
由所述分布式系统输出所述测试结果,或者所述分布式系统将所述测试结果返回给所述工具,由所述工具将所述测试结果导出。
5.根据权利要求4所述的方法,其特征在于,在所述分布式系统中,所述封装的处理被分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,由一个子系统执行所述收集和比较的处理;或者,
在所述分布式系统中,所述封装的处理被分发至多个子系统并行执行,将各子系统的处理结果进行汇总后,所述收集和比较的处理被分发至多个子系统并行执行;其中在将各子系统的处理结果进行汇总后,采用散列算法来保证具有相同key的key-data对被分发至同一个子系统。
6.一种数据迁移测试系统,其特征在于,该系统包括:
封装单元,用于分别将原始文件与目标文件中的每一条数据封装成key-data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;
收集单元,用于对各key-data对中具有相同key的数据进行收集;
比较单元,用于将key相同的data进行比较从而得到测试结果。
7.根据权利要求6所述的系统,其特征在于,所述key能够分别在所述原始文件和目标文件中唯一标识一条数据;
所述data为所述原始文件和目标文件中预设字段的数据。
8.根据权利要求6所述的系统,其特征在于,所述比较单元,具体用于将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现异常,或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;将出现异常的data形成测试结果文件。
9.根据权利要求6、7或8所述的系统,其特征在于,该系统还包括:在不同类型数据库文件系统之间交换数据的工具和分布式系统;
所述工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转换,得到分布式系统能够处理的数据格式,将所述原始文件和目标文件拉到所述分布式系统;
所述封装单元、收集单元和比较单元设置于所述分布式系统中;
所述分布式系统,还用于输出所述测试结果,或者将所述测试结果返回给所述工具,由所述工具将所述测试结果导出。
10.根据权利要求9所述的系统,其特征在于,在所述分布式系统中,所述封装单元设置于多个并行的子系统中,所述收集单元和比较单元设置于一个子系统中,设置有封装单元的各子系统的处理结果被汇总后提供给设置有收集单元和比较单元的子系统;或者,
在所述分布式系统中,所述封装单元设置于多个并行的子系统中,所述收集单元和比较单元也设置于多个并行的子系统中,设置有封装单元的各子系统的处理结果被汇总后采用散列算法保证具有相同key的key-data对被分发至同一个设置有收集单元和比较单元的子系统。
CN201410015027.8A 2014-01-14 2014-01-14 一种数据迁移测试方法和系统 Active CN104778179B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410015027.8A CN104778179B (zh) 2014-01-14 2014-01-14 一种数据迁移测试方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410015027.8A CN104778179B (zh) 2014-01-14 2014-01-14 一种数据迁移测试方法和系统

Publications (2)

Publication Number Publication Date
CN104778179A true CN104778179A (zh) 2015-07-15
CN104778179B CN104778179B (zh) 2019-05-28

Family

ID=53619647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410015027.8A Active CN104778179B (zh) 2014-01-14 2014-01-14 一种数据迁移测试方法和系统

Country Status (1)

Country Link
CN (1) CN104778179B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133244A (zh) * 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种数据库迁移的测试方法和装置
CN108021505A (zh) * 2017-12-05 2018-05-11 百度在线网络技术(北京)有限公司 数据上线方法、装置和计算机设备
CN108959044A (zh) * 2018-06-08 2018-12-07 郑州云海信息技术有限公司 一种基于perl的验证MCS下卷迁移有效性的方法和系统
CN110222027A (zh) * 2019-04-24 2019-09-10 福建天泉教育科技有限公司 数据迁移的数量校验方法及计算机可读存储介质
WO2020011038A1 (zh) * 2018-07-09 2020-01-16 华为技术有限公司 一种数据迁移方法及装置
CN111581942A (zh) * 2020-06-12 2020-08-25 上海通联金融服务有限公司 一种数据文件的比对方法
CN112131128A (zh) * 2020-09-29 2020-12-25 网易(杭州)网络有限公司 数据测试方法、装置、存储介质和电子装置
CN113110995A (zh) * 2021-04-19 2021-07-13 中国工商银行股份有限公司 系统迁移的测试方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110137887A1 (en) * 2004-06-18 2011-06-09 Bmc Software, Inc. Constraint Processing
CN102426611A (zh) * 2012-01-13 2012-04-25 广州从兴电子开发有限公司 一种数据库同步方法及装置
US20120136872A1 (en) * 2006-10-23 2012-05-31 Donald Martin Monro Fast Database Matching
CN102833273A (zh) * 2011-06-13 2012-12-19 中兴通讯股份有限公司 临时故障时的数据修复方法及分布式缓存系统
CN103064780A (zh) * 2011-10-18 2013-04-24 阿里巴巴集团控股有限公司 一种软件测试的方法及装置
CN103678583A (zh) * 2013-12-11 2014-03-26 北京华胜天成科技股份有限公司 结构化数据比较的方法及系统
CN103812726A (zh) * 2014-01-26 2014-05-21 烽火通信科技股份有限公司 一种数据通信设备的自动化测试方法及装置
EP2780830A1 (en) * 2011-11-14 2014-09-24 Donald Martin Monro Fast database matching
CN104239301A (zh) * 2013-06-06 2014-12-24 阿里巴巴集团控股有限公司 一种数据比对方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110137887A1 (en) * 2004-06-18 2011-06-09 Bmc Software, Inc. Constraint Processing
US20120136872A1 (en) * 2006-10-23 2012-05-31 Donald Martin Monro Fast Database Matching
CN102833273A (zh) * 2011-06-13 2012-12-19 中兴通讯股份有限公司 临时故障时的数据修复方法及分布式缓存系统
CN103064780A (zh) * 2011-10-18 2013-04-24 阿里巴巴集团控股有限公司 一种软件测试的方法及装置
EP2780830A1 (en) * 2011-11-14 2014-09-24 Donald Martin Monro Fast database matching
CN102426611A (zh) * 2012-01-13 2012-04-25 广州从兴电子开发有限公司 一种数据库同步方法及装置
CN104239301A (zh) * 2013-06-06 2014-12-24 阿里巴巴集团控股有限公司 一种数据比对方法和装置
CN103678583A (zh) * 2013-12-11 2014-03-26 北京华胜天成科技股份有限公司 结构化数据比较的方法及系统
CN103812726A (zh) * 2014-01-26 2014-05-21 烽火通信科技股份有限公司 一种数据通信设备的自动化测试方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133244B (zh) * 2016-02-29 2020-04-28 阿里巴巴集团控股有限公司 一种数据库迁移的测试方法和装置
CN107133244A (zh) * 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种数据库迁移的测试方法和装置
CN108021505B (zh) * 2017-12-05 2021-05-28 百度在线网络技术(北京)有限公司 数据上线方法、装置和计算机设备
CN108021505A (zh) * 2017-12-05 2018-05-11 百度在线网络技术(北京)有限公司 数据上线方法、装置和计算机设备
CN108959044A (zh) * 2018-06-08 2018-12-07 郑州云海信息技术有限公司 一种基于perl的验证MCS下卷迁移有效性的方法和系统
WO2020011038A1 (zh) * 2018-07-09 2020-01-16 华为技术有限公司 一种数据迁移方法及装置
US11914881B2 (en) 2018-07-09 2024-02-27 Huawei Cloud Computing Technologies Co., Ltd. Data migration method and apparatus
CN110222027A (zh) * 2019-04-24 2019-09-10 福建天泉教育科技有限公司 数据迁移的数量校验方法及计算机可读存储介质
CN111581942A (zh) * 2020-06-12 2020-08-25 上海通联金融服务有限公司 一种数据文件的比对方法
CN111581942B (zh) * 2020-06-12 2023-06-27 上海通联金融服务有限公司 一种数据文件的比对方法
CN112131128B (zh) * 2020-09-29 2023-08-22 网易(杭州)网络有限公司 数据测试方法、装置、存储介质和电子装置
CN112131128A (zh) * 2020-09-29 2020-12-25 网易(杭州)网络有限公司 数据测试方法、装置、存储介质和电子装置
CN113110995A (zh) * 2021-04-19 2021-07-13 中国工商银行股份有限公司 系统迁移的测试方法及装置

Also Published As

Publication number Publication date
CN104778179B (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN104778179A (zh) 一种数据迁移测试方法和系统
US20200356901A1 (en) Target variable distribution-based acceptance of machine learning test data sets
US11741059B2 (en) System and method for extracting a star schema from tabular data for use in a multidimensional database environment
US10402427B2 (en) System and method for analyzing result of clustering massive data
NL2012438B1 (en) Resolving similar entities from a database.
US10152502B2 (en) Systems, apparatuses, methods, and computer readable media for processing and analyzing big data using columnar index data format
US8862566B2 (en) Systems and methods for intelligent parallel searching
CN107408114B (zh) 基于事务访问模式识别联结关系
TW202029079A (zh) 異常群體識別方法及裝置
CN106294128B (zh) 一种导出报表数据的自动化测试方法及装置
CN108009223B (zh) 一种交易数据的一致性检测方法及装置
CN104317850A (zh) 数据处理方法和装置
CN107729330A (zh) 获取数据集的方法和装置
US11301426B1 (en) Maintaining stable record identifiers in the presence of updated data records
CN116561607A (zh) 资源交互数据异常检测方法、装置和计算机设备
CN112765170B (zh) 一种嵌入式时间序列数据管理方法及设备
US10509808B2 (en) Data analysis support system and data analysis support method
CN113360511A (zh) 征信信息的处理方法、装置及设备
CN110909064A (zh) 一种基于数据库的数据采集方法及装置
KR101795564B1 (ko) 컬럼-인덱스 데이터 포맷을 이용하여 빅데이터를 효율적으로 처리 및 분석하는 시스템 및 방법
Wang et al. AG-Index: Adjacent Edge Hash Index for Graph Databases
CN117370160A (zh) 代码审核方法、装置、计算机设备、存储介质和程序产品
CN110727838A (zh) 虚拟样车和装车清单中零件号的一致性校验方法及系统
EP2657862B1 (en) Parallel set aggregation
CN117609181A (zh) 一种用于TChouse数据库迁移方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240403

Address after: Singapore

Patentee after: Alibaba Singapore Holdings Ltd.

Country or region after: Singapore

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

Country or region before: Cayman Islands