CN104778179B - 一种数据迁移测试方法和*** - Google Patents
一种数据迁移测试方法和*** Download PDFInfo
- Publication number
- CN104778179B CN104778179B CN201410015027.8A CN201410015027A CN104778179B CN 104778179 B CN104778179 B CN 104778179B CN 201410015027 A CN201410015027 A CN 201410015027A CN 104778179 B CN104778179 B CN 104778179B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- original document
- file destination
- distributed system
- 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.)
- Active
Links
- 230000005012 migration Effects 0.000 title claims abstract description 29
- 238000013508 migration Methods 0.000 title claims abstract description 29
- 238000010998 test method Methods 0.000 title claims abstract description 12
- 238000012360 testing method Methods 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000005538 encapsulation Methods 0.000 claims abstract description 28
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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 (8)
1.一种数据迁移测试方法,其特征在于,该方法包括:
分别将原始文件与目标文件中的每一条数据封装成键key-值data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;
对各key-data对中具有相同key的数据进行收集;
将key相同的data进行比较从而得到测试结果;
其中,所述key能够分别在所述原始文件和目标文件中唯一标识一条数据,所述data为所述原始文件和目标文件中预设字段的数据。
2.根据权利要求1所述的方法,其特征在于,所述将key相同的data进行比较从而得到测试结果包括:
将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现异常;或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;
将出现异常的data形成测试结果文件。
3.根据权利要求1或2所述的方法,其特征在于,该方法还包括:
利用在不同类型数据库文件***之间交换数据的工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转换,得到分布式***能够处理的数据格式;
利用所述工具将原始文件和目标文件拉到所述分布式***;
由所述分布式***执行所述封装、收集和比较的处理;
由所述分布式***输出所述测试结果,或者所述分布式***将所述测试结果返回给所述工具,由所述工具将所述测试结果导出。
4.根据权利要求3所述的方法,其特征在于,在所述分布式***中,所述封装的处理被分发至多个子***并行执行,将各子***的处理结果进行汇总后,由一个子***执行所述收集和比较的处理;或者,
在所述分布式***中,所述封装的处理被分发至多个子***并行执行,将各子***的处理结果进行汇总后,所述收集和比较的处理被分发至多个子***并行执行;其中在将各子***的处理结果进行汇总后,采用散列算法来保证具有相同key的key-data对被分发至同一个子***。
5.一种数据迁移测试***,其特征在于,该***包括:
封装单元,用于分别将原始文件与目标文件中的每一条数据封装成key-data对,其中同一条数据分别在原始文件和目标文件封装成的key-data对中具有相同的key;
收集单元,用于对各key-data对中具有相同key的数据进行收集;
比较单元,用于将key相同的data进行比较从而得到测试结果;
其中,所述key能够分别在所述原始文件和目标文件中唯一标识一条数据,所述data为所述原始文件和目标文件中预设字段的数据。
6.根据权利要求5所述的***,其特征在于,所述比较单元,具体用于将key相同的两个data进行比较,如果两个data不同,则确定该key对应的data出现异常,或者,如果key仅存在一个对应的data,则确定该key对应的data出现异常;将出现异常的data形成测试结果文件。
7.根据权利要求5或6所述的***,其特征在于,该***还包括:在不同类型数据库文件***之间交换数据的工具和分布式***;
所述工具读取原始文件和目标文件,并将所述原始文件和目标文件进行格式转换,得到分布式***能够处理的数据格式,将所述原始文件和目标文件拉到所述分布式***;
所述封装单元、收集单元和比较单元设置于所述分布式***中;
所述分布式***,还用于输出所述测试结果,或者将所述测试结果返回给所述工具,由所述工具将所述测试结果导出。
8.根据权利要求7所述的***,其特征在于,在所述分布式***中,所述封装单元设置于多个并行的子***中,所述收集单元和比较单元设置于一个子***中,设置有封装单元的各子***的处理结果被汇总后提供给设置有收集单元和比较单元的子***;或者,
在所述分布式***中,所述封装单元设置于多个并行的子***中,所述收集单元和比较单元也设置于多个并行的子***中,设置有封装单元的各子***的处理结果被汇总后采用散列算法保证具有相同key的key-data对被分发至同一个设置有收集单元和比较单元的子***。
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 CN104778179A (zh) | 2015-07-15 |
CN104778179B true 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) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133244B (zh) * | 2016-02-29 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种数据库迁移的测试方法和装置 |
CN108021505B (zh) * | 2017-12-05 | 2021-05-28 | 百度在线网络技术(北京)有限公司 | 数据上线方法、装置和计算机设备 |
CN108959044A (zh) * | 2018-06-08 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种基于perl的验证MCS下卷迁移有效性的方法和*** |
CN109189324B (zh) * | 2018-07-09 | 2021-01-08 | 华为技术有限公司 | 一种数据迁移方法及装置 |
CN110222027A (zh) * | 2019-04-24 | 2019-09-10 | 福建天泉教育科技有限公司 | 数据迁移的数量校验方法及计算机可读存储介质 |
CN111581942B (zh) * | 2020-06-12 | 2023-06-27 | 上海通联金融服务有限公司 | 一种数据文件的比对方法 |
CN112131128B (zh) * | 2020-09-29 | 2023-08-22 | 网易(杭州)网络有限公司 | 数据测试方法、装置、存储介质和电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 阿里巴巴集团控股有限公司 | 一种数据比对方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930291B2 (en) * | 2004-06-18 | 2011-04-19 | Bmc Software, Inc. | Constraint processing |
US9846739B2 (en) * | 2006-10-23 | 2017-12-19 | Fotonation Limited | Fast database matching |
CN102426611B (zh) * | 2012-01-13 | 2013-09-04 | 广州从兴电子开发有限公司 | 一种数据库同步方法及装置 |
-
2014
- 2014-01-14 CN CN201410015027.8A patent/CN104778179B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN104239301A (zh) * | 2013-06-06 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 一种数据比对方法和装置 |
CN103678583A (zh) * | 2013-12-11 | 2014-03-26 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及*** |
CN103812726A (zh) * | 2014-01-26 | 2014-05-21 | 烽火通信科技股份有限公司 | 一种数据通信设备的自动化测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104778179A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104778179B (zh) | 一种数据迁移测试方法和*** | |
US10402427B2 (en) | System and method for analyzing result of clustering massive data | |
AU2015315203B2 (en) | Conditional validation rules | |
Abedjan et al. | DFD: Efficient functional dependency discovery | |
Shao et al. | Efficient cohesive subgraphs detection in parallel | |
CN107408114B (zh) | 基于事务访问模式识别联结关系 | |
US10331657B1 (en) | Contention analysis for journal-based databases | |
AU2014201516A1 (en) | Resolving similar entities from a transaction database | |
KR20150076225A (ko) | 위치 정보를 가진 데이터 프로파일링 | |
US10198346B1 (en) | Test framework for applications using journal-based databases | |
US20160019206A1 (en) | Methods and systems to identify and use event patterns of application workflows for data management | |
US10133767B1 (en) | Materialization strategies in journal-based databases | |
CN102810116B (zh) | 一种基于数据库连接的自动路由和负载均衡的方法及*** | |
Chen et al. | Temporal representation for scientific data provenance | |
CN109690571A (zh) | 基于学习的组标记***和方法 | |
WO2017039684A1 (en) | Classifier | |
CN108009223B (zh) | 一种交易数据的一致性检测方法及装置 | |
US20180300390A1 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
CN105447519A (zh) | 基于特征选择的模型检测方法 | |
CN110362569A (zh) | 数据表的校验方法及装置、电子设备、存储介质 | |
Sun et al. | Migrating GIS big data computing from Hadoop to Spark: an exemplary study Using Twitter | |
CN116561607A (zh) | 资源交互数据异常检测方法、装置和计算机设备 | |
CN114070737B (zh) | 设备的配置数据的检查方法、装置、存储介质及电子设备 | |
Babu et al. | A distributed approach to weighted frequent subgraph mining | |
Bhardwaj et al. | BDT3V—A Technique for big data testing considering 3V’s |
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 |
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 |
|
TR01 | Transfer of patent right |