CN104036039B - 一种数据的并行处理方法和系统 - Google Patents
一种数据的并行处理方法和系统 Download PDFInfo
- Publication number
- CN104036039B CN104036039B CN201410307198.8A CN201410307198A CN104036039B CN 104036039 B CN104036039 B CN 104036039B CN 201410307198 A CN201410307198 A CN 201410307198A CN 104036039 B CN104036039 B CN 104036039B
- Authority
- CN
- China
- Prior art keywords
- data
- state
- output parameter
- record
- account
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000012634 fragment Substances 0.000 claims abstract description 45
- 241001269238 Data Species 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 36
- 241000208340 Araliaceae Species 0.000 claims description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 2
- 235000008434 ginseng Nutrition 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的并行处理方法,包括:一个或多个Map节点读取账户日志数据的分片数据,从分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;第一输出参数至少包括账户ID,第二输出参数至少包括:状态开始日、状态结束日和状态值;一个或多个Reduce节点读取Map节点处理完的不同候选数据记录,根据候选数据记录的第一输出参数和第二输出参数分别生成各账户在查询日期范围内的完整历史状态记录;第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取。本发明能提高大规模日志数据的处理效率。本发明还公开了一种数据的并行处理系统。
Description
技术领域
本发明涉及大数据处理技术领域,尤其涉及的是一种数据的并行处理方法和系统。
背景技术
随着人类社会全面进入信息时代,数据成为与水、石油同等重要的战略资源。通过挖掘海量数据,能够使政府和企业的运行决策建立在更加科学的依据基础上,提高决策效率、危机应对能力和公共服务水平。
然而,大数据虽然极具价值,但由于类型复杂、规模巨大,传统的数据仓库和分布式处理技术都有特定的短板,面临着持续可扩展和天价成本等问题。例如,数据仓库中常用的记录某个对象行为的历史状态数据,在大数据时代随着对象数量(如客户)的急速增加,以及每个处理对象行为(如客户交易)的迅速增加,规模成爆炸式增长。为此,传统数据仓库定义了拉链表结构,记录一个对象从开始到当前状态的所有变化的信息。其中,对于对象的某个状态,用开始时间(begin date)和结束时间(end date)确定该状态的持续时间;对于当前状态,记录开始时间,并设定结束时间为一个预设的最大时间(如9999-12-31),这种状态称为开链;对于过去状态,则记录开始时间和结束时间,称为闭链。这样,通过保留一份全量数据,只对每天有状态变化的对象及时闭链和生成当前状态的开链数据作为增量数据,避免了按每天都记录所有对象状态造成的海量存储的问题。
采用拉链表结构生成全量日志数据和增量日志数据的存储方式的代价是增加了查询处理的复杂性。传统数据仓库依托于并行关系数据库引擎实现,虽然易于用户操作和使用,但关系数据模型固有的锁、事务、完整性验证等强结构性特征制约了面向大规模数据的并行处理能力,并且受制于昂贵的软硬件设施,数据的存储和处理成本较高。
针对此挑战,当前新兴的以MapReduce为代表的大数据处理技术采用大量廉价、低端服务器的搭建,通过横向扩展的无共享架构提升整体性能,能够达到接近线性的伸缩能力。但是,MapReduce缺乏类似SQL的描述式语义,开发人员需要自行实现算法细节,并考虑查询优化、负载均衡、数据归并和排序方式等问题。
因此,如何利用新兴的数据处理技术,提高对面向大数据的日志数据进行处理的效率、降低数据处理成本,是需要解决的问题。
发明内容
本发明所要解决的技术问题是提供一种数据的并行处理方法和系统,能够提高大规模日志数据的处理效率,保障数据处理的可扩展性。
为了解决上述技术问题,本发明提供了一种数据的并行处理方法,该方法包括:
一个或多个Map节点读取账户日志数据的分片数据,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;其中,所述候选数据记录的第一输出参数至少包括账户ID,所述第二输出参数设定为账户状态信息,所述账户状态信息至少包括:状态开始日、状态结束日和状态值;
一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录;其中,第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取。
进一步地,该方法还包括下述特点:
在一个或多个Map节点读取账户日志数据的分片数据之前,还包括:
将全量日志数据和截止到查询日期终止日当天的增量日志数据确定为账户日志数据的读取范围;
将属于该读取范围内的账户日志数据分片,建立每一个分片与各Map节点的映射关系;其中,所述映射关系用于供所述Map节点根据所述映射关系读取对应的分片数据。
进一步地,该方法还包括下述特点:
从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:
如查询日期是单日,则从读取的分片数据中选出状态开始日小于或等于所述查询日期且状态结束日大于所述查询日期的数据作为候选数据记录。
进一步地,该方法还包括下述特点:
根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是单日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,将第二输出参数中状态开始日最晚的候选数据记录作为最终的查询结果进行输出。
进一步地,该方法还包括下述特点:
从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:
如查询日期是连续多日,则从读取的分片数据中选出满足下述条件中任意一个条件的数据作为候选数据记录;
所述条件之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日。
进一步地,该方法还包括下述特点:
根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是连续多日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,如第一输出参数相同的候选数据记录数目为一条,则直接输出该条候选数据记录,如第一输出参数相同的候选数据记录数目多于一条,则选出一条闭链数据进行输出;
其中,所述候选数据记录的第一输出参数还包括状态开始日。
进一步地,该方法还包括下述特点:
一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录之前,还包括:
计算每一条候选数据记录的第一参数中账户ID的哈希值,建立所述哈希值与所述Reduce节点的映射关系;其中,所述映射关系用于供所述Reduce节点根据所述映射关系读取对应的候选数据记录。
为了解决上述技术问题,本发明还提供了一种数据的并行处理系统,包括:
Map处理模块,包括一个或多个Map节点;各Map节点用于读取账户日志数据的分片数据,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;其中,所述候选数据记录的第一输出参数至少包括账户ID,所述第二输出参数设定为账户状态信息,所述账户状态信息至少包括:状态开始日、状态结束日和状态值;
Reduce处理模块,包括一个或多个Reduce节点;各Reduce节点用于读取所述Map节点处理完毕的不同候选数据记录,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录;其中,第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取。
进一步地,该系统还包括下述特点:
Map处理模块还包括路由模块;
所述路由模块,用于在一个或多个Map节点读取账户日志数据的分片数据之前,将全量日志数据和截止到查询日期终止日当天的增量日志数据确定为账户日志数据的读取范围;将属于该读取范围内的账户日志数据分片,建立每一个分片与各Map节点的映射关系;其中,所述映射关系用于供所述Map节点根据所述映射关系读取对应的分片数据。
进一步地,该系统还包括下述特点:
所述Map节点用于从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:如查询日期是单日,则从读取的分片数据中选出状态开始日小于或等于所述查询日期且状态结束日大于所述查询日期的数据作为候选数据记录。
进一步地,该系统还包括下述特点:
所述Reduce节点用于根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:如查询日期是单日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,将第二输出参数中状态开始日最晚的候选数据记录作为最终的查询结果进行输出。
进一步地,该系统还包括下述特点:
所述Map节点用于从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:如查询日期是连续多日,则从读取的分片数据中选出满足下述条件中任意一个条件的数据作为候选数据记录;
所述条件之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日。
进一步地,该系统还包括下述特点:
所述Reduce节点用于根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是连续多日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,如第一输出参数相同的候选数据记录数目为一条,则直接输出该条候选数据记录,如第一输出参数相同的候选数据记录数目多于一条,则选出一条闭链数据进行输出;
其中,所述候选数据记录的第一输出参数还包括状态开始日。
进一步地,该系统还包括下述特点:
所述Reduce处理模块还包括路由模块;
所述路由模块,用于在一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录之前,计算每一条候选数据记录的第一参数中账户ID的哈希值,建立所述哈希值与所述Reduce节点的映射关系;其中,所述映射关系用于供所述Reduce节点根据所述映射关系读取对应的候选数据记录。
与现有技术相比,本发明提供的一种数据的并行处理方法和系统,基于MapReduce处理架构,Map阶段通过各Map节点并行读取数据并提取特征值作为参数对(第一输出参数和第二输出参数)进行输出,Reduce阶段通过各Reduce节点并行读取Map阶段的处理结果,利用数据的输出参数进行路由、排序、合并处理,能够快速处理大规模日志数据,保障数据处理的可扩展性。
附图说明
图1为本发明实施例的一种数据的并行处理方法的流程图。
图2为本发明实施例的一种数据的并行处理系统的结构示意图。
图3为本发明应用示例中基于MapReduce的历史状态日志处理架构。
图4为本发明应用示例中查询日期起止时间区间与日志数据的状态起止时间区间的覆盖关系示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,本发明实施例提供了一种数据的并行处理方法,该方法包括:
S10,一个或多个Map节点读取账户日志数据的分片数据,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;其中,所述候选数据记录的第一输出参数至少包括账户ID,所述第二输出参数设定为账户状态信息,所述账户状态信息至少包括:状态开始日、状态结束日和状态值;
S20,一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录;其中,第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取。
该方法还可以包括下述特点:
优选地,在一个或多个Map节点读取账户日志数据的分片数据之前,还包括:
根据查询日期确定账户日志数据的读取范围,包括:将全量日志数据和截止到查询日期终止日当天的增量日志数据确定为账户日志数据的读取范围;将属于该读取范围内的账户日志数据分片,建立每一个分片与各Map节点的映射关系;其中,所述映射关系用于供所述Map节点根据所述映射关系读取对应的分片数据。
优选地,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:
如查询日期是单日,则从读取的分片数据中选出状态开始日小于或等于所述查询日期且状态结束日大于所述查询日期的数据作为候选数据记录。
如查询日期是连续多日,则从读取的分片数据中选出满足下述条件中任意一个条件的数据作为候选数据记录;
所述条件之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日。
优选地,一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录之前,还包括:
计算每一条候选数据记录的第一参数中账户ID的哈希值,建立所述哈希值与所述Reduce节点的映射关系;其中,所述映射关系用于供所述Reduce节点根据所述映射关系读取对应的候选数据记录。
优选地,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是单日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,将第二输出参数中状态开始日最晚的候选数据记录作为最终的查询结果进行输出。
如查询日期是连续多日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,如第一输出参数相同的候选数据记录数目为一条,则直接输出该条候选数据记录,如第一输出参数相同的候选数据记录数目多于一条,则选出一条闭链数据进行输出;其中,所述候选数据记录的第一输出参数还包括状态开始日。
如图2所示,本发明实施例提供了一种数据的并行处理系统,包括:
Map处理模块,包括一个或多个Map节点;各Map节点用于读取账户日志数据的分片数据,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;其中,所述候选数据记录的第一输出参数至少包括账户ID,所述第二输出参数设定为账户状态信息,所述账户状态信息至少包括:状态开始日、状态结束日和状态值;
Reduce处理模块,包括一个或多个Reduce节点;各Reduce节点用于读取所述Map节点处理完毕的不同候选数据记录,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录;其中,第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取。
该系统还可以包括下述特点:
优选地,Map处理模块还包括路由模块,用于在一个或多个Map节点读取账户日志数据的分片数据之前,将全量日志数据和截止到查询日期终止日当天的增量日志数据确定为账户日志数据的读取范围;将属于该读取范围内的账户日志数据分片,建立每一个分片与各Map节点的映射关系;其中,所述映射关系用于供所述Map节点根据所述映射关系读取对应的分片数据。
优选地,所述Map节点用于从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:
如查询日期是单日,则从读取的分片数据中选出状态开始日小于或等于所述查询日期且状态结束日大于所述查询日期的数据作为候选数据记录。
如查询日期是连续多日,则从读取的分片数据中选出满足下述条件中任意一个条件的数据作为候选数据记录;所述条件之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日。
优选地,所述Reduce节点用于根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是单日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,将第二输出参数中状态开始日最晚的候选数据记录作为最终的查询结果进行输出。
如查询日期是连续多日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,根据第二输出参数中的状态开始日对所述候选数据记录进行分组,如所述候选数据记录分组中只包含一条候选数据记录,则直接输出该候选数据记录,如所述候选数据记录分组中包含多条候选数据记录,则选出一条闭链数据进行输出;其中,所述候选数据记录的第一输出参数还包括状态开始日。
优选地,所述Reduce处理模块还包括路由模块;
所述路由模块,用于在一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录之前,计算每一条候选数据记录的第一参数中账户ID的哈希值,建立所述哈希值与所述Reduce节点的映射关系;其中,所述映射关系用于供所述Reduce节点根据所述映射关系读取对应的候选数据记录。
应用示例
表1所示为多个账户的原始历史状态日志,包括2012年的全量数据以及2013年1月1日和2日的增量数据。
表1
其中,对于每一条数据记录,状态结束日期为预设最大日期“9999/12/31”的是开链数据,状态结束日期不是预设最大日期“9999/12/31”的是闭链数据。
上述查询处理可以针对查询日期的特点分为两种:一种是针对单日的查询处理,另一种是针对一个时间段(连续多日)的查询处理。
(一)针对单日的查询处理
这种情况输入的查询日期为一个查询日(query time),也即,查询日期起始日和终止日是同一天,查询任务是查询该日所有账户的状态,查询的处理过程如下:
只读取全量文件以及截至到查询日当天的增量文件,以控制待处理数据规模;一个或多个Map节点对所有的数据进行过滤,选择符合如下条件(条件一)的数据,输出该数据的<账户id,状态〉;
其中,条件一为:状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日,条件一可以表示为下式:
状态起始日(begin date)<=查询日(query time)<状态结束日(end date);
上述MapReduce算法的执行过程如附图3所示:将输入的大规模日志文件分成若干分片交给Map节点并行处理,Map阶段通过过滤减少了进一步处理的数据,处理完成后根据账户ID的哈希(Hash)值(将账户ID针对Reduce节点数量取模获得账户ID的哈希值)分组并路由给多个Reduce节点并行处理,提高了处理的可扩展性。
表2所示为查询2013年1月2日各账户历史状态的候选数据记录。
表2
表3所示为查询2013年1月2日各账户历史状态的最终结果。
表3
Reduce阶段选出同一个账户id中状态起始日(begin date)最大的数据输出。也即,Reduce逻辑是:对于某一个账户id,若候选数据记录只有一条,则输出唯一一条数据记录;若候选数据记录有多条,则输出状态起始时间最晚的一条。
(二)针对连续多日的查询处理
这种情况输入的查询日期为一个起始日(start time)和一个终止日(overtime),查询任务是查询起始日到终止日所有账户的状态,查询的处理过程如下:
读取全量文件以及截至到查询日期终止日当天的增量文件;一个或多个Map节点对所有的数据进行过滤,选择符合如下条件中任意一个条件(条件二)的数据,输出该数据的<账户id,状态〉;
其中,所述条件二之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日;
在上述算法中,Map阶段采用区间覆盖的设计方式,如图4所示,条件二的设置能够有效过滤出符合条件的数据,保证历史状态完整性;条件二包括以下三种情况:
(1)状态开始日beginDate<=查询开始日startTime<状态结束日endDate;
(2)查询开始日startTime<状态开始日beginDate且查询终止日overTime>状态结束日endDate;
(3)状态开始日beginDate<=查询终止日overTime<=状态结束日endDate;
如图3所示,将输入的大规模日志文件分成若干分片交给Map节点并行处理,Map阶段通过过滤减少了进一步处理的数据,处理完成后根据账户ID的哈希(Hash)值(将账户ID针对Reduce节点数量取模获得账户ID的哈希值)分组并路由给多个Reduce节点并行处理,提高了处理的可扩展性。
表4所示为查询2012年9月1日到2013年1月2日各账户历史状态的候选数据记录。
表5所示为查询2012年9月1日到2013年1月2日各账户历史状态的最终结果。
Reduce阶段的逻辑是:对于任一账户id,如状态起始日相同的候选数据记录数目为一条,则直接输出该条候选数据记录,如状态起始日相同的候选数据记录数目多于一条,则选出一条闭链数据进行输出
上述数据处理方式降低了reduce处理的复杂度,按照Map阶段输出的每条数据的key(第一输出参数)的部分(针对连续多日的查询)或全部(针对单日的查询)进行路由,能够在多个reduce节点之间均衡负载,按照key对数据进行排序,能够使数据自然有序,最后对key相同的数据进行合并,整个过程通过路由、排序、合并,能够提高处理数据的效率,保障数据处理的可扩展性。
上述实施例提供的一种数据的并行处理方法和系统,基于MapReduce处理架构,Map阶段通过各Map节点并行读取数据并提取特征值作为参数对(第一输出参数和第二输出参数)进行输出,Reduce阶段通过各Reduce节点并行读取Map阶段的处理结果,利用数据的输出参数进行路由、排序、合并处理,能够快速处理大规模日志数据,保障数据处理的可扩展性。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (12)
1.一种数据的并行处理方法,该方法包括:
一个或多个Map节点读取账户日志数据的分片数据,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;其中,所述候选数据记录的第一输出参数至少包括账户ID,所述第二输出参数设定为账户状态信息,所述账户状态信息至少包括:状态开始日、状态结束日和状态值;
一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录;其中,第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取;
其中,一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录之前,还包括:
计算每一条候选数据记录的第一参数中账户ID的哈希值,建立所述哈希值与所述Reduce节点的映射关系;其中,所述映射关系用于供所述Reduce节点根据所述映射关系读取对应的候选数据记录。
2.如权利要求1所述的方法,其特征在于:
在一个或多个Map节点读取账户日志数据的分片数据之前,还包括:
将全量日志数据和截止到查询日期终止日当天的增量日志数据确定为账户日志数据的读取范围;
将属于该读取范围内的账户日志数据分片,建立每一个分片与各Map节点的映射关系;其中,所述每一个分片与各Map节点的映射关系用于供所述Map节点根据所述每一个分片与各Map节点的映射关系读取对应的分片数据。
3.如权利要求2所述的方法,其特征在于:
从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:
如查询日期是单日,则从读取的分片数据中选出状态开始日小于或等于所述查询日期且状态结束日大于所述查询日期的数据作为候选数据记录。
4.如权利要求3所述的方法,其特征在于:
根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是单日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,将第二输出参数中状态开始日最晚的候选数据记录作为最终的查询结果进行输出。
5.如权利要求2所述的方法,其特征在于:
从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:
如查询日期是连续多日,则从读取的分片数据中选出满足下述条件中任意一个条件的数据作为候选数据记录;
所述条件之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日。
6.如权利要求5所述的方法,其特征在于:
根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是连续多日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,如第一输出参数相同的候选数据记录数目为一条,则直接输出该条候选数据记录,如第一输出参数相同的候选数据记录数目多于一条,则选出一条闭链数据进行输出;
其中,所述候选数据记录的第一输出参数还包括状态开始日。
7.一种数据的并行处理系统,包括:
Map处理模块,包括一个或多个Map节点;各Map节点用于读取账户日志数据的分片数据,从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,生成所选出的候选数据记录的第一输出参数和第二输出参数;其中,所述候选数据记录的第一输出参数至少包括账户ID,所述第二输出参数设定为账户状态信息,所述账户状态信息至少包括:状态开始日、状态结束日和状态值;
Reduce处理模块,包括一个或多个Reduce节点;各Reduce节点用于读取所述Map节点处理完毕的不同候选数据记录,根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录;其中,第一输出参数中账户ID相同的候选数据记录由同一个Reduce节点读取;
其中,所述Reduce处理模块还包括路由模块;
所述路由模块,用于在一个或多个Reduce节点读取所述Map节点处理完毕的不同候选数据记录之前,计算每一条候选数据记录的第一参数中账户ID的哈希值,建立所述哈希值与所述Reduce节点的映射关系;其中,所述映射关系用于供所述Reduce节点根据所述映射关系读取对应的候选数据记录。
8.如权利要求7所述的系统,其特征在于:
Map处理模块还包括路由模块;
所述路由模块,用于在一个或多个Map节点读取账户日志数据的分片数据之前,将全量日志数据和截止到查询日期终止日当天的增量日志数据确定为账户日志数据的读取范围;将属于该读取范围内的账户日志数据分片,建立每一个分片与各Map节点的映射关系;其中,所述每一个分片与各Map节点的映射关系用于供所述Map节点根据所述每一个分片与各Map节点的映射关系读取对应的分片数据。
9.如权利要求8所述的系统,其特征在于:
所述Map节点用于从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:如查询日期是单日,则从读取的分片数据中选出状态开始日小于或等于所述查询日期且状态结束日大于所述查询日期的数据作为候选数据记录。
10.如权利要求9所述的系统,其特征在于:
所述Reduce节点用于根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:如查询日期是单日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,将第二输出参数中状态开始日最晚的候选数据记录作为最终的查询结果进行输出。
11.如权利要求8所述的系统,其特征在于:
所述Map节点用于从读取的分片数据中选出状态持续时间满足查询日期要求的候选数据记录,包括:如查询日期是连续多日,则从读取的分片数据中选出满足下述条件中任意一个条件的数据作为候选数据记录;
所述条件之一为:数据的状态开始日小于或等于所述查询日期起始日且状态结束日大于所述查询日期起始日、数据的状态起始日小于或等于所述查询日期终止日且状态结束日大于或等于所述查询日期终止日、或数据的状态起始日大于所述查询日期起始日且状态结束日小于所述查询日期终止日。
12.如权利要求11所述的系统,其特征在于:
所述Reduce节点用于根据所述候选数据记录的第一输出参数和第二输出参数分别生成各账户在所述查询日期范围内的完整历史状态记录,包括:
如查询日期是连续多日,则根据所述候选数据记录的第一输出参数遍历同一个账户的候选数据记录,如第一输出参数相同的候选数据记录数目为一条,则直接输出该条候选数据记录,如第一输出参数相同的候选数据记录数目多于一条,则选出一条闭链数据进行输出;
其中,所述候选数据记录的第一输出参数还包括状态开始日。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410307198.8A CN104036039B (zh) | 2014-06-30 | 2014-06-30 | 一种数据的并行处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410307198.8A CN104036039B (zh) | 2014-06-30 | 2014-06-30 | 一种数据的并行处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104036039A CN104036039A (zh) | 2014-09-10 |
CN104036039B true CN104036039B (zh) | 2017-09-29 |
Family
ID=51466809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410307198.8A Active CN104036039B (zh) | 2014-06-30 | 2014-06-30 | 一种数据的并行处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104036039B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281684B (zh) * | 2014-09-30 | 2017-08-25 | 东软集团股份有限公司 | 海量日志存储和查询方法及系统 |
CN105740063A (zh) * | 2014-12-08 | 2016-07-06 | 杭州华为数字技术有限公司 | 一种数据处理方法及装置 |
CN109408330A (zh) * | 2018-10-15 | 2019-03-01 | 东软集团股份有限公司 | 日志分析方法、装置、终端设备及可读存储介质 |
CN111984681B (zh) * | 2020-08-20 | 2023-07-25 | 中国银行股份有限公司 | 贷后征信查询方法及装置 |
CN114969083A (zh) * | 2022-06-24 | 2022-08-30 | 在线途游(北京)科技有限公司 | 一种实时数据分析方法及系统 |
CN116541006B (zh) * | 2023-06-28 | 2024-01-26 | 壹仟零壹艺网络科技(北京)有限公司 | 一种计算机人机交互界面的图形处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799808A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 一种数据处理方法及其系统 |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
WO2011134875A1 (en) * | 2010-04-30 | 2011-11-03 | International Business Machines Corporation | Data center operation |
CN102467570A (zh) * | 2010-11-17 | 2012-05-23 | 日电(中国)有限公司 | 用于分布式数据仓库的连接查询系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100162230A1 (en) * | 2008-12-24 | 2010-06-24 | Yahoo! Inc. | Distributed computing system for large-scale data handling |
-
2014
- 2014-06-30 CN CN201410307198.8A patent/CN104036039B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799808A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 一种数据处理方法及其系统 |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
WO2011134875A1 (en) * | 2010-04-30 | 2011-11-03 | International Business Machines Corporation | Data center operation |
CN102467570A (zh) * | 2010-11-17 | 2012-05-23 | 日电(中国)有限公司 | 用于分布式数据仓库的连接查询系统和方法 |
Non-Patent Citations (2)
Title |
---|
Hadoop体系结构研究及在医疗保险结算系统中的应用;李茂镇;《中国优秀硕士学位论文全文数据库信息科技辑》;20130315;第3.2.2节第33页 * |
基于OGSA的网格记账系统的研究与实现;阿都建华;《中国优秀硕士学位论文全文数据库信息科技辑》;20061215;第42页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104036039A (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104036039B (zh) | 一种数据的并行处理方法和系统 | |
US11240035B2 (en) | Systems and methods for extending the utility of blockchains through use of related child blockchains | |
Kipf et al. | RadixSpline: a single-pass learned index | |
Jifa et al. | Data, DIKW, big data and data science | |
CN103678519B (zh) | 一种支持Hive DML增强的混合存储系统及其方法 | |
CN105393249B (zh) | 针对查询优化的范围分区统计数据的增量式维护 | |
CN110471795A (zh) | 区块链状态数据恢复方法及装置、电子设备 | |
CN107391502A (zh) | 时间间隔的数据查询方法、装置及索引构建方法、装置 | |
CN104504008B (zh) | 一种基于嵌套的SQL到HBase的数据迁移算法 | |
WO2021047541A1 (zh) | 一种区块链内获取交易依赖关系的方法及装置 | |
CN109783441A (zh) | 基于Bloom Filter的海量数据查询方法 | |
CN106293541A (zh) | 一种存储系统的日志管理方法和系统 | |
CN107870949A (zh) | 数据分析作业依赖关系生成方法和系统 | |
CN106815268A (zh) | 海量非结构化电子文件的结构化处理方法及系统 | |
CN104050291B (zh) | 一种账户余额数据的并行处理方法和系统 | |
CN107784027A (zh) | 一种裁判文书检索关键词的提示方法及装置 | |
CN103365923A (zh) | 用于评估数据库的分区方案的方法和装置 | |
CN103761298B (zh) | 一种基于分布式架构的实体匹配方法 | |
Liu | [Retracted] Design of Enterprise Economic Information Management System Based on Big Data Integration Algorithm | |
US10606835B2 (en) | Managing data obsolescence in relational databases | |
CN108121807A (zh) | Hadoop环境下多维索引结构OBF-Index的实现方法 | |
Baek et al. | The ten thousand Kims | |
CN109886318A (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN103336829A (zh) | 基于模拟退火算法的查询优化方法 | |
KR20190124195A (ko) | 개량된 k-익명성 모델 이용 데이터 셋 비식별화 방법 및 장치 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180817 Address after: 200436 Room 411, No. three, JIANGCHANG Road, Jingan District, Shanghai, 411 Patentee after: Shanghai wave Cloud Computing Service Co., Ltd. Address before: 100085 floor 1, C 2-1, No. 2, Shang Di Road, Haidian District, Beijing. Patentee before: Electronic information industry Co.,Ltd of the tide (Beijing) |
|
TR01 | Transfer of patent right |