CN104036029B - 大数据一致性对比方法和系统 - Google Patents
大数据一致性对比方法和系统 Download PDFInfo
- Publication number
- CN104036029B CN104036029B CN201410302021.9A CN201410302021A CN104036029B CN 104036029 B CN104036029 B CN 104036029B CN 201410302021 A CN201410302021 A CN 201410302021A CN 104036029 B CN104036029 B CN 104036029B
- Authority
- CN
- China
- Prior art keywords
- data
- storehouse table
- contrast
- result
- structural data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种大数据一致性对比方法和系统,所述方法包括:将第一待对比数据转换为第一结构化数据,以及将第二待对比数据转换为第二结构化数据;利用分布式并行计算构架对所述第一结构化数据和第二结构化数据进行分层对比,所述分层对比包括在不同层级对所述第一结构化数据和第二结构化数据中的数据统计信息进行对比和对所述第一结构化数据和第二结构化数据中的内容进行对比;若所述第一结构化数据和第二结构化数据中的数据统计信息不相同,则直接返回对比不一致的结果;若所述第一结构化数据和第二结构化数据中的数据统计信息和内容都相同,则返回对比一致的结果。采用该方法和系统,能够实现了高效的对无序的大数据进行一致性对比。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种大数据一致性对比方法和系统。
背景技术
大数据,也称为巨量数据,是指数据量为PB级(PB指petabyte,是较为高级的存储单位,为2的50次方字节)以上的数据。大数据由于数据量规模巨大,无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯,通常需要上千甚至几万台计算机通过网络连接组成的共同完成特定数据存储、计算任务的计算机集群(即大数据集群)来进行处理。
随着大数据时代的到来,大数据的价值得以开发,大数据的应用和处理越来越频繁,大数据一致性对比成为大数据中的一个关键应用。比如,在大数据集群系统更替时需要确定更替前后的大数据是否一致;算法优化前后计算结果是否一致;数据迁移前后是否一致等等。
然而传统的对比工具通常只能实现小数据量一致性的对比,但在对比大数据量(PB级数据量)时效率则非常低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能提高对比效率的大数据一致性对比方法和系统。
一种大数据一致性对比方法,所述方法包括:
将第一待对比数据转换为第一结构化数据,以及将第二待对比数据转换为第二结构化数据;
利用分布式并行计算构架对所述第一结构化数据和第二结构化数据进行分层对比,所述分层对比包括在不同层级对所述第一结构化数据和第二结构化数据中的数据统计信息进行对比和对所述第一结构化数据和第二结构化数据中的内容进行对比;
若所述第一结构化数据和第二结构化数据中的数据统计信息不相同,则直接返回对比不一致的结果;若所述第一结构化数据和第二结构化数据中的数据统计信息和内容都相同,则返回对比一致的结果。
一种大数据一致性对比系统,所述系统包括:
数据转换模块,用于将第一待对比数据转换为第一结构化数据,以及将第二待对比数据转换为第二结构化数据;
数据对比模块,用于利用分布式并行计算构架对所述第一结构化数据和第二结构化数据进行分层对比,所述分层对比包括在不同层级对所述第一结构化数据和第二结构化数据中的数据统计信息进行对比和对所述第一结构化数据和第二结构化数据中的内容进行对比;若所述第一结构化数据和第二结构化数据中的数据统计信息不相同,则直接返回对比不一致的结果;若所述第一结构化数据和第二结构化数据中的数据统计信息和内容都相同,则返回对比一致的结果。
上述大数据一致性对比方法和系统,通过将非结构化的待对比数据转换为有序的结构化数据,使得后续的对比更加高效。另外,利用分布式并行架构对第一结构化数据和第二结构化数据进行分层对比,通过在不同层级分别对第一结构化数据和第二结构化数据中的数据通信信息和内容进行对比,这种分层对比的方式能够降低一些不必要的对比开销,从而提高了对比效率,能够高效的解决无序的大数据一致性对比的问题,且能实现大数据的高一致性对比。
附图说明
图1为一个实施例中大数据一致性对比方法的应用环境图;
图2为一个实施例中大数据一致性对比方法的流程示意图;
图3为另一个实施例中大数据一致性对比方法的流程示意图;
图4为图3中对非结构化数据转换为结构化数据的示意图;
图5为图3中判断第一库表中的记录条数与第二库表中的记录条数是否相同的步骤的流程示意图;
图6为图3中对第一库表和第二库表进行内容对比的流程示意图;
图7为图6中对两个库表进行内容对比的示意图;
图8为一个实施例中利用MapReduce进行分布式计算的示意图;
图9为一个实施例中大数据一致性对比系统的结构框图;
图10为图9中数据对比模块的结构框图;
图11为另一个实施例中大数据一致性对比系统的结构框图;
图12为一个实际项目中的大数据一致性对比系统的运行框架图;
图13为图12中的记录结果的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例所提供的一种大数据一致性对比方法可应用于如图1所示的系统中。参考图1所示,需要进行一致性对比的大数据A和大数据B为计算机集群中的数据,比如,可以分别是大数据集群进行系统更替时的更替前和更替后的大数据,可以分别是集群中进行算法优化所对应的优化前的计算结果和优化后的计算结果,也可以分别是大数据从一个计算机集群迁移到另一个计算机集群所对应的迁移前的数据和迁移后的数据,等等。需要进行一致性对比的大数据A和大数据B通常为不规整的目录文件数据,服务器106获取这些数据,将这些非结构化的数据转换为规整的结构化数据(库表),然后使用分布式并行计算架构108对得到的两个有序的库表进行分层对比。其中,分层对比包括对两个库表中的数据统计信息和内容进行对比。具体的,例如,可先对比两个库表中的记录条数是否相同,如果记录条数不相同,则表明其内容不可能相同,直接返回对比不一致的结果。如果记录条数相同,再进一步对比内容是否相同,采用分布式并行计算架构108使用多线程提交任务进行并行计算对比,大大提高了对比效率。最终将对比结果存储至数据库110中。存储在数据库110中的对比结果可以通过前台进行展现,或通过网络112推送至远程终端114进行展示,比如以邮件的方式发送到远程终端114。
如图2所示,在一个实施例中,提供了一种大数据一致性对比方法,该方法以运行于Linux(一种类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统)服务器进行举例说明,该方法包括:
步骤202,将第一待对比数据转换为第一结构化数据,以及将第二待对比数据转换为第二结构化数据。
本实施例中,第一待对比数据和第二待对比数据即为需要进行一致性对比的大数据,由于原始的大数据是不规整的,因此可先分别将第一待对比数据和第二待对比数据转换为规整有序的结构化数据,如库表。
步骤204,利用分布式并行计算架构对第一结构化数据和第二结构化数据进行分层对比,分层对比包括在不同层级对第一结构化数据和第二结构化数据中的数据通信信息进行对比和对第一结构化数据和第二结构化数据中的内容进行对比。
本实施例中,若第一结构化数据和第二结构化数据中的数据统计信息不相同,则直接返回对比不一致的结果;若第一结构化数据和第二结构化数据中的数据统计信息和内容都相同,则返回对比一致的结果。
具体的,可利用分布式并行计算架构,先对第一结构化数据和第二结构化数据中的数据统计信息进行对比,数据统计信息可以是结构化数据的记录条数、行数、列数、数据量大小等中的至少一种。若第一结构化数据和第二结构化数据中的数据统计信息不相同,则不再进行内容对比,因为如果数据统计信息不相同,则内容不可能再相同,则直接返回对比不一致的结果。若第一结构化数据和第二结构化数据中的数据统计信息相同,则再进一步对第一结构化数据和第二结构化数据中的内容进行对比,若内容相同,则返回对不一致的结果,若内容不相同,则返回对比不一致的结果。
本实施例中,通过将非结构化的待对比数据转换为结构化数据,例如,可将无序的大数据转换为有序的库表,使得后续的对比更加高效。另外,利用分布式并行架构对第一结构化数据和第二结构化数据进行分层对比,这种分层对比的方式能够降低一些不必要的对比开销,从而提高了对比效率,能够高效的解决无序的大数据一致性对比的问题,且能实现大数据的高一致性对比。
在一个实施例中,第一结构化数据为第一库表,第二结构化数据为第二库表;利用分布式并行计算架构对第一结构化数据和第二结构化数据进行分层对比的步骤包括:判断第一库表和第二库表中的记录条数是否相同,若是,则对第一库表和第二库表进行内容对比,否则返回对比不一致的结果。
如图3所示,一种大数据一致性对比方法,该方法以应用于Linux服务器进行举例说明,该方法包括:
步骤302,对第一待对比数据中目录下所有数据创建对应的外表,得到结构化的第一库表,以及对第二待对比数据中目录下所有数据创建对应的外表,得到结构化的第二库表。
本实施例中,可采用开源框架Hive将大数据的文件所在目录关联为库表。Hive是基于Hadoop(一种分布式系统基础架构)的一个数据仓库工具,其可以将结构化的数据文件映射为一张库表,也可将SQL(结构化查询语言)语句转换为MapReduce(一种编程模型,用于大规模数据集的并行计算)任务进行运行。这样,可将不规整的大数据转换为有序的数据,规避了原始数据由于文件分片不一致导致无法对比的问题,实现了大数据的可对比性。
举例说明,可采用如下SQL语句对一个目录下的数据创建外表:
CREATEEXTERNALTABLETX(aString,)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'13'LOCATION'/user/tdwadmin/test1'
其中,“/user/tdwadmin/test1”表示目录的路径。
如图4所示,需要进行一致性对比的大数据X和Y包含文件目录以及目录下的数据,分别对每条目录下所有数据创建对应的外表,得到相应的库表TX和TY,库表TX和库表TY中的数据是有序的。应当说明的是,图4所示的库表的内容仅仅是一个示例,并不用于限制本实施例。
步骤304,判断第一库表和第二库表中的记录条数是否相同,若是,则进入步骤306,否则进入步骤308。
步骤306,判断第一库表和第二库表中的内容是否相同,若是,则进入步骤308,否则进入步骤310。
步骤308,返回对比不一致的结果。
步骤310和步骤312,返回对比不一致的结果。
本实施例中,可对两个库表分别执行selectcount获取其中的记录条数。如果第一库表和第二库表中的记录条数不相同,则两个库表的内容必然不相同,直接返回对比不一致的结果,以降低不必要的对比开销。如果两个库表中的记录条数相同,再进一步判断第一库表和第二库表中的内容是否相同,如果相同,则返回对比一致的结果,如果内容不相同,则返回对比不一致的结果。
进一步的,在一个实施例中,可将大数据一致性对比结果进行记录,生成记录结果,将记录结果发送至远程终端,记录结果包括记录条数对比失败列表、内容对比失败列表和内容对比成功列表。其中,每一列表都可包含任务标识、任务类型、每个任务对应的记录条数等等,其中内容对比成功列表还包含每个任务对应的内容对比结果。可以理解,若内容对比失败列表和内容对比成功列表中不为空,则记录条数对比失败列表为空,若记录条数对比失败列表不为空,则内容对比失败列表和内容对比成功列表为空。本实施例中,记录结果中还可包含对对比结果的汇总,比如,内容对比成功的任务数量、内容对比失败的任务数量等。可将记录结果以邮件推送的方式发送至远程终端。
在一个实施例中,如图5所示,判断第一库表中的记录条数与第二库表中的记录条数是否相同的步骤为:
步骤502,分别统计第一库表中去重后的第一记录条数和第二库表中去重后的第二记录条数。
步骤504,获取第一记录条数和第二记录条数相减后的绝对值。
步骤506,判断该绝对值是否为零,若是,则进入步骤508,否则进入步骤510。
步骤508,第一库表中的记录条数与第二库表中的记录条数相同。
步骤510,第一库表中的记录条数与第二库表的记录条数不相同。
本实施例中,由于第一库表和第二库表中都是规则的结构化数据,可直接对第一库表和第二库表执行selectcount获取其中的记录条数。例如,对于图4中的第一库表TX,可执行如下语句:
NonrepeatingX:Selectcount(distincta)fromTX
从而可以获取第一库表TX中去重后的记录条数。
本实施例中,通过简单的SQL语句即可直接得到第一库表和第二库表中去重后的记录条数,从而对记录条数进行对比,在记录条数相同时再进行内容对比,能够提高对比效率。
在一个实施例中,如图6所示,对第一库表和第二库表进行内容对比的步骤,包括:
步骤602,分别对第一库表和第二库表按照字段进行分组统计,得到第一库表对应的分组统计结果和第二库表对应的分组统计结果。
步骤604,对第一库表对应的分组统计结果和第二库表对应的分组统计结果进行关联计算。
步骤606,判断第一库表对应的分组统计结果和第二库表对应的分组统计结果中的分组统计信息相同且字段值是否也相同,若是,则进入步骤608,否则进入步骤610。
步骤608,返回对比一致的结果。
步骤610,返回对比不一致的结果。
具体的,结合图7所示,本实施例中,可分别对第一库表A和第二库表B执行如上所述的selectcount。例如,执行语句:selectcount(distincta)fromA以得到第一库表A对应的分组统计结果(如表S1所示)。执行语句:selectcount(distincta)fromB以得到第一库表B对应的分组统计结果(如表S2所示)。该分组统计结果包括字段值和分组统计信息,其中,字段值是指字段中的具体内容,如表S1中的“aaaaaaaa”,分组统计信息是指统计出的每一字段值对应的数量,比如表S1中,“aaaaaaaa”的分组统计信息为2,“bbbbbbbbb”的分组统计信息为2,等等。进一步的,对表S1和表S2进行JOIN关联计算,SQL中的JOIN可根据两个或多个表中的列之间的关系来实现从这些表中查询数据。本实施例中,JOIN关联计算的条件是两个表的字段值相等、字段分组统计信息也相等。如图7所示,对于表S1和表S2,执行语句:
SELECTCOUNT(*)FROM(SELETt1.aa.COUNT(*)bFROMt1GROUPBYt1.a)s1JOIN(SELECTt1.aa.COUNT(*)bFROMT1GROUPBYt1.a)s2ON(s1.a=s2.aANDs1.b=s2.b);
即可查询表S1和表2中是否分组统计信息和字段值都相同,如果都相同,标识第一库表和第二库表中的数据完全相同,返回对比一致的结果,否则返回对比不一致的结果。
本实施例中,由于可以查询两个库表的分组统计结果,分组统计结果包含分组统计信息和字段中的具体内容(也就是字段值),通过JION关联计算,即可查询得到两个库表对应的分组统计信息和字段值是否都相同,在满足都相同的条件下,得到对比一致的对比结果。从而可以实现大数据的高一致性对比,所谓高一致性是指事物的全部特征完全一致,对于大数据来说,大数据一致性则指的是大数据中记录条数、每条记录的内容和计算的重复次数完全一致。可以理解,本实施例可以实现大数据的高一致性对比。
在一个实施例中,上述各实施例中的大数据一致性对比方法中,利用开源分布式并行计算架构中的MapReduce并行计算第一结构化数据中的记录条数和第二结构化数据中的记录条数,以及对第一结构化数据和第二结构化数据进行内容对比。如图8所示,本实施例中,源数据为转换得到的结构化数据即库表,在源数据进行对比的过程中,可使用多线程对比提交任务,利用开源分布式并行计算架构中的MapReduce实现并行计算,从而能够大大提高对比效率。所得到的对比结果可存储在数据库中。
如图9所示,在一个实施例中,还提供了一种大数据一致性对比系统,包括数据转换模块902和数据对比模块904,其中:
数据转换模块902用于将第一待对比数据转换为第一结构化数据,以及第二待对比数据转换为第二结构化数据。
数据对比模块904用于利用分布式并行计算构架对第一结构化数据和第二结构化数据进行分层对比,分层对比包括在不同层级对第一结构化数据和第二结构化数据中的数据统计信息进行对比和对第一结构化数据和第二结构化数据中的内容进行对比;若第一结构化数据和第二结构化数据中的数据统计信息不相同,则直接返回对比不一致的结果;若第一结构化数据和第二结构化数据中的数据统计信息和内容都相同,则返回对比一致的结果。
在一个实施例中,第一结构化数据为第一库表,第二结构化数据为第二库表。数据转换模块902用于判断第一库表和第二库表中的记录条数是否相同,若是,则对第一库表和第二库表进行内容对比,否则,返回对比不一致的结果。
本实施例中,数据转换模块902可用于采用开源框架Hive将大数据的文件所在目录关联为库表,从而将不规整的大数据转换为有序的数据。
进一步的,在一个实施例中,如图10所示,数据对比模块904包括记录条数对比模块924和内容对比模块944,其中:
记录条数对比模块924用于分别统计第一库表中去重后的第一记录条数和第二库表中去重后的第二记录条数;获取第一记录条数和第二记录条数相减后的绝对值;判断绝对值是否为零,若为零,则第一库表中的记录条数与第二库表中的记录条数相同,若不为零,则第一库表中的记录条数与第二库表中的记录条数不相同。
内容对比模块944用于分别对第一库表和第二库表按照字段进行分组统计,得到第一库表对应的分组统计结果和第二库表对应的分组统计结果,对第一库表对应的分组统计结果和第二库表对应的分组统计结果进行关联计算;若第一库表对应的分组统计结果和第二库表对应的分组统计结果中的分组统计信息相同且字段值相同,则返回对比一致的结构,否则返回对比不一致的结果。
在一个实施例中,数据对比模块904还用于利用开源分布式并行计算架构中的MapReduce并行计算第一结构化数据中的记录条数和第二结构化数据中的记录条数,以及对第一结构化数据和第二结构化数据进行内容对比。
在一个实施例中,如图11所示,大数据一致性对比系统还包括:
记录和发送模块906,用于将大数据一致性对比结果进行记录,生成记录结果,将记录结果发送至远程终端,记录结果包括记录条数对比失败列表、内容对比失败列表和内容对比成功列表。
本实施例中,每一列表都可包含任务标识、任务类型、每个任务对应的记录条数等等,其中内容对比成功列表还包含每个任务对应的内容对比结果。,记录结果中还可包含对对比结果的汇总,比如,内容对比成功的任务数量、内容对比失败的任务数量等。可将记录结果以邮件推送的方式发送至远程终端。
下面结合一个具体的实施例来对上述大数据一致性对比方法和系统的原理进行详细说明。本实施例中,需实现对计算机集群进行规模扩建,比如,从4K到8K的升级过程中,集群底层机构从Corona(一种集群架构)升级到Gaia(另一种集群架构),任务也需要从Corona集群逐步迁移至Gaia集群上。为了保证整个过程对业务计算无影响以及业务正常迁移,需要对现网任务割接前对现网任务在两个不同的集群进行数据一致性对比测试。其中,现网是指生产环境中正式部署的硬件和软件的集合,即生产环境。任务是指在运行场景下对数据进行的一种操作,会输出操作结果。
结合图12所示,根据现网的调度引擎层获取现网真实任务,构造现网对比测试任务,现网测试是指现网环境上进行的测试,通过测试环境发起测试对比任务到测试客户端(测试lhoster客户端),然后再将测试客户端提交到现网客户端上,最后提交到Gaia平台上运行。如图8所示,在现网客户端层上运行有现网Conronahive客户端、现网Coronahadoop客户端、现网GaiaHadoop客户端和现网Gaiahive客户端。在现网Conronahive客户端和现网Coronahadoop客户端执行现网任务,在现网GaiaHadoop客户端和现网Gaiahive客户端上执行测试任务,则在现网集群层上得到现网任务在Corona上的执行结果以及测试任务在Gaia上的执行结果,将这两个执行结果传输至结果对比层进行大数据一致性对比。
进一步的,在结果对比层实现大数据一致性对比过程中,首先进行任务级对比,即对比任务的任务状态是否相同,其中任务状态包括任务成功和任务失败两个状态,如果任务状态对比不相同,是得到任务状态对比失败的对比结果,如果任务状态对比相同,则再进一步进行记录条数和内容对比。其中,记录条数可根据任务的类型分别统计。如图8所示,统计的记录条数包括MR记录条数、PYSQL计算条数和记录条数去重数量,其中MB记录条数是指MapReduce并行计算任务的记录条数,PYSQL是指PYSQL计算类型的任务对应的记录条数,记录条数去重数量是指所有任务的记录条数去重后的数量。若这些记录条数都相同,则进一步进行内容对比,若不相同,则直接输出对比不一致的结果。
进一步的,在进行内容对比的过程中,如上所述,对于Corona计算结果数据(Corona集群中还包含Hadoop其它目录)和Gaia计算结果数据,通过HiveSQL语句将目录关联成外表,得到结构化数据,再将得到的结构化数据进行分组统计和关联计算,得到内容对比是否一致的对比结果。结合图8所示,将对比结果进行记录和收集,最终可将对比结果进行邮件推送。图13展示了一种邮件接收到的对比结果,以MR任务为例,展示了MR任务的记录条数对比失败列表、内容对比失败列表和内容对比成功列表。本实施例中,MR任务的记录条数对比失败列表为空,也就是说,记录条数相同。内容对比失败列表也为空,也就是说内容对比结果为内容一致。在内容对比成功列表中,包含有任务以及对应在不同平台上的任务状态和记录条数、分组统计后的记录条数以及任务对应的内容对比是否一致的对比结果,任务标识用于唯一标识每个任务。进一步的,若统计出内容对比失败列表中有任务,则开发人员可针对性的对这些失败的任务进行解决,以最终实现大数据对比完全一致的目的。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种大数据一致性对比方法,所述方法包括:
将第一待对比数据转换为第一结构化数据,以及将第二待对比数据转换为第二结构化数据;
利用分布式并行计算构架对所述第一结构化数据和第二结构化数据进行分层对比,所述分层对比包括在不同层级对所述第一结构化数据和第二结构化数据中的数据统计信息进行对比和对所述第一结构化数据和第二结构化数据中的内容进行对比;所述第一结构化数据为第一库表,所述第二结构化数据为第二库表,所述数据统计信息包括记录条数;所述利用分布式并行计算架构对所述第一结构化数据和第二结构化数据进行分层对比的步骤包括:判断所述第一库表和第二库表中的记录条数是否相同,若是,则对所述第一库表和第二库表进行内容对比,若所述第一库表和第二库表中的内容不相同,则返回对比不一致的结果,若所述第一库表和第二库表中的内容相同,则返回对比一致的结果;若所述第一库表和第二库表中的记录条数不相同,则直接返回对比不一致的结果。
2.根据权利要求1所述的方法,其特征在于,所述判断第一库表中的记录条数与第二库表中的记录条数是否相同的步骤,包括:
分别统计所述第一库表中去重后的第一记录条数和所述第二库表中去重后的第二记录条数;
获取所述第一记录条数和第二记录条数相减后的绝对值;
判断所述绝对值是否为零,若为零,则所述第一库表中的记录条数与第二库表中记录条数相同,若不为零,则所述第一库表中的记录条数与第二库表中的记录条数不相同。
3.根据权利要求1所述的方法,其特征在于,所述对第一库表和第二库表进行内容对比的步骤,包括:
分别对所述第一库表和第二库表按照字段进行分组统计,得到第一库表对应的分组统计结果和第二库表对应的分组统计结果;
对所述第一库表对应的分组统计结果和第二库表对应的分组统计结果进行关联计算;
若所述第一库表对应的分组统计结果和第二库表对应的分组统计结果中的分组统计信息相同且字段值相同,则返回对比一致的结果,否则返回对比不一致的结果。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
将大数据一致性对比结果进行记录,生成记录结果,将所述记录结果发送至远程终端,所述记录结果包括记录条数对比失败列表、内容对比失败列表和内容对比成功列表。
5.一种大数据一致性对比系统,其特征在于,所述系统包括:
数据转换模块,用于将第一待对比数据转换为第一结构化数据,以及将第二待对比数据转换为第二结构化数据;
数据对比模块,用于利用分布式并行计算构架对所述第一结构化数据和第二结构化数据进行分层对比,所述分层对比包括在不同层级对所述第一结构化数据和第二结构化数据中的数据统计信息进行对比和对所述第一结构化数据和第二结构化数据中的内容进行对比;所述第一结构化数据为第一库表,所述第二结构化数据为第二库表,所述数据统计信息包括记录条数;所述数据对比模块用于判断所述第一库表和第二库表中的记录条数是否相同,若是,则对所述第一库表和第二库表进行内容对比,若所述第一库表和第二库表中的内容不相同,则返回对比不一致的结果,若所述第一库表和第二库表中的内容相同,则返回对比一致的结果;若所述第一库表和第二库表中的记录条数不相同,则直接返回对比不一致的结果。
6.根据权利要求5所述的系统,其特征在于,所述数据对比模块包括:
记录条数对比模块,用于分别统计所述第一库表中去重后的第一记录条数和所述第二库表中去重后的第二记录条数;获取所述第一记录条数和第二记录条数相减后的绝对值;判断所述绝对值是否为零,若为零,则所述第一结构化数据中的记录条数与第二结构化数据中记录条数相同,若不为零,则所述第一结构化数据中的记录条数与第二结构化数据中的记录条数不相同。
7.根据权利要求5所述的系统,其特征在于,所述数据对比模块包括:
内容对比模块,用于分别对所述第一库表和第二库表按照字段进行分组统计,得到第一库表对应的分组统计结果和第二库表对应的分组统计结果;对所述第一库表对应的分组统计结果和第二库表对应的分组统计结果进行关联计算;若所述第一库表对应的分组统计结果和第二库表对应的分组统计结果中的分组统计信息相同且字段值相同,则返回对比一致的结果,否则返回对比不一致的结果。
8.根据权利要求5至7任一项所述的系统,其特征在于,所述系统还包括:
记录和发送模块,用于将大数据一致性对比结果进行记录,生成记录结果,将所述记录结果发送至远程终端,所述记录结果包括记录条数对比失败列表、内容对比失败列表和内容对比成功列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302021.9A CN104036029B (zh) | 2014-06-27 | 2014-06-27 | 大数据一致性对比方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302021.9A CN104036029B (zh) | 2014-06-27 | 2014-06-27 | 大数据一致性对比方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104036029A CN104036029A (zh) | 2014-09-10 |
CN104036029B true CN104036029B (zh) | 2016-04-13 |
Family
ID=51466799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410302021.9A Active CN104036029B (zh) | 2014-06-27 | 2014-06-27 | 大数据一致性对比方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104036029B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317942A (zh) * | 2014-10-31 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于Hadoop云平台的海量数据比对方法及系统 |
CN104462343B (zh) * | 2014-12-08 | 2018-12-25 | 北京庆世昌明科技有限公司 | 一种大数据比对碰撞系统 |
CN104731858B (zh) * | 2015-01-29 | 2018-06-19 | 无锡科技职业学院 | 一种多客户端并行检测数据库内容一致性系统及方法 |
JP6459669B2 (ja) * | 2015-03-17 | 2019-01-30 | 日本電気株式会社 | カラムストア型データベース管理システム |
CN105912605A (zh) * | 2016-04-05 | 2016-08-31 | Tcl集团股份有限公司 | Bi报表的统计方法及系统 |
CN107273378B (zh) * | 2016-04-07 | 2021-01-01 | 创新先进技术有限公司 | 一种文件存储方法及装置 |
CN107368486B (zh) * | 2016-05-12 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种业务迁移方法及装置 |
CN108733662A (zh) * | 2017-04-13 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 数据一致性比对的方法、装置、电子设备和可读存储介质 |
CN108733689B (zh) * | 2017-04-18 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 一种json文本的比对方法和装置 |
CN109828979A (zh) * | 2019-01-31 | 2019-05-31 | 浙江小泰科技有限公司 | 一种数据一致性检测方法及系统 |
CN111949524A (zh) * | 2020-08-03 | 2020-11-17 | 北京锐安科技有限公司 | 一种数据接口测试方法、装置、服务器和存储介质 |
CN113064909B (zh) * | 2021-06-03 | 2021-10-22 | 广州宸祺出行科技有限公司 | 一种数据同步校验方法、装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368762B (zh) * | 2012-04-05 | 2017-03-15 | 百度在线网络技术(北京)有限公司 | 大数据对比测试方法、系统及装置 |
US20130339367A1 (en) * | 2012-06-14 | 2013-12-19 | Santhosh Adayikkoth | Method and system for preferential accessing of one or more critical entities |
CN103678583B (zh) * | 2013-12-11 | 2017-07-21 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
-
2014
- 2014-06-27 CN CN201410302021.9A patent/CN104036029B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104036029A (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104036029B (zh) | 大数据一致性对比方法和系统 | |
US11563789B2 (en) | Executing streaming data writes without duplication or loss | |
US9740706B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US9619430B2 (en) | Active non-volatile memory post-processing | |
CN111327681A (zh) | 一种基于Kubernetes的云计算数据平台构建方法 | |
CN108595664B (zh) | 一种hadoop环境下的农业数据监控方法 | |
Wang et al. | Research on parallelization of Apriori algorithm in association rule mining | |
CN104391903A (zh) | 一种基于分布存储和并行计算的电网数据质量检测方法 | |
KR20100070968A (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
US9189489B1 (en) | Inverse distribution function operations in a parallel relational database | |
CN109063005B (zh) | 一种数据迁移方法及系统、存储介质、电子设备 | |
CN106980906B (zh) | 一种基于spark的Ftrl电压预测方法 | |
US10162830B2 (en) | Systems and methods for dynamic partitioning in distributed environments | |
US10599614B1 (en) | Intersection-based dynamic blocking | |
US20210365300A9 (en) | Systems and methods for dynamic partitioning in distributed environments | |
Costa et al. | A survey on data-driven performance tuning for big data analytics platforms | |
Fang et al. | Integrating workload balancing and fault tolerance in distributed stream processing system | |
CN113641739B (zh) | 一种基于Spark的智能数据转换方法 | |
CN112000703B (zh) | 数据入库处理方法、装置、计算机设备和存储介质 | |
CN109669987A (zh) | 一种大数据存储优化方法 | |
CN104239520B (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
Ding et al. | Commapreduce: An improvement of mapreduce with lightweight communication mechanisms | |
CN115083538B (zh) | 一种药物数据的处理系统、运行方法及数据处理方法 | |
US20210103478A1 (en) | Systems and methods for dynamic partitioning in distributed environments | |
CN109918410B (zh) | 基于Spark平台的分布式大数据函数依赖发现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |