本技术涉及对象存储数据测领域,特别是涉及一种数据一致性校验方法、装置、系统、计算机设备、存储介质和计算机程序产品。
背景技术:
1、随着数据存储技术的发展,出现了对象存储(object storage)技术,对象存储是一种以非结构化格式(称为对象)存储和管理数据的技术。现代组织需要创建和分析大量非结构化数据,例如照片、视频、电子邮件、网页、传感器数据和音频文件。校验数据正确性是在下载对象阶段进行,但是想要验证数据正确性测试工具就需要记录上传对象时写入的内容,下载对象时对比下载的内容和记录的上传的内容来实现数据校验的功能。
2、传统技术中是通过计算测试数据的md5值作为测试数据的最后32个字符,并在下载对象时计算md5值,然后将计算出的md5和对象内容的最后32个字符进行对比,如果不一致则数据正确性校验失败。第二种方案是在本地创建好文件,然后将这些文件上传到对象存储系统中,下载对象时根据对象内容计算出md5值,然后计算上传文件的md5值,比较两个md5值,如果不同则数据正确性校验失败。
3、然而,在服务器磁盘空间有限的条件下,目前的对象存储测试数据一致性校验方法难以对不一致的数据进行定位。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种数据一致性校验方法、装置、系统、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种数据一致性校验方法。所述方法包括:
3、上传目标测试数据,所述目标测试数据由随机序列种子和偏移量生成;所述目标测试数据的元数据中包含所述随机序列种子和所述偏移量;
4、在下载所述目标测试数据的过程,基于所述随机序列种子和所述偏移量生成预期数据;所述预期数据为用于校验所述目标测试数据的一致性的全量参照数据;
5、读取所述目标测试数据,并将读取到的所述目标测试数据与所述预期数据5进行比对,定位所述目标测试数据与所述预期数据的数据不一致的内容。
6、上述数据一致性校验方法中,通过将随机序列种子和偏移量记录在目标测试数据的元数据中,客户端可以在下载此目标测试数据的同时,可以生成预期数据,然后,读取目标测试数据并与预期数据对比,可以实现将数据不一致的内容进行实时定位输出。
7、0在其中一个实施例中,所述上传目标测试数据之前,所述方法还包括:
8、获取随机序列种子和偏移量;
9、根据所述随机序列种子生成测试数据序列;
10、根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列;
11、5根据多个拼接后的测试数据序列构建得到初始测试数据,并将所述随机序列种子和所述偏移量记录在所述初始测试数据的元数据中,得到目标测试数据。
12、本实施例中,通过随机序列种子和偏移量生成目标测试数据,可以保证目标测试数据的内容不相同,可以保证测试工具的性能;将随机序列种子和偏移
13、量记录在初始测试数据的元数据中,可以实现在下载时,生成用于对比的预期0数据。
14、在其中一个实施例中,所述根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列,包括:
15、在所述多个偏移量中,针对每一所述偏移量,在所述测试数据序列中确定所述偏移量表征的数据位的目标数据;
16、5以所述目标数据所在位置为拆分位置对所述测试数据序列进行划分,得到第一测试数据序列段和包含所述目标数据的第二测试数据序列段;
17、按照所述第二测试数据序列段在前,所述第一测试数据序列段在后的顺序,对所述第二测试数据序列段和所述第一测试数据序列段进行重拼接,得到所述偏移量对应的拼接后的测试数据序列。
18、本实施例中,通过根据测试数据序列重复生成,得到拼接后的测试数据序列,可以保证目标测试数据的内容不相同,可以保证测试数据不同,提高目标测试数据生成效率。
19、在其中一个实施例中,所述将读取到的所述目标测试数据与所述预期数据进行比对,根据数据校验结果定位不一致的内容,包括:
20、分别读取预设数据量大小的所述目标测试数据和所述预期数据;
21、将所述预设数据量大小的所述预期数据与所述预设数据量大小的所述目标测试数据进行对比,得到数据校验结果,根据所述数据校验结果定位不一致的内容。
22、本实施例中,通过将读取到的目标测试数据和预期数据进行对比,同时输出预期数据和实际目标测试数据的内容和位置,可以对不一致内容进行定位。
23、在其中一个实施例中,所述根据所述数据校验结果定位不一致的内容之后,还包括:
24、将所述数据校验结果中包含的数据比对不一致的内容,以预设的形式进行输出。
25、本实施例中,通过预设的形式对数据校验结果不一致的内容进行输出,可以直观显示不一致的内容和位置。
26、第二方面,本技术还提供了一种数据一致性校验装置。所述装置包括:
27、上传模块,用于上传目标测试数据,所述目标测试数据由随机序列种子和偏移量生成;所述目标测试数据的元数据中包含所述随机序列种子和所述偏移量;
28、生成模块,用于在下载所述目标测试数据的过程,基于所述随机序列种子和所述偏移量生成预期数据;所述预期数据为用于校验所述目标测试数据的一致性的全量参照数据;
29、对比模块,用于读取所述目标测试数据,并将读取到的所述目标测试数据与所述预期数据进行比对,定位所述目标测试数据与所述预期数据的数据不一致的内容。
30、上述数据一致性校验装置中,通过将随机序列种子和偏移量记录在目标测试数据的元数据中,客户端可以在下载此目标测试数据的同时,可以生成预期数据,然后,读取目标测试数据并与预期数据对比,可以实现将数据不一致的内容进行实时定位输出。
31、在其中一个实施例中,上传模块之前,所述装置还包括:
32、获取模块,用于获取随机序列种子和偏移量;
33、第二生成模块,用于根据所述随机序列种子生成测试数据序列;
34、重拼接模块,用于根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列;
35、记录模块,用于根据所述多个测试数据序列构建得到初始测试数据,并将所述随机序列种子和所述偏移量记录在所述初始测试数据的元数据中,得到目标测试数据。
36、本实施例中,通过随机序列种子和偏移量生成目标测试数据,可以保证目标测试数据的内容不相同,可以保证测试工具的性能;将随机序列种子和偏移量记录在初始测试数据的元数据中,可以实现在下载时,生成用于对比的预期数据。
37、在其中一个实施例中,重拼接模块具体用于:
38、在所述多个偏移量中,针对每一所述偏移量,在所述测试数据序列中确定所述偏移量表征的数据位的目标数据;
39、以所述目标数据所在位置为拆分位置对所述测试数据序列进行划分,得到第一测试数据序列段和包含所述目标数据的第二测试数据序列段;
40、按照所述第二测试数据序列段在前,所述第一测试数据序列段在后的顺序,对所述第二测试数据序列段和所述第一测试数据序列段进行重拼接,得到所述偏移量对应的拼接后的测试数据序列。
41、本实施例中,通过根据测试数据序列重复生成,得到拼接后的测试数据序列,可以保证目标测试数据的内容不相同,可以保证测试数据不同,提高目标测试数据生成效率。
42、在其中一个实施例中,对比模块具体用于:
43、分别读取预设数据量大小的所述目标测试数据和所述预期数据;
44、将所述预设数据量大小的所述预期数据与所述预设数据量大小的所述目标测试数据进行对比,得到数据校验结果,根据所述数据校验结果定位不一致的内容。
45、本实施例中,通过将读取到的目标测试数据和预期数据进行对比,同时输出预期数据和实际目标测试数据的内容和位置,可以对不一致内容进行定位。
46、在其中一个实施例中,对比模块之后,所述装置还包括:
47、输出模块,用于将所述数据校验结果中包含的数据比对不一致的内容,以预设的形式进行输出。
48、本实施例中,通过预设的形式对数据校验结果不一致的内容进行输出,可以直观显示不一致的内容和位置。
49、第三方面,本技术还提供了一种数据一致性校验系统,所述系统包括:
50、客户端,用于上传目标测试数据,所述目标测试数据由随机序列种子和偏移量生成;所述目标测试数据的元数据中包含的所述随机序列种子和所述偏移量;下载所述目标测试数据的过程中,基于所述随机序列种子和所述偏移量生成预期数据;所述预期数据为完整的所述目标测试数据;读取所述目标测试数据,并将读取到的所述目标测试数据与所述预期数据进行比对,根据数据校验结果定位不一致的内容;
51、服务器,用于接收并存储所述目标测试数据。
52、在其中一个实施例中,所述服务器具体用于在存储所述目标测试数据的过程中,当所述随机序列种子和偏移量记录成功时,确定所述目标测试数据为上传成功;
53、当所述随机序列种子和偏移量记录成功时,确定所述目标测试数据为上传失败。
54、本实施例中,通过对目标测试数据的元数据的记录情况确定目标测试数据是否上传成功,不需要客户端来判断目标测试数据是否上传成功,而是交由对象存储系统来实现。
55、第四方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
56、上传目标测试数据,所述目标测试数据由随机序列种子和偏移量生成;所述目标测试数据的元数据中包含所述随机序列种子和所述偏移量;
57、在下载所述目标测试数据的过程,基于所述随机序列种子和所述偏移量生成预期数据;所述预期数据为用于校验所述目标测试数据的一致性的全量参照数据;
58、读取所述目标测试数据,并将读取到的所述目标测试数据与所述预期数据进行比对,定位所述目标测试数据与所述预期数据的数据不一致的内容。
59、上述计算机设备中,通过将随机序列种子和偏移量记录在目标测试数据的元数据中,客户端可以在下载此目标测试数据的同时,可以生成预期数据,然后,读取目标测试数据并与预期数据对比,可以实现将数据不一致的内容进行实时定位输出。
60、在其中一个实施例中,所述上传目标测试数据之前,所述方法之前,所述方法还包括:
61、获取随机序列种子和偏移量;
62、根据所述随机序列种子生成测试数据序列;
63、根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列;
64、根据所述多个测试数据序列构建得到初始测试数据,并将所述随机序列种子和所述偏移量记录在所述初始测试数据的元数据中,得到目标测试数据。
65、本实施例中,通过随机序列种子和偏移量生成目标测试数据,可以保证目标测试数据的内容不相同,可以保证测试工具的性能;将随机序列种子和偏移量记录在初始测试数据的元数据中,可以实现在下载时,生成用于对比的预期数据。
66、在其中一个实施例中,所述根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列,包括:
67、在所述多个偏移量中,针对每一所述偏移量,在所述测试数据序列中确定所述偏移量表征的数据位的目标数据;
68、以所述目标数据所在位置为拆分位置对所述测试数据序列进行划分,得到第一测试数据序列段和包含所述目标数据的第二测试数据序列段;
69、按照所述第二测试数据序列段在前,所述第一测试数据序列段在后的顺序,对所述第二测试数据序列段和所述第一测试数据序列段进行重拼接,得到所述偏移量对应的拼接后的测试数据序列。
70、本实施例中,通过根据测试数据序列重复生成,得到拼接后的测试数据序列,可以保证目标测试数据的内容不相同,可以保证测试数据不同,提高目标测试数据生成效率。
71、在其中一个实施例中,所述将读取到的所述目标测试数据与所述预期数据进行比对,根据数据校验结果定位不一致的内容,包括:
72、分别读取预设数据量大小的所述目标测试数据和所述预期数据;
73、将所述预设数据量大小的所述预期数据与所述预设数据量大小的所述目标测试数据进行对比,得到数据校验结果,根据所述数据校验结果定位不一致的内容。
74、本实施例中,通过将读取到的目标测试数据和预期数据进行对比,同时输出预期数据和实际目标测试数据的内容和位置,可以对不一致内容进行定位。
75、在其中一个实施例中,所述根据所述数据校验结果定位不一致的内容之后,还包括:
76、将所述数据校验结果中包含的数据比对不一致的内容,以预设的形式进行输出。
77、本实施例中,通过预设的形式对数据校验结果不一致的内容进行输出,可以直观显示不一致的内容和位置。
78、第五方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
79、上传目标测试数据,所述目标测试数据由随机序列种子和偏移量生成;所述目标测试数据的元数据中包含所述随机序列种子和所述偏移量;
80、在下载所述目标测试数据的过程,基于所述随机序列种子和所述偏移量生成预期数据;所述预期数据为用于校验所述目标测试数据的一致性的全量参照数据;
81、读取所述目标测试数据,并将读取到的所述目标测试数据与所述预期数据进行比对,定位所述目标测试数据与所述预期数据的数据不一致的内容。
82、上述计算机可读存储介质中,通过将随机序列种子和偏移量记录在目标测试数据的元数据中,客户端可以在下载此目标测试数据的同时,可以生成预期数据,然后,读取目标测试数据并与预期数据对比,可以实现将数据不一致的内容进行实时定位输出。
83、在其中一个实施例中,所述上传目标测试数据之前,所述方法之前,所述方法还包括:
84、获取随机序列种子和偏移量;
85、根据所述随机序列种子生成测试数据序列;
86、根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列;
87、根据所述多个测试数据序列构建得到初始测试数据,并将所述随机序列种子和所述偏移量记录在所述初始测试数据的元数据中,得到目标测试数据。
88、本实施例中,通过随机序列种子和偏移量生成目标测试数据,可以保证目标测试数据的内容不相同,可以保证测试工具的性能;将随机序列种子和偏移量记录在初始测试数据的元数据中,可以实现在下载时,生成用于对比的预期数据。
89、在其中一个实施例中,所述根据所述偏移量对所述测试数据序列进行重拼接处理,得到拼接后的测试数据序列,包括:
90、在所述多个偏移量中,针对每一所述偏移量,在所述测试数据序列中确定所述偏移量表征的数据位的目标数据;
91、以所述目标数据所在位置为拆分位置对所述测试数据序列进行划分,得到第一测试数据序列段和包含所述目标数据的第二测试数据序列段;
92、按照所述第二测试数据序列段在前,所述第一测试数据序列段在后的顺序,对所述第二测试数据序列段和所述第一测试数据序列段进行重拼接,得到所述偏移量对应的拼接后的测试数据序列。
93、本实施例中,通过根据测试数据序列重复生成,得到拼接后的测试数据序列,可以保证目标测试数据的内容不相同,可以保证测试数据不同,提高目标测试数据生成效率。
94、在其中一个实施例中,所述将读取到的所述目标测试数据与所述预期数据进行比对,根据数据校验结果定位不一致的内容,包括:
95、分别读取预设数据量大小的所述目标测试数据和所述预期数据;
96、将所述预设数据量大小的所述预期数据与所述预设数据量大小的所述目标测试数据进行对比,得到数据校验结果,根据所述数据校验结果定位不一致的内容。
97、本实施例中,通过将读取到的目标测试数据和预期数据进行对比,同时输出预期数据和实际目标测试数据的内容和位置,可以对不一致内容进行定位。
98、在其中一个实施例中,所述根据所述数据校验结果定位不一致的内容之后,还包括:
99、将所述数据校验结果中包含的数据比对不一致的内容,以预设的形式进行输出。
100、本实施例中,通过预设的形式对数据校验结果不一致的内容进行输出,可以直观显示不一致的内容和位置。
101、上述对象存储测试数据一致性校验方法、装置、计算机设备、存储介质和计算机程序产品,通过将生成测试数据的seed(随机序列种子)记录到对象的元数据中,可以实现在下载对象时进行数据校验,同时测试数据是在内存中计算生成,不占用服务器的磁盘空间,可以在在服务器磁盘空间有限的条件下对对象存储测试数据进行一致性校验并显示不一致数据的位置。