CN106293977B - 一种数据校验方法与设备 - Google Patents
一种数据校验方法与设备 Download PDFInfo
- Publication number
- CN106293977B CN106293977B CN201510249497.5A CN201510249497A CN106293977B CN 106293977 B CN106293977 B CN 106293977B CN 201510249497 A CN201510249497 A CN 201510249497A CN 106293977 B CN106293977 B CN 106293977B
- Authority
- CN
- China
- Prior art keywords
- data
- verified
- equipment
- source
- referring
- 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
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请的目的是提供一种的方法与设备;获取从源设备待发送至目的设备的第一数据;对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;对所述第一待校验数据进行校验;当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;将所述第二数据发送至所述目的设备。与现有技术相比,本申请从各个数据源读入到数据校验设备的数据校验都可以基于类型简单的第一待校验数据完成,从而避免了由于目的数据源的数据种类多样性带来的复杂校验过程,同时,随着数据源的增加,实际校验工作量增长较慢,在整体上优化了资源开销。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据校验技术。
背景技术
各类数据源之间的数据传输,例如各类异构数据源之间的数据同步传输,需要对数据传输的过程进行传输质量校验,以评估数据传输的正确性。现有技术中,一般是基于待同步到目标数据源的源数据确定对应的期望数据,再以所述源数据传输到对应目标数据源后得到的结果数据与上述期望数据进行校验,此时,由于数据源种类的多样性,当一个数据同步***中的各个数据源之间都设置数据传输质量校验时,整体的检验工作量较大,此外,若在已有的数据同步***中增加新的数据源,新增数据源到每一个数据源,以及每一个数据源到该新增数据源的数据传输通道都需要被校验,从而使得新增的数据传输质量校验的工作量将呈几何式增长,大大增加了数据校验成本。
发明内容
本申请的目的是提供一种数据校验的方法与设备。
根据本申请的一个方面,提供了一种数据校验方法,包括:
获取从源设备待发送至目的设备的第一数据;
对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;
对所述第一待校验数据进行校验;
当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;
将所述第二数据发送至所述目的设备。
根据本申请的另一方面,还提供了一种数据校验设备,包括:
第一装置,用于获取从源设备待发送至目的设备的第一数据;
第二装置,用于对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;
第三装置,用于对所述第一待校验数据进行校验;
第四装置,用于当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;
第五装置,用于将所述第二数据发送至所述目的设备。
与现有技术相比,本申请通过对从源设备获得的第一数据进行格式转换确定待校验的第一待校验数据,并对该第一待校验数据进行校验,从而实现了将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验,在此,从各个数据源读入到数据校验设备的数据校验都可以基于类型简单的第一待校验数据完成,从而避免了由于目的数据源的数据种类多样性带来的复杂校验过程;并且,当参与数据同步的数据源每增加一个时,基于本申请的数据校验方法,将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验仅需要完成一次对所述第一待校验数据进行的校验,大大降低了整体校验工作量。进一步,本申请基于所获取目的设备所接收的所述第二数据确定所述第二待校验数据,并对该第二待校验数据进行校验,从而实现了将同步数据进一步从数据校验设备写入目的设备这一过程的数据传输质量的检验,在此,当参与数据同步的数据源每增加一个时,基于本申请的数据校验方法,将同步数据从数据校验设备写入目的设备这一过程的数据传输质量的检验也仅需要完成一次对所述第二待校验数据进行的校验,进而极大的优化了整体校验工作量。进一步,结合上述将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验,以及将同步数据进一步从数据校验设备写入目的设备这一过程的数据传输质量的检验,本申请实现了将数据源之间直接对应的质量校验转化为源设备和目标设备中的同步数据分别与数据校验设备中的相应参照数据进行校验,从而随着参与数据同步的数据源的增加,使得实际校验工作量增长较慢,进而降低了数据源接入的验证成本,在整体上优化了资源开销。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种数据校验设备的设备示意图;
图2示出根据本申请一个优选实施例的一种数据校验设备的设备示意图;
图3示出根据本申请另一个方面的一种数据校验的方法流程图;
图4示出根据本申请一个优选实施例的一种数据校验的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种数据校验设备的设备示意图。
所述数据校验设备1包括第一装置101、第二装置102、第三装置103、第四装置104和第五装置105。
其中,第一装置101获取从源设备待发送至目的设备的第一数据。第二装置102对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;第三装置103对所述第一待校验数据进行校验;第四装置104当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;第五装置105将所述第二数据发送至所述目的设备。
在此,本领域技术人员应能理解,所述第一数据及第二数据分别用来指代数据校验中各阶段特定的数据。例如,所述第一数据包括从源设备发送至目的设备,并被所述数据校验设备1获取的数据;又如,所述第二数据包括基于对所述第一待校验数据进行所述格式转换处理后确定的数据。在此,本领域技术人员还应能理解,所述第二数据格式用来指代经过所述格式转换处理后得到的所述第二数据的数据格式。在此,本领域技术人员还应能理解,所述第一待校验数据用来指代数据校验中等待校验的数据,且所述第一待校验数据包括对所述第一数据进行相应格式转换处理后确定的数据。
具体地,第一装置101获取从源设备待发送至目的设备的第一数据。本申请所述的数据校验设备1包括用于对数据传输过程中数据传输质量进行的校验的服务器设备,可以是一个单独的设备,也可以根据需要设置为一个或多个设备集群。所述数据传输可以包括各类数据源之间数据的传输,优选地,如异构数据源之间的数据同步操作。所述数据源可以包括各类数据库管理***中的数据、XML文档、HTML文档、电子邮件、普通文件等任意结构化、非结构化、或半结构化的数据信息等。在异构数据源之间的数据同步中,所述源设备是同步数据对应的来源设备,即是导出数据源,即源数据源,对应的设备;相对应,所述目的设备是所述同步数据将要导入的异构数据源,即目标数据源,所对应的设备。在此,所述数据同步是导出数据源对应的读插件将同步数据读取到同步服务器内存,进而通告导入数据源的写插件将所述同步服务器内存中的同步数据写入进导入数据库的过程,读写同步数据的交换在该内存中进行。在此,本方案中所述的数据同步校验将与所述数据同步相配合。所述同步服务器与所述数据校验设备1可以分别为不同设备,也可以对应于同一个设备。在此,优选地,将所述同步服务器与所述数据校验设备1配置为同一个设备,从而隔离了网络传输的限制,可以使数据校验的数据相应更快。当异构数据源的数据进行数据同步时,可以根据实际校验需要,定期对全部或是部分异构数据源之间的数据同步质量进行相应的检验。在此,所述第一数据包括从所述源设备中发出并到达所述数据校验设备1的、且对应于导出数据源的目标同步数据,所述第一装置101获取该第一数据,例如,当所述数据校验设备1与所述同步服务器为同一个设备时,可以直接从所述数据校验设备1中的内存中获得该第一数据;若是所述数据校验设备1与所述同步服务器对应为不同设备时,则可以从所述同步服务器对应的内存交换区中获取该第一数据。在此,所述第一数据来源于所述源设备,对应于所述源设备中的源同步数据,即源同步数据通过数据传输到达所述数据校验设备1或是同步服务器中后,即确定为所述第一数据。
接着,所述第二装置102对所述第一数据进行格式转换处理,以获得对应的第一待校验数据。在此,所述第一待校验数据包括所述第一数据进行相应格式转换后确定的数据,其目的是为了实现将同步数据从源设备读入到数据校验设备1这一过程的数据传输质量的检验。以所述异构数据源为不同的数据库管理***之间的数据为例,如数据源可以是MySQL、Oracle、Hadoop等数据库管理***的数据,不同的数据源对应不同的数据格式,例如,将数据源MySQL数据库的表a中的数据导入到Oracle数据库中,其中,所述表a有一定的表结构,表中字段设置有相应的数据类型。因此,所述第一数据对应于属于相应数据源的数据格式,例如,MySQL、Oracle对应于一定的二进制格式。在此,所述第二装置102对所述第一数据进行格式转换处理,优选地,所述格式转换包括将所述第一数据原有的数据格式转换为txt文本格式,从而基于此种通用、简单的格式能够方便后续的校验操作。在此,可以基于Java原生的各种数据类型将所述第一数据转化为以txt文本格式进行存储的第一待校验数据,相比于各个数据源的数据类型的多样性,Java原生的数据类型种类相对较为简单,在后续校验对比中,可以使得整体的校验工作量大大简化。例如,待同步的数据为MySQL中的表A中的数据,表A中对应字段包括:id,product_name,context,create_time,若是原有的表A在上述各个字段的数据类型分别为Long,String,String,Date,则在转为txt格式时,可以设置上述各个字段对应的数据类型保持不变,分别对应Long,String,String,Date类型,或者根据需要转为其他数据类型,如分别转为数据类型Long,String,Long,Date。在此,具体数据类型的转换,可以基于用户的期望,并结合具体参与数据同步的各个数据源的数据类型来确定。
在此,本领域技术人员应该能理解所述格式转换包括将所述第一数据原有的数据格式转换为txt文本格式仅为举例,其他现有的或今后可能出现的其他格式转换如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
接着,所述第三装置103对所述第一待校验数据进行校验。在此,对所述第一待校验数据的校验是为了实现将同步数据从源设备读入到数据校验设备1这一过程的数据传输质量的检验。在此,对上述第一待校验数据的校验方式可以包括基于文本对比的方式进行的校验,将所述第一待校验数据与对应的参照数据通过文本排序比对,并对比对结果进行差异性分析,例如,依次通过Linux***里的sort(排序)、diff(对比)命令,实现相应的文本比对,从而对第一待校验数据对应的数据同步的正确性进行判断。所述第一待校验数据的校验方式还可以包括基于哈希对比方式进行的校验,即对第一待校验数据和与其对应的参照数据,分别计算哈希值,如以行为单位,逐行计算相应的哈希值,以对比数据哈希值的异同,来判断所述第一待校数据与参照数据是否一致,进而对所述第一待校验数据对应的数据同步的正确性进行判断。
在此,本领域技术人员应该能理解所述基于文本对比的方式进行的校验、基于哈希对比方式进行的校验仅为举例,其他现有的或今后可能出现的其他可以对所述对已待校验数据进行校验的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,所述数据校验设备1还包括第十装置(未示出),所述第十装置获取所述第一待校验数据所对应的第一参照数据;其中,所述第三装置103基于所述第一参照数据,对所述第一待校验数据进行校验。
在此,本领域技术人员应能理解,所述第一参照数据用来指代对所述第一待校验数据进行数据校验的参照数据。
具体地,当所述源设备对应的某个数据源中的数据被确定为源同步数据时,该源同步数据将会通过数据同步传输到数据校验设备1,并确定为所述第一数据,由于数据传输过程中的可能损耗,所述第一数据,或是基于所述第一数据转换所得的第一待校验数据,与对应的源设备的源同步数据可能会存在一定的偏差,基于对该源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等多种原因,进而对于该源同步数据对应的传输结果进行合理的预期,确定与所述第一待校验数据对应的第一参照数据,该第一参照数据即反映了预先设定的、希望同步数据从源设备传输到所述数据校验设备1后能保持的数据质量要求。在此,所述第一参照数据可以由人工设置,或是基于机器预设条件自动分析出对应于所述第一校验数据的第一参照数据。在此,所述第十装置获取所述第一参照数据的来源可以有多种,例如,所述第一参照数据可以来源于所述源设备,如,基于所述源设备中的源同步数据确定;又如,所述第一参照数据也可以直接在所述数据校验设备中生成;再如,所述第一参照数据还可以由于其他任意适合的第三方设备生成。此外,所述第一参照数据与所述第一待校验数据保持一致的数据格式,优选地,所述第一参照数据对应于txt文本格式。当所述第十装置获取了所述第一参照数据后,会对其进行相应存储,
接着,在此,所述第三装置103基于所述第一参照数据,对所述第一待校验数据进行校验。在此,基于所述第一参照数据和所述第一待校验数据可以进行全文对比,或是哈希对比等校验方法,以判断同步数据传输的正确性。例如,对txt文本格式的所述第一待校验数据和相应格式的所述第一参照数据进行文本排序,然后基于相应的***命令进行全文对比,以获取数据对比的差异值,基于所述差异值确认判断校验结果。在此,优选地,首先将所述第一数据对应的源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等因素对数据同步质量的影响预先考虑到所述第一参照数据的期望设置中,进而,设定所述校验合格的条件是所述数据对比的差异值为0。此外,也可以基于所述第一数据对应的源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等因素确定一个最优的第一参照数据,进一步,在实际校验中,设定一个匹配阈值范围,例如当所述第一待校验数据与所述第一参照数据的相似度达到所述阈值范围内时,皆可以认定所述校验结果合格,如,可以通过对所述diff命令进行改造,设置所述差异值对应于所述阈值范围。
更优选地,所述数据校验设备1的第十装置从所述源设备获取所述第一参照数据,其中,所述第一参照数据与所述第一数据相对应。
具体地,在此,可以直接从所述源设备获取将与所述第一待校验数据进行对比的第一参照数据,所述源设备会预先基于所述第一数据对应的源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等多种原因为源同步数据匹配对应的第一参照数据,与此同时,基于同样的所述源同步数据,所述数据校验设备1获得了对应的第一数据,并基于所述格式转换处理,确定了对应的第一待校验数据,在此,所述第一参照数据即与所述第一数据对应。在此,所述数据校验设备1可以在每次获得所述第一数据时,相对应的实时获得与所述第一数据对应的第一参照数据;所述数据校验设备1也可以在获取所述第一数据之前就预先获取对应的第一参照数据。在此,当所述源设备有多个需要进行同步的源同步数据时,也可以先在源设备端为各个源同步数据配置相应的第一参照数据,进而,所述数据校验设备1可以一次性请求获取所述多个第一数据对应的第一参照数据,从而能够减少所述数据校验设备向所述源设备请求的次数,节约资源。进一步,若是对所述源设备与相应目的设备之间的数据同步质量设置周期校验,则所述数据校验设备1还可以定期自动从所述源设备获得待同步的源同步数据所对应的第一参照数据。
更优选地,所述第三装置103对所述第一参照数据和所述第一待校验数据进行全文比对;若所述全文比对匹配,确定所述第一待校验数据对应的校验结果为合格。
具体地,在此,优选地,对于所述第一参照数据和所述第一待校验数据进行全文比对,例如,首先通过linux***下的Linux shell(命令解释器)对应的sort命令分别对所述第一参照数据和所述第一待校验数据进行文本排序,然后,再基于所述Linux shell对应的diff命令对所述第一参照数据和第一待校验数据进行文本对比,如,以逐行对比的方式比较文本的异同,基于命令返回的差异值确定最终的对比结果,如,若是差异值为0,则对应所述第一待校验数据与所述第一参照数据文本相同,若是差异值为1,则对应上述两对比文本不同,若是差异值大于1,则对应***发生错误。在此,当所述命令返回的差异值为0时,确定所述全文对比匹配,则此时,认定所述第一待校验数据与对应的第一参照数据一致,则相应的数据校验的校验结果为合格。
在此,当所述第一待校验数据对应的校验结果为合格时,可以确定所述从源设备读入到数据校验设备1这一过程的数据传输质量合格,数据传输的质量达到预设的要求,例如,存在设备上的数据源MySQL数据库的表D中的数据传输到数据校验设备1,若通过对该表D中的数据对应的第一待校验数据的校验,确定校验结果合格,则可以推定,此时,从数据源MySQL到对应数据校验设备1的所述同步数据的传输质量是可以达到预期的正确性要求的,进一步,可以推定,若是不存在条件变化,后续从该数据源MySQL到对应数据校验设备1的其他同步数据的传输质量也可以得到相应保证。
接着,所述第四装置104在当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据。
具体地,在此,当所述第一待校验数据对应的校验结果为合格时,例如,所述第一待校验数据与对应的第一参照数据的全文对比差异值为0时,可以确定所述从源设备读入到数据校验设备1这一过程的数据传输质量合格,数据传输的质量达到预设的要求。所述第一待校验数据对应的第一数据的传输路径是由所述源设备最终到达目的设备,所以在此,若是要将所述源设备的源同步数据对应的数据传输到所述对应的目的设备,需要将所述第一待校验数据进行一定的格式转换处理,获得基于所述第二数据格式的第二数据,以确保转换后的第二数据的数据格式与相应的目的设备的数据源的数据格式保持一致,从而确保从所述源设备的数据源原始发出的数据最终能被所述目的设备对应的数据源接收。所述对所述第一待校验数据进行格式转换处理包括将txt格式的第一待校验数据转换成目的设备对应的数据源的相应数据格式,例如,若是目的设备中数据源是Oracle,则所述第二数据对应的数据格式,就是数据源Oracle中的数据可能对应的数据格式。
接着,所述第五装置105将所述第二数据发送至所述目的设备。在此,对所述第一校验数据进行格式转换处理后确定的第二数据的数据格式与所述目的设备中接收此数据的数据源中相应的数据格式保持一致。进而,通过所述第五装置105,所述第二数据同步到所述目的设备对应的目的数据源中。
在此,本申请通过对从源设备获得的第一数据进行格式转换确定待校验的第一待校验数据,并对该第一待校验数据进行校验,从而实现了将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验,在此,从各个数据源读入到数据校验设备的数据校验都可以基于类型简单的第一待校验数据完成,从而避免了由于目的数据源的数据种类多样性带来的复杂校验过程;并且,当参与数据同步的数据源每增加一个时,基于本申请的数据校验方法,将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验仅需要完成一次对所述第一待校验数据进行的校验,大大降低了整体校验工作量。例如,已有两个数据源Oracle和Hadoop,此时增加一个数据源MySQL,基于现有技术,若是需要检验所述数据源MySQL分别到Oracle、Hadoop和MySQL的数据同步质量,则需要分别检验MySQL至Oracle、MySQL至Hadoop、MySQL至MySQL的数据同步质量,而在本申请中,从源设备对应的所述数据源MySQL至目的数据源的数据校验可以包括从源设备至所述数据校验设备1的数据校验,以及后续的,从所述数据校验设备1至所述目的设备的数据源的数据校验,在此,基于本申请,从源设备对应的所述数据源MySQL至所述数据校验设备1的数据校验仅需要一次对所述数据源MySQL对应的第一待校验数据进行校验,因此,每增加一个新的数据源,从源设备对应的所述数据源MySQL至所述数据校验设备1的数据校验的次数仅相应增加一次,相比于现有技术中,数据同步中数据质量检验工作量随数据源增加而几何式增长的结果相比,本申请中的校验工作量大大减省,提高了资源利用率。
优选地,所述第一数据基于与所述第二数据格式不同的第一数据格式。
在此,本领域技术人员应能理解,所述第一数据格式用来指代所述第一数据的数据格式,其中,该第一数据格式与所述源设备中源数据源的数据格式相对应一致。
具体地,所述第一数据对应的第一数据格式与所述源设备中源同步数据所包含的数据的相应格式保持一致,而所述数据校验设备1获取的第二数据,其对应的第二数据格式与目的设备中目的数据源所包含的数据的相应格式保持一致。在此,以所述异构数据源为不同的数据库管理***之间的数据为例,如数据源可以是MySQL、Oracle、Hadoop等数据库管理***的数据,不同的数据源对应不同的数据格式,例如,将数据源MySQL数据库的数据导入到Oracle数据库中,在此,所述第一数据的第一数据格式基于导出数据源MySQL数据库的数据格式一致,而所述第二数据的第二数据格式则与导入数据源Oracle数据库的数据格式一致。
图2示出根据本申请一个优选实施例的一种数据校验设备的设备示意图。
所述数据校验设备1包括第一装置201、第二装置202、第三装置203、第四装置204、第五装置205、第六装置206和第七装置207。
其中,所述第一装置201获取从源设备待发送至目的设备的第一数据。第二装置202对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;第三装置203对所述第一待校验数据进行校验;第四装置204当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;第五装置205将所述第二数据发送至所述目的设备;第六装置206获取所述目的设备所接收的所述第二数据,并对其进行格式转换处理,以获得对应的第二待校验数据;第七装置207对所述第二待校验数据进行校验。在此,图2中所述第一装置201、第二装置202、第三装置203、第四装置204、第五装置205与图1中所述第一装置101、第二装置102、第三装置103、第四装置104、第五装置105对应相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
在此,本领域技术人员应能理解,所述第二待校验数据用来指代数据校验中等待校验的数据,且所述第二待校验数据包括对所述目标设备接收的所述第二数据进行上述格式转换处理后确定的数据。
具体地,所述第六装置206获取所述目的设备所接收的所述第二数据,并对其进行格式转换处理,以获得对应的第二待校验数据。
在此,所述第六装置206获取的所述第二数据是经由所述第五装置205发出至目的设备的同步数据,该目的设备所接收的所述第二数据与所述目的设备中数据源的数据格式对应,例如,以所述异构数据源为不同的数据库管理***之间的数据为例,如数据源可以是MySQL、Oracle、Hadoop等数据库管理***的数据,不同的数据源对应不同的数据格式。在此,所述数据校验设备1对该第二数据进行格式转换处理,并确定对应的第二待校验数据。优选地,将所述第二数据原有的数据格式转换为txt文本格式,从而基于此种通用、简单的格式能够方便后续的校验操作。在此,可以基于Java原生的各种数据类型将所述第二数据转化为以txt文本格式进行存储的第二待校验数据,相比于各个数据源的数据类型的多样性,Java原生的数据类型种类相对较为简单,在后续校验对比中,可以使得整体的校验工作量大大简化。
接着,所述第七装置207对所述第二待校验数据进行校验。在此,对所述第二待校验数据的校验是为了实现将同步数据从数据校验设备1写入到目的设备对应的数据源这一过程的数据传输质量的检验。在此,对上述第二待校验数据的校验方式可以包括基于文本对比的方式进行的校验,将所述第二待校验数据与对应的参照数据通过文本排序比对,并对比对结果进行差异性分析,例如,依次通过Linux***里的sort、diff命令,实现相应的文本比对,从而对第二待校验数据对应的数据同步的正确性进行判断。所述第二待校验数据的校验方式还可以包括基于哈希对比方式进行的校验,即对第二待校验数据和与其对应的参照数据,分别计算哈希值,如以行为单位,逐行计算相应的哈希值,以对比数据哈希值的异同,来判断所述第二待校数据与参照数据是否一致,进而对所述第二待校验数据对应的数据同步的正确性进行判断。
在此,本领域技术人员应该能理解所述基于文本对比的方式进行的校验、基于哈希对比方式进行的校验仅为举例,其他现有的或今后可能出现的其他可以对所述对已待校验数据进行校验的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在此,本申请基于所获取目的设备所接收的所述第二数据确定所述第二待校验数据,并对该第二待校验数据进行校验,从而实现了将同步数据进一步从数据校验设备写入目的设备这一过程的数据传输质量的检验,在此,当参与数据同步的数据源每增加一个时,基于本申请的数据校验方法,将同步数据从数据校验设备写入目的设备这一过程的数据传输质量的检验也仅需要完成一次对所述第二待校验数据进行的校验,进而极大的优化了整体校验工作量;
在此,进一步,结合上述将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验,本申请实现了将现有数据源之间直接对应的质量校验转变为源设备和目标设备中的同步数据分别与数据校验设备1中的相应参照数据进行校验,总体的校验工作量减少,并且随着参与数据同步的数据源的增加,实际校验工作量增长较慢,进而降低了数据源接入的验证成本,在整体上优化了资源开销。例如,若是同步***中存在N个数据源,且相互之间均需要进行数据校验,则基于现有技术共有N2个校验过程,而基于本申请则只需要2N个校验过程;进一步,每增加一个数据源,基于现有技术,会增加2N+1个校验过程,而基于本申请则只需要增加2个数据校验过程。相比于现有技术中,数据同步中数据质量检验工作量随数据源增加而几何式增长的结果相比,本申请中的校验工作量大大减省,提高了资源利用率。
优选地,所述数据校验设备1还包括第八装置(未示出),所述第八装置获取所述第二待校验数据所对应的第二参照数据;其中,所述第七装置207基于所述第二参照数据,对所述第二待校验数据进行校验。
在此,本领域技术人员应能理解,所述第二参照数据用来指代对所述第二待校验数据进行数据校验的参照数据。
具体地,与所述源设备至所述数据校验设备1这一数据传输过程中对应的第一待校验数据类似,所述第二待校验数据与所述数据校验设备1中的第一待校验数据相比,由于经过了从数据校验设备1至目的设备的数据传输过程,会存在一定的质量偏差,基于在实际传输中的可能损耗的预期、或是基于传输至所述目的设备的第二数据后续的应用需要的准确度等多种原因,对于所述第二待校验数据的传输质量会有一定限制,为了明确所述第二待校验数据的质量标准,即确定了所述对应的第二参照数据,该第二参照数据即反应了希望同步数据从数据校验设备1传输到所述目的设备后能保持的数据质量要求。在此,所述第二参照数据与所述第二待校验数据保持数据格式一致,优选地,基于所述txt格式。在此,所述第二参照数据可以基于与所述第二待校验数据对应的第一待校验数据来确定,所述第二参照数据也可以直接基于与所述第一待校验数据对应的源设备中的源同步数据来确定。此外,所述第二参照数据可以由人工设置,或是基于机器预设条件自动分析出对应于所述第二校验数据的第二参照数据。
接着,在此,所述第七装置207基于所述第二参照数据,对所述第二待校验数据进行校验。在此,基于所述第二参照数据和所述第一待校验数据可以进行全文对比,或是哈希对比等校验方法,以判断同步数据传输的正确性。例如,对txt文本格式的所述第二待校验数据和相应格式的所述第二参照数据进行文本排序,然后基于相应的***命令进行全文对比,以获取数据对比的差异值,基于所述差异值确认判断校验结果。
更优选地,当所述第一待校验数据对应的校验结果为合格时,所述第八装置基于所述第一待校验数据确定第二参照数据。
具体地,由于所述第二待校验数据与所述第二数据对应,即与所述第一待校验数据也相对应,所以当所述数据校验设备1的第四装置204所确定的第二数据从数据校验设备1传输至目的设备之一过程,最佳状态是数据质量不发生损耗,即所述第二待校验数据与对应的第一待校验数据保持一致,此时,所述第一待校验数据,即可作为所述第二参照数据。此外,若是所述第一待校验数据对应的、由所述数据校验设备1获得的第二数据在实际传输中存在可能损耗等其他影响数据准确性的因素,则可以将这些因素考虑到所述第二参照数据的期望设置中,即所可以基于所述第一待校验数据,并结合所需要考虑的传输过程中质量损耗、以及目的设备中目的数据源对应的具体数据类型等因素,来确定最终的第二参照数据。在此,优选地,基于所述全文校验对所述第二待校验数据和所述第二参照数据进行校验,设定所述校验合格的条件是所述数据对比的差异值为0。
优选地,所述数据校验设备1还包括第九装置(未示出),当所述第二待校验数据对应的校验结果为合格时,所述第九装置配置所述源设备至所述目的设备的数据传输通道。
具体地,在此,对于所述第一待校验数据的校验是为了判断将同步数据从源设备读入到数据校验设备这一过程传输的数据质量,如,数据同步质量是否符合预设要求,同样,对于所述第二待校验数据的校验是为了判断将同步数据数据校验设备写入到目的设备这一过程传输的数据质量是否符合预设要求。当所述第一待校验数据和所述第二待校验数据对应的校验结果均合格时,则确定,所述源设备至所述目的设备的数据传输通道的传输质量是达到预设要求,进而,可以具体配置从源设备的对应数据源至目的设备的对应的数据源之间的数据传输。在此,对于第一待校验数据的校验或是第二待校验数据的校验,可以仅各自基于一组数据校验的结果即确定,此外,也可以各自设定多组数据校验,基于多组数据校验结果的合格比例来确定对应的数据传输通道是否达到预设要求,例如,确定10组从数据校验设备1至目的设备的同步数据,则设定该10组校验中,当有9组以上数据的校验结果均合格时,则判断从数据校验设备1至目的设备的数据传输通道畅通,可以达到对数据质量的预设要求。当所述第一待校验数据,或是第二待校验数据对应的数据校验结果不合格时,可以基于实际数据传输的情况,对所述第一待校验数据,或是第二待校验数据各自对应的参照数据进行调整,或是对所述数据传输过程进行其他适应性调整以修复传输通道。优选地,对于配置的所述数据传输通道可以定期地进行相应的数据校验,以保证数据传输准确。
图3示出根据本申请另一个方面的一种数据校验的方法流程图。
其中,在步骤S301中,所述数据校验设备1获取从源设备待发送至目的设备的第一数据。在步骤S302中,所述数据校验设备1对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;在步骤S303中,所述数据校验设备1对所述第一待校验数据进行校验;在步骤S304中,当所述第一待校验数据对应的校验结果为合格时,所述数据校验设备1对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;在步骤S305中,所述数据校验设备1将所述第二数据发送至所述目的设备。
具体地,在步骤S301中,所述数据校验设备1获取从源设备待发送至目的设备的第一数据。本申请所述的数据校验设备1包括用于对数据传输过程中数据传输质量进行的校验的服务器设备,可以是一个单独的设备,也可以根据需要设置为一个或多个设备集群。所述数据传输可以包括各类数据源之间数据的传输,优选地,如异构数据源之间的数据同步操作。所述数据源可以包括各类数据库管理***中的数据、XML文档、HTML文档、电子邮件、普通文件等任意结构化、非结构化、或半结构化的数据信息等。在异构数据源之间的数据同步中,所述源设备是同步数据对应的来源设备,即是导出数据源,即源数据源,对应的设备;相对应,所述目的设备是所述同步数据将要导入的异构数据源,即目标数据源,所对应的设备。在此,所述数据同步是导出数据源对应的读插件将同步数据读取到同步服务器内存,进而通告导入数据源的写插件将所述同步服务器内存中的同步数据写入进导入数据库的过程,读写同步数据的交换在该内存中进行。在此,本方案中所述的数据同步校验将与所述数据同步相配合。所述同步服务器与所述数据校验设备1可以分别为不同设备,也可以对应于同一个设备。在此,优选地,将所述同步服务器与所述数据校验设备1配置为同一个设备,从而隔离了网络传输的限制,可以使数据校验的数据相应更快。当异构数据源的数据进行数据同步时,可以根据实际校验需要,定期对全部或是部分异构数据源之间的数据同步质量进行相应的检验。在此,所述第一数据包括从所述源设备中发出并到达所述数据校验设备1的、且对应于导出数据源的目标同步数据,所述数据校验设备1获取该第一数据,例如,当所述数据校验设备1与所述同步服务器为同一个设备时,可以直接从所述数据校验设备1中的内存中获得该第一数据;若是所述数据校验设备1与所述同步服务器对应为不同设备时,则可以从所述同步服务器对应的内存交换区中获取该第一数据。在此,所述第一数据来源于所述源设备,对应于所述源设备中的源同步数据,即源同步数据通过数据传输到达所述数据校验设备1或是同步服务器中后,即确定为所述第一数据。
接着,在步骤S302中,所述数据校验设备1对所述第一数据进行格式转换处理,以获得对应的第一待校验数据。在此,以所述异构数据源为不同的数据库管理***之间的数据为例,如数据源可以是MySQL、Oracle、Hadoop等数据库管理***的数据,不同的数据源对应不同的数据格式,例如,将数据源MySQL数据库的表a中的数据导入到Oracle数据库中,其中,所述表a有一定的表结构,表中字段设置有相应的数据类型。因此,所述第一数据对应于属于相应数据源的数据格式,例如,MySQL、Oracle对应于一定的二进制格式。在此,所述数据校验设备1对所述第一数据进行格式转换处理,优选地,所述格式转换包括将所述第一数据原有的数据格式转换为txt文本格式,从而基于此种通用、简单的格式能够方便后续的校验操作。在此,可以基于Java原生的各种数据类型将所述第一数据转化为以txt文本格式进行存储的第一待校验数据,相比于各个数据源的数据类型的多样性,Java原生的数据类型种类相对较为简单,在后续校验对比中,可以使得整体的校验工作量大大简化。例如,待同步的数据为MySQL中的表A中的数据,表A中对应字段包括:id,product_name,context,create_time,若是原有的表A在上述各个字段的数据类型分别为Long,String,String,Date,则在转为txt格式时,可以设置上述各个字段对应的数据类型保持不变,分别对应Long,String,String,Date类型,或者根据需要转为其他数据类型,如分别转为数据类型Long,String,Long,Date。在此,具体数据类型的转换,可以基于用户的期望,并结合具体参与数据同步的各个数据源的数据类型来确定。
在此,本领域技术人员应该能理解所述格式转换包括将所述第一数据原有的数据格式转换为txt文本格式仅为举例,其他现有的或今后可能出现的其他格式转换如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
接着,在步骤S303中,所述数据校验设备1对所述第一待校验数据进行校验。在此,对所述第一待校验数据的校验是为了实现将同步数据从源设备读入到数据校验设备1这一过程的数据传输质量的检验。在此,对上述第一待校验数据的校验方式可以包括基于文本对比的方式进行的校验,将所述第一待校验数据与对应的参照数据通过文本排序比对,并对比对结果进行差异性分析,例如,依次通过Linux***里的sort、diff(基本文本的强一致性检查)命令,实现相应的文本比对,从而对第一待校验数据对应的数据同步的正确性进行判断。所述第一待校验数据的校验方式还可以包括基于哈希对比方式进行的校验,即对第一待校验数据和与其对应的参照数据,分别计算哈希值,如以行为单位,逐行计算相应的哈希值,以对比数据哈希值的异同,来判断所述第一待校数据与参照数据是否一致,进而对所述第一待校验数据对应的数据同步的正确性进行判断。
在此,本领域技术人员应该能理解所述基于文本对比的方式进行的校验、基于哈希对比方式进行的校验仅为举例,其他现有的或今后可能出现的其他可以对所述对已待校验数据进行校验的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,所述数据校验方法还包括步骤S310(未示出),在步骤S310中,所述数据校验设备1获取所述第一待校验数据所对应的第一参照数据;其中,在步骤S303中,所述数据校验设备1基于所述第一参照数据,对所述第一待校验数据进行校验。
具体地,当所述源设备对应的某个数据源中的数据被确定为源同步数据时,该源同步数据将会通过数据同步传输到数据校验设备1,并确定为所述第一数据,由于数据传输过程中的可能损耗,所述第一数据,或是基于所述第一数据转换所得的第一待校验数据,与对应的源设备的源同步数据可能会存在一定的偏差,基于对该源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等多种原因,进而对于该源同步数据对应的传输结果进行合理的预期,确定与所述第一待校验数据对应的第一参照数据,该第一参照数据即反应了预先设定的、希望同步数据从源设备传输到所述数据校验设备1后能保持的数据质量要求。在此,所述第一参照数据可以由人工设置,或是基于机器预设条件自动分析出对应于所述第一校验数据的第一参照数据。在此,在步骤S310中,所述数据校验设备1获取所述第一参照数据的来源可以有多种,例如,所述第一参照数据可以来源于所述源设备,如,基于所述源设备中的源同步数据确定;又如,所述第一参照数据也可以直接在所述数据校验设备中生成;再如,所述第一参照数据还可以由于其他任意适合的第三方设备生成。此外,所述第一参照数据与所述第一待校验数据保持一致的数据格式,优选地,所述第一参照数据对应于txt文本格式。当所述数据校验设备1获取了所述第一参照数据后,会对其进行相应存储,
接着,在步骤S303中,所述数据校验设备1基于所述第一参照数据,对所述第一待校验数据进行校验。在此,基于所述第一参照数据和所述第一待校验数据可以进行全文对比,或是哈希对比等校验方法,以判断同步数据传输的正确性。例如,对txt文本格式的所述第一待校验数据和相应格式的所述第一参照数据进行文本排序,然后基于相应的***命令进行全文对比,以获取数据对比的差异值,基于所述差异值确认判断校验结果。在此,优选地,首先将所述第一数据对应的源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等因素对数据同步质量的影响预先考虑到所述第一参照数据的期望设置中,进而,设定所述校验合格的条件是所述数据对比的差异值为0。此外,也可以基于所述第一数据对应的源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等因素确定一个最优的第一参照数据,进一步,在实际校验中,设定一个匹配阈值范围,例如当所述第一待校验数据与所述第一参照数据的相似度达到所述阈值范围内时,皆可以认定所述校验结果合格,如,可以通过对所述diff命令进行改造,设置所述差异值对应于所述阈值范围。
更优选地,在步骤S310中,所述数据校验设备1从所述源设备获取所述第一参照数据,其中,所述第一参照数据与所述第一数据相对应。
具体地,在此,可以直接从所述源设备获取将与所述第一待校验数据进行对比的第一参照数据,所述源设备会预先基于所述第一数据对应的源同步数据在实际传输中的可能损耗的预期、或是基于该同步数据配合着实际应用所需要的准确度等多种原因为源同步数据匹配对应的第一参照数据,与此同时,基于同样的所述源同步数据,所述数据校验设备1获得了对应的第一数据,并基于所述格式转换处理,确定了对应的第一待校验数据,在此,所述第一参照数据即与所述第一数据对应。在此,所述数据校验设备1可以在每次获得所述第一数据时,相对应的实时获得与所述第一数据对应的第一参照数据;所述数据校验设备1也可以在获取所述第一数据之前就预先获取对应的第一参照数据。在此,当所述源设备有多个需要进行同步的源同步数据时,也可以先在源设备端为各个源同步数据配置相应的第一参照数据,进而,所述数据校验设备1可以一次性请求获取所述多个第一数据对应的第一参照数据,从而能够减少所述数据校验设备向所述源设备请求的次数,节约资源。进一步,若是对所述源设备与相应目的设备之间的数据同步质量设置周期校验,则所述数据校验设备1还可以定期自动从所述源设备获得待同步的源同步数据所对应的第一参照数据。
更优选地,在步骤S303中,所述数据校验设备1对所述第一参照数据和所述第一待校验数据进行全文比对;若所述全文比对匹配,确定所述第一待校验数据对应的校验结果为合格。
具体地,在此,优选地,对于所述第一参照数据和所述第一待校验数据进行全文比对,例如,首先通过linux***下的Linux shell对应的sort命令分别对所述第一参照数据和所述第一待校验数据进行文本排序,然后,再基于所述Linux shell对应的diff命令对所述第一参照数据和第一待校验数据进行文本对比,如,以逐行对比的方式比较文本的异同,基于命令返回的差异值确定最终的对比结果,如,若是差异值为0,则对应所述第一待校验数据与所述第一参照数据文本相同,若是差异值为1,则对应上述两对比文本不同,若是差异值大于1,则对应***发生错误。在此,当所述命令返回的差异值为0时,确定所述全文对比匹配,则此时,认定所述第一待校验数据与对应的第一参照数据一致,则相应的数据校验的校验结果为合格。
在此,当所述第一待校验数据对应的校验结果为合格时,可以确定所述从源设备读入到数据校验设备1这一过程的数据传输质量合格,数据传输的质量达到预设的要求,例如,存在设备上的数据源MySQL数据库的表D中的数据传输到数据校验设备1,若通过对该表D中的数据对应的第一待校验数据的校验,确定校验结果合格,则可以推定,此时,从数据源MySQL到对应数据校验设备1的所述同步数据的传输质量是可以达到预期的正确性要求的,进一步,可以推定,若是不存在条件变化,后续从该数据源MySQL到对应数据校验设备1的其他同步数据的传输质量也可以得到相应保证。
接着,在步骤S304中,所述数据校验设备1在当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据。
具体地,在此,当所述第一待校验数据对应的校验结果为合格时,例如,所述第一待校验数据与对应的第一参照数据的全文对比差异值为0时,可以确定所述从源设备读入到数据校验设备1这一过程的数据传输质量合格,数据传输的质量达到预设的要求。所述第一待校验数据对应的第一数据的传输路径是由所述源设备最终到达目的设备,所以在此,若是要将所述源设备的源同步数据对应的数据传输到所述对应的目的设备,需要将所述第一待校验数据进行一定的格式转换处理,获得基于所述第二数据格式的第二数据,以确保转换后的第二数据的数据格式与相应的目的设备的数据源的数据格式保持一致,从而确保从所述源设备的数据源原始发出的数据最终能被所述目的设备对应的数据源接收。所述对所述第一待校验数据进行格式转换处理包括将txt格式的第一待校验数据转换成目的设备对应的数据源的相应数据格式,例如,若是目的设备中数据源是Oracle,则所述第二数据对应的数据格式,就是数据源Oracle中的数据可能对应的数据格式。
接着,在步骤S305中,所述数据校验设备1将所述第二数据发送至所述目的设备。在此,对所述第一校验数据进行格式转换处理后确定的第二数据的数据格式与所述目的设备中接收此数据的数据源中相应的数据格式保持一致。进而,通过所述数据校验设备1,所述第二数据同步到所述目的设备对应的目的数据源中。
在此,本申请通过对从源设备获得的第一数据进行格式转换确定待校验的第一待校验数据,并对该第一待校验数据进行校验,从而实现了将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验,在此,从各个数据源读入到数据校验设备的数据校验都可以基于类型简单的第一待校验数据完成,从而避免了由于目的数据源的数据种类多样性带来的复杂校验过程;并且,当参与数据同步的数据源每增加一个时,基于本申请的数据校验方法,将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验仅需要完成一次对所述第一待校验数据进行的校验,大大降低了整体校验工作量。例如,已有两个数据源Oracle和Hadoop,此时增加一个数据源MySQL,基于现有技术,若是需要检验所述数据源MySQL分别到Oracle、Hadoop和MySQL的数据同步质量,则需要分别检验MySQL至Oracle、MySQL至Hadoop、MySQL至MySQL的数据同步质量,而在本申请中,从源设备对应的所述数据源MySQL至目的数据源的数据校验可以包括从源设备至所述数据校验设备1的数据校验,以及后续的,从所述数据校验设备1至所述目的设备的数据源的数据校验,在此,基于本申请,从源设备对应的所述数据源MySQL至所述数据校验设备1的数据校验仅需要一次对所述数据源MySQL对应的第一待校验数据进行校验,因此,每增加一个新的数据源,从源设备对应的所述数据源MySQL至所述数据校验设备1的数据校验的次数仅相应增加一次,相比于现有技术中,数据同步中数据质量检验工作量随数据源增加而几何式增长的结果相比,本申请中的校验工作量大大减省,提高了资源利用率。
优选地,所述第一数据基于与所述第二数据格式不同的第一数据格式。具体地,所述第一数据对应的第一数据格式与所述源设备中源同步数据所包含的数据的相应格式保持一致,而所述数据校验设备1获取的第二数据,其对应的第二数据格式与目的设备中目的数据源所包含的数据的相应格式保持一致。在此,以所述异构数据源为不同的数据库管理***之间的数据为例,如数据源可以是MySQL、Oracle、Hadoop等数据库管理***的数据,不同的数据源对应不同的数据格式,例如,将数据源MySQL数据库的数据导入到Oracle数据库中,在此,所述第一数据的第一数据格式基于导出数据源MySQL数据库的数据格式一致,而所述第二数据的第二数据格式则与导入数据源Oracle数据库的数据格式一致。
图4示出根据本申请一个优选实施例的一种数据校验的方法流程图。
其中,在步骤S401中,所述数据校验设备1获取从源设备待发送至目的设备的第一数据;在步骤S402中,所述数据校验设备1对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;在步骤S403中,所述数据校验设备1对所述第一待校验数据进行校验;在步骤S404中,所述数据校验设备1当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;在步骤S405中,所述数据校验设备1将所述第二数据发送至所述目的设备;在步骤S406中,所述数据校验设备1获取所述目的设备所接收的所述第二数据,并对其进行格式转换处理,以获得对应的第二待校验数据;在步骤S407中,所述数据校验设备1对所述第二待校验数据进行校验。在此,图4中所述步骤S401、步骤S402、步骤S403、步骤S404、步骤S405与图3中所述步骤S301、步骤S302、步骤S303、步骤S304、步骤S305对应相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
具体地,在步骤S406中,所述数据校验设备1获取所述目的设备所接收的所述第二数据,并对其进行格式转换处理,以获得对应的第二待校验数据。
在此,所述数据校验设备1获取的所述第二数据是经由所述数据校验设备1发出至目的设备的同步数据,该目的设备所接收的所述第二数据与所述目的设备中数据源的数据格式对应,例如,以所述异构数据源为不同的数据库管理***之间的数据为例,如数据源可以是MySQL、Oracle、Hadoop等数据库管理***的数据,不同的数据源对应不同的数据格式。在此,所述数据校验设备1对该第二数据进行格式转换处理,并确定对应的第二待校验数据。优选地,将所述第二数据原有的数据格式转换为txt文本格式,从而基于此种通用、简单的格式能够方便后续的校验操作。在此,可以基于Java原生的各种数据类型将所述第二数据转化为以txt文本格式进行存储的第二待校验数据,相比于各个数据源的数据类型的多样性,Java原生的数据类型种类相对较为简单,在后续校验对比中,可以使得整体的校验工作量大大简化。
接着,在步骤S407中,所述数据校验设备1对所述第二待校验数据进行校验。在此,对所述第二待校验数据的校验是为了实现将同步数据从数据校验设备1写入到目的设备对应的数据源这一过程的数据传输质量的检验。在此,对上述第二待校验数据的校验方式可以包括基于文本对比的方式进行的校验,将所述第二待校验数据与对应的参照数据通过文本排序比对,并对比对结果进行差异性分析,例如,依次通过Linux***里的sort、diff命令,实现相应的文本比对,从而对第二待校验数据对应的数据同步的正确性进行判断。所述第二待校验数据的校验方式还可以包括基于哈希对比方式进行的校验,即对第二待校验数据和与其对应的参照数据,分别计算哈希值,如以行为单位,逐行计算相应的哈希值,以对比数据哈希值的异同,来判断所述第二待校数据与参照数据是否一致,进而对所述第二待校验数据对应的数据同步的正确性进行判断。
在此,本领域技术人员应该能理解所述基于文本对比的方式进行的校验、基于哈希对比方式进行的校验仅为举例,其他现有的或今后可能出现的其他可以对所述对已待校验数据进行校验的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在此,本申请基于所获取目的设备所接收的所述第二数据确定所述第二待校验数据,并对该第二待校验数据进行校验,从而实现了将同步数据进一步从数据校验设备写入目的设备这一过程的数据传输质量的检验,在此,当参与数据同步的数据源每增加一个时,基于本申请的数据校验方法,将同步数据从数据校验设备写入目的设备这一过程的数据传输质量的检验也仅需要完成一次对所述第二待校验数据进行的校验,进而极大的优化了整体校验工作量;
在此,进一步,结合上述将同步数据从源设备读入到数据校验设备这一过程的数据传输质量的检验,本申请实现了将现有数据源之间直接对应的质量校验转变为源设备和目标设备中的同步数据分别与数据校验设备1中的相应参照数据进行校验,总体的校验工作量减少,并且随着参与数据同步的数据源的增加,实际校验工作量增长较慢,进而降低了数据源接入的验证成本,在整体上优化了资源开销。例如,若是同步***中存在N个数据源,且相互之间均需要进行数据校验,则基于现有技术共有N2个校验过程,而基于本申请则只需要2N个校验过程;进一步,每增加一个数据源,基于现有技术,会增加2N+1个校验过程,而基于本申请则只需要增加2个数据校验过程。相比于现有技术中,数据同步中数据质量检验工作量随数据源增加而几何式增长的结果相比,本申请中的校验工作量大大减省,提高了资源利用率。
优选地,所述数据校验方法还包括步骤S408(未示出),在所述步骤S406中,所述数据校验设备1获取所述第二待校验数据所对应的第二参照数据;其中,在步骤S407中,所述数据校验设备1基于所述第二参照数据,对所述第二待校验数据进行校验。
具体地,与所述源设备至所述数据校验设备1这一数据传输过程中对应的第一待校验数据类似,所述第二待校验数据与所述数据校验设备1中的第一待校验数据相比,由于经过了从数据校验设备1至目的设备的数据传输过程,会存在一定的质量偏差,基于在实际传输中的可能损耗的预期、或是基于传输至所述目的设备的第二数据后续的应用需要的准确度等多种原因,对于所述第二待校验数据的传输质量会有一定限制,为了明确所述第二待校验数据的质量标准,即确定了所述对应的第二参照数据,该第二参照数据即反应了希望同步数据从数据校验设备1传输到所述目的设备后能保持的数据质量要求。在此,所述第二参照数据与所述第二待校验数据保持数据格式一致,优选地,基于所述txt格式。在此,所述第二参照数据可以基于与所述第二待校验数据对应的第一待校验数据来确定,所述第二参照数据也可以直接基于与所述第一待校验数据对应的源设备中的源同步数据来确定。此外,所述第二参照数据可以由人工设置,或是基于机器预设条件自动分析出对应于所述第二校验数据的第二参照数据。
接着,在步骤S407中,所述数据校验设备1基于所述第二参照数据,对所述第二待校验数据进行校验。在此,基于所述第二参照数据和所述第一待校验数据可以进行全文对比,或是哈希对比等校验方法,以判断同步数据传输的正确性。例如,对txt文本格式的所述第二待校验数据和相应格式的所述第二参照数据进行文本排序,然后基于相应的***命令进行全文对比,以获取数据对比的差异值,基于所述差异值确认判断校验结果。
更优选地,所述获取所述第二待校验数据所对应的第二参照数据包括当所述第一待校验数据对应的校验结果为合格时,基于所述第一待校验数据确定第二参照数据。
具体地,由于所述第二待校验数据与所述第二数据对应,即与所述第一待校验数据也相对应,所以当所述数据校验设备1所确定的第二数据从数据校验设备1传输至目的设备之一过程,最佳状态是数据质量不发生损耗,即所述第二待校验数据与对应的第一待校验数据保持一致,此时,所述第一待校验数据,即可作为所述第二参照数据。此外,若是所述第一待校验数据对应的、由所述数据校验设备1获得的第二数据在实际传输中存在可能损耗等其他影响数据准确性的因素,则可以将这些因素考虑到所述第二参照数据的期望设置中,即所可以基于所述第一待校验数据,并结合所需要考虑的传输过程中质量损耗、以及目的设备中目的数据源对应的具体数据类型等因素,来确定最终的第二参照数据。在此,优选地,基于所述全文校验对所述第二待校验数据和所述第二参照数据进行校验,设定所述校验合格的条件是所述数据对比的差异值为0。
优选地,所述数据校验方法还包括步骤S409(未示出),在步骤S409中,当所述第二待校验数据对应的校验结果为合格时,所述数据校验设备1配置所述源设备至所述目的设备的数据传输通道。
具体地,在此,对于所述第一待校验数据的校验是为了判断将同步数据从源设备读入到数据校验设备这一过程传输的数据质量,如,数据同步质量是否符合预设要求,同样,对于所述第二待校验数据的校验是为了判断将同步数据数据校验设备写入到目的设备这一过程传输的数据质量是否符合预设要求。当所述第一待校验数据和所述第二待校验数据对应的校验结果均合格时,则确定,所述源设备至所述目的设备的数据传输通道的传输质量是达到预设要求,进而,可以具体配置从源设备的对应数据源至目的设备的对应的数据源之间的数据传输。在此,对于第一待校验数据的校验或是第二待校验数据的校验,可以仅各自基于一组数据校验的结果即确定,此外,也可以各自设定多组数据校验,基于多组数据校验结果的合格比例来确定对应的数据传输通道是否达到预设要求,例如,确定10组从数据校验设备1至目的设备的同步数据,则设定该10组校验中,当有9组以上数据的校验结果均合格时,则判断从数据校验设备1至目的设备的数据传输通道畅通,可以达到对数据质量的预设要求。当所述第一待校验数据,或是第二待校验数据对应的数据校验结果不合格时,可以基于实际数据传输的情况,对所述第一待校验数据,或是第二待校验数据各自对应的参照数据进行调整,或是对所述数据传输过程进行其他适应性调整以修复传输通道。优选地,对于配置的所述数据传输通道可以定期地进行相应的数据校验,以保证数据传输准确。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种数据校验方法,包括:
获取从源设备待发送至目的设备的第一数据;
对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;
对所述第一待校验数据进行校验;
当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;
将所述第二数据发送至所述目的设备;
获取所述目的设备所接收的所述第二数据,并对其进行格式转换处理,以获得对应的第二待校验数据;
对所述第二待校验数据进行校验;
当所述第二待校验数据对应的校验结果为合格时,配置所述源设备至所述目的设备的数据传输通道。
2.根据权利要求1所述的方法,其中,所述方法还包括:
获取所述第二待校验数据所对应的第二参照数据;
其中,所述对所述第二待校验数据进行校验包括:
基于所述第二参照数据,对所述第二待校验数据进行校验。
3.根据权利要求2所述的方法,其中,所述获取所述第二待校验数据所对应的第二参照数据包括:
当所述第一待校验数据对应的校验结果为合格时,基于所述第一待校验数据确定第二参照数据。
4.根据权利要求1所述的方法,其中,所述方法还包括:
获取所述第一待校验数据所对应的第一参照数据;
其中,所述对所述第一待校验数据进行校验包括:
基于所述第一参照数据,对所述第一待校验数据进行校验。
5.根据权利要求4所述的方法,其中,所述获取所述第一待校验数据所对应的第一参照数据包括:
从所述源设备获取所述第一参照数据,其中,所述第一参照数据与所述第一数据相对应。
6.根据权利要求4或5所述的方法,其中,所述对所述第一待校验数据进行校验包括:
对所述第一参照数据和所述第一待校验数据进行全文比对;
若所述全文比对匹配,确定所述第一待校验数据对应的校验结果为合格。
7.根据权利要求1所述的方法,其中,所述第一数据基于与所述第二数据格式不同的第一数据格式。
8.一种数据校验设备,包括:
第一装置,用于获取从源设备待发送至目的设备的第一数据;
第二装置,用于对所述第一数据进行格式转换处理,以获得对应的第一待校验数据;
第三装置,用于对所述第一待校验数据进行校验;
第四装置,用于当所述第一待校验数据对应的校验结果为合格时,对所述第一待校验数据进行格式转换处理,以获得基于所述目的设备所对应的第二数据格式的第二数据;
第五装置,用于将所述第二数据发送至所述目的设备;
第六装置,用于获取所述目的设备所接收的所述第二数据,并对其进行格式转换处理,以获得对应的第二待校验数据;
第七装置,用于对所述第二待校验数据进行校验;
第九装置,用于当所述第二待校验数据对应的校验结果为合格时,配置所述源设备至所述目的设备的数据传输通道。
9.根据权利要求8所述的设备,其中,所述设备还包括:
第八装置,用于获取所述第二待校验数据所对应的第二参照数据;
其中,所述第七装置用于:
基于所述第二参照数据,对所述第二待校验数据进行校验。
10.根据权利要求9所述的设备,其中,所述第八装置用于:
当所述第一待校验数据对应的校验结果为合格时,基于所述第一待校验数据确定第二参照数据。
11.根据权利要求8所述的设备,其中,所述设备还包括:
第十装置,用于获取所述第一待校验数据所对应的第一参照数据;
其中,所述第三装置用于:
基于所述第一参照数据,对所述第一待校验数据进行校验。
12.根据权利要求11所述的设备,其中,所述第十装置用于:
从所述源设备获取所述第一参照数据,其中,所述第一参照数据与所述第一数据相对应。
13.根据权利要求11或12所述的设备,其中,所述第三装置用于:
对所述第一参照数据和所述第一待校验数据进行全文比对;
若所述全文比对匹配,确定所述第一待校验数据对应的校验结果为合格。
14.根据权利要求8所述的设备,其中,所述第一数据基于与所述第二数据格式不同的第一数据格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510249497.5A CN106293977B (zh) | 2015-05-15 | 2015-05-15 | 一种数据校验方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510249497.5A CN106293977B (zh) | 2015-05-15 | 2015-05-15 | 一种数据校验方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293977A CN106293977A (zh) | 2017-01-04 |
CN106293977B true CN106293977B (zh) | 2019-04-05 |
Family
ID=57631984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510249497.5A Active CN106293977B (zh) | 2015-05-15 | 2015-05-15 | 一种数据校验方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293977B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019351A (zh) * | 2017-09-05 | 2019-07-16 | ***通信有限公司研究院 | 一种数据检测方法、装置及计算机可读存储介质 |
CN109634846B (zh) * | 2018-11-16 | 2021-10-19 | 武汉达梦数据库股份有限公司 | 一种etl软件测试方法和装置 |
CN110032513B (zh) * | 2019-04-02 | 2022-09-09 | 中汇信息技术(上海)有限公司 | 一种数据校验的方法、装置及电子设备 |
CN110457153A (zh) * | 2019-07-18 | 2019-11-15 | 北京顺丰同城科技有限公司 | 数据校验处理方法及装置 |
CN110704325B (zh) * | 2019-10-09 | 2021-07-30 | 京东数字科技控股有限公司 | 数据处理方法及装置、计算机存储介质及电子设备 |
CN110831010B (zh) * | 2019-10-21 | 2024-04-16 | 上海鹄恩信息科技有限公司 | 一种多通道数据发送及接收方法及装置和数据传输*** |
CN110781647B (zh) * | 2019-10-29 | 2023-07-04 | 浪潮云信息技术股份公司 | 一种基于Flink实现数据格式校验的方法 |
CN111311014B (zh) * | 2020-02-27 | 2024-04-12 | 广州酷旅旅行社有限公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
CN113568966A (zh) * | 2021-07-29 | 2021-10-29 | 上海哔哩哔哩科技有限公司 | 用于ods层和dw层之间的数据处理方法与*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819537A (zh) * | 2011-09-29 | 2012-12-12 | 金蝶软件(中国)有限公司 | 异构***中进行数据交换的方法及*** |
CN103577611A (zh) * | 2013-11-25 | 2014-02-12 | 方正国际软件有限公司 | 数据统一装置和数据统一方法 |
CN104462604A (zh) * | 2014-12-31 | 2015-03-25 | 成都市卓睿科技有限公司 | 数据加工方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130126827A (ko) * | 2012-04-30 | 2013-11-21 | (주)유니디아 | 데이터베이스 변환 방법, 이에 적합한 데이터베이스 변환 장치 그리고 데이터베이스 변환 방법을 기록한 기록매체 |
-
2015
- 2015-05-15 CN CN201510249497.5A patent/CN106293977B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819537A (zh) * | 2011-09-29 | 2012-12-12 | 金蝶软件(中国)有限公司 | 异构***中进行数据交换的方法及*** |
CN103577611A (zh) * | 2013-11-25 | 2014-02-12 | 方正国际软件有限公司 | 数据统一装置和数据统一方法 |
CN104462604A (zh) * | 2014-12-31 | 2015-03-25 | 成都市卓睿科技有限公司 | 数据加工方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106293977A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293977B (zh) | 一种数据校验方法与设备 | |
US9426284B2 (en) | Methods, systems, and computer readable media for call flow analysis using comparison level indicators | |
CN106528418B (zh) | 一种测试方法及装置 | |
CN109960653A (zh) | 回归测试方法、装置、设备和存储介质 | |
CN109067617A (zh) | 一种v2x协议一致性测试方法、装置及*** | |
CN108241576A (zh) | 一种接口测试方法及*** | |
CN106886535A (zh) | 一种适配多种数据源的数据抽取方法和装置 | |
Cabello | Simple method for experimentally testing any form of quantum contextuality | |
CN105786695A (zh) | 数据测试方法及*** | |
CN107360233A (zh) | 文件上传的方法、装置、设备及可读存储介质 | |
CN109799948A (zh) | 一种数据存储方法及装置 | |
CN109934712A (zh) | 应用于分布式***的对账方法、对账装置和电子设备 | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN104809250A (zh) | 一种松散式数据一致性校验方法 | |
CN102420724B (zh) | 一种北向性能指标测试方法及装置 | |
CN110515910A (zh) | 异构***间的数据处理方法、装置和计算机可读存储介质 | |
CN109472012A (zh) | 一种电子化试验报告的管理方法及装置 | |
CN109977006A (zh) | 订单匹配方法、装置、设备和存储介质 | |
KR101111244B1 (ko) | 함정용 연동 분석 장비의 성능 검증을 위한 시뮬레이션 시스템 | |
CN109818833B (zh) | 一种以太网测试***和以太网测试方法 | |
Barton | Optimal accelerated life-time plans that minimize the maximum test-stress | |
CN109889285B (zh) | 一种多用户测试方法及装置 | |
CN112069213A (zh) | 数据报送的方法和*** | |
CN114006678B (zh) | 一种fc-ae设备快速获取接收帧来源的方法 | |
CN102426414A (zh) | 一种电能质量监测***的对时方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |