数据处理方法和装置的制造方法

文档序号:8472962阅读:172来源:国知局
数据处理方法和装置的制造方法
【技术领域】
[0001] 本申请涉及互联网领域,更具体地涉及一种用于事件流数据的多维度处理中的数 据处理方法和装置。
【背景技术】
[0002] 随着互联网的迅猛发展,网上数据交互越来越普遍,当前已经成为人们生活中的 主要数据交互方式。
[0003] 在网上数据交互的过程中,出于对网上海量的交互数据进行高效实时处理的需 要,一般会利用事件流技术处理海量的交互数据。所谓事件流是指,同一数据源在不同时刻 发生的同类事件构成时间上严格有序的流。即,将同类数据形成多个事件,当多个事件按一 定顺序触发,就形成了事件流。针对事件流数据,可以执行在多个维度上的统计处理。
[0004] 例如,针对网上业务交互过程中实时产生的物流订单事件的事件流数据,可以根 据需要从诸如快递维度、卖家维度、买家维度等多个维度来对其进行统计处理。具体地,在 每个维度上可以针对多个维度标识来分别进行统计。例如,可以统计不同快递在当日内配 送的物流订单量以及不同物流订单状态下的统计量等快递维度上的信息,即不同快递ID (快递标识)下的这些信息。也可以统计不同卖家在当日内产生的物流订单量等卖家维度上 的信息,即不同卖家ID(卖家标识)下的这些信息。也可以统计不同买家在当日内产生的 物流订单量等买家维度上的信息,即不同买家ID(买家标识)下的这些信息。
[0005] 针对实时产生的一个物流订单事件对应的事件流数据,通常需要同时执行上述多 个维度上的处理。该多个维度上的处理因而通常被称为并发处理。当针对该事件流数据的 所有并发处理都完成时,才认为对该事件流数据的处理完成,进而才可以继续针对下一事 件流数据即下一物流订单事件执行类似处理。
[0006] 然而,在一些并发处理中涉及的维度标识数量可能相差悬殊,例如快递通常只有 十几个,而卖家和买家通常是上百万,因而在快递维度处理上的快递标识数量的数量级在 十几个,而卖家或买家维度处理上的卖家或买家标识数量的数量级在百万级。根据现有工 作机制,假设分配给每个并发处理的线程数量为128,则每个订单事件会分别按照卖家标 识% (取模运算)128和快递标识%128的方式被统计处理,也就是,遵循的原则是将同一维 度标识的处理分配到同一线程上处理。因此,由于卖家和买家标识数量在百万级,卖家和买 家维度的统计处理会均匀分配到128个线程上处理,而快递标识数量只有十几个,所以快 递维度的统计处理虽然被分配了 128个线程,但实际使用中只用了十几个线程处理。因此, 快递维度上的处理存在大量的空置线程,资源浪费。
[0007] 尽管可以根据各并发处理的需要来分配不同数量的线程,以使得各维度上的处理 不会出现空闲线程,但作为同一事件流数据的并发处理,由于快递维度上的处理只能在十 几个线程上处理,相对于卖家或买家维度上的处理而言处理时间很长,因此,并发处理的处 理时间相差悬殊,线程数少的处理会拖累整个实时统计处理的效率,从而也给整个实时处 理带来无形的瓶颈。
[0008] 因此,需求一种改进的数据处理方案来克服现有技术中的上述问题。

【发明内容】

[0009] 本申请的目的就在于,提供一种改进的数据处理技术,来解决上述并发处理实际 使用的线程数量不同导致的整个实时处理效率不高的问题。
[0010] 具体而言,根据本申请实施例的一个方面,提供一种数据处理方法,用于事件流数 据的多维度处理,其特征在于,包括:针对所述多维度处理中的各维度处理,分别判断所述 维度处理中的维度标识数量与预定线程数量之差的绝对值是否小于等于预定阈值;当判定 所述维度处理中的维度标识数量与预定线程数量之差的绝对值小于等于预定阈值时,将所 述维度处理中的各维度标识对应的处理都分别分配到所述预定数量的线程中的多个线程 上执行,使得同一维度标识对应的处理在所述多个线程上并行完成。
[0011] 根据本申请实施例的另一个方面,提供一种数据处理装置,用于事件流数据的多 维度处理,其特征在于,包括:判断模块,用于针对所述多维度处理中的各维度处理,分别判 断所述维度处理中的维度标识数量与预定线程数量之差的绝对值是否小于等于预定阈值; 第一处理模块,用于当判定所述维度处理中的维度标识数量与预定线程数量之差的绝对值 小于等于预定阈值时,将所述维度处理中的各维度标识对应的处理都分别分配到所述预定 数量的线程中的多个线程上执行,使得同一维度标识对应的处理在所述多个线程上并行完 成。
[0012] 与现有技术相比,根据本申请的技术方案,针对并发处理中维度标识数量与预定 线程数量接近的那些并发处理,通过根据维度标识进行切分,使得其中同一维度标识的处 理分配到不同的线程上并行执行,并根据维度标识将不同线程上的执行结果合并得到该维 度标识的处理结果。由此充分利用各并发处理线程,加快维度标识数量与预定线程数量接 近的那些并发处理的处理速度,使得事件流数据的各并发处理能够尽可能同时完成,从而 提高整个实时处理的效率,方便用户的使用。
[0013] 进一步而言,根据本申请的技术方案,可以根据事件流数据中的各维度标识在特 定时间段内的处理量,来针对不同维度标识的处理分配不同数量的线程,从而实现自适应 切分处理,由此可以进一步提高各并发处理的处理速度,进而进一步提高整个实时处理的 效率。
【附图说明】
[0014] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申 请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0015] 图1示出了根据本申请一个实施例的数据处理方法的流程图;
[0016] 图2示出了根据本申请一个实施例的将各维度标识对应的处理分别分配到多个 线程上的方法的流程图;
[0017] 图3示出了根据本申请另一实施例的将各维度标识对应的处理分别分配到多个 线程上的方法的流程图;
[0018] 图4示出了根据本申请一个实施例的设置维度标识对应的线程标识集合的方法 的流程图;以及
[0019] 图5示出了根据本申请一个实施例的数据处理装置的结构框图。
【具体实施方式】
[0020] 本申请的主要思想就在于,取代现有技术中同一维度标识的处理分配到同一线程 执行的方案,针对同一事件流数据的多个并发处理中维度标识数与预定线程数相当的那些 并发处理,通过使得同一维度标识的处理分配到多个不同线程上并行执行,从而加快这些 并发处理的处理速度,避免线程空置,使得所有并发处理尽可能同时完成,进而提高事件流 数据的整体实时处理效率,方便用户的使用。
[0021] 在此基础上,本申请的思想还在于,根据事件流数据中各维度标识在特定时间段 内涉及的处理量,实现自适应调整分配给每个维度标识对应处理的线程数量,从而进一步 优化多个并发处理的处理速度,并且进一步提高事件流数据的整体实时处理效率和方便用 户的使用。
[0022] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及 相应的附图对本申请技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一 部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0023] 参照图1,图1示出了根据本申请一个实施例的数据处理方法100的流程图。
[0024] 如图1所示,在步骤SllO处,针对事件流数据的多维度处理中的各维度处理,分别 判断所述维度处理中的维度标识数量与预定线程数量之差的绝对值是否小于等于预定阈 值。
[0025] 具体而言,当需要针对事件流数据执行多维度统计处理(多个并发处理)时,可以 从数据库的日志文件中实时或准实时地获取相应事件流。然后分别判断各个维度处理涉及 的维度标识的数量与分配给该维度处理的预定线程数量是否相当。在本实施例中是通过判 断维度标识数量与预定线程数量之差的绝对值是否小于等于预定阈值的方式来判断的。这 里提及的预定线程数量是指服务器根据自身负载能力而预先分配给每个维度处理的线程 数量。需要指出的是,分配给每个维度处理的线程数量都是相同的。本领域技术人员可以 理解到,这里提及的预定阈值可以根据需要设定。在一种优选实施例中,可以设定预定阈值 为预定线程数量的倍数。更优选地,可以将预定阈值设定为预定线程数量的两倍。
[0026] 在一个具体示例中,例如,在针对实时产生的大量物流订单的流数据执行卖家维 度和快递维度的多个维度上的统计处理时,在卖家维度上的处理涉及的卖家标识数量上 百万,而在快递维度上的处理涉及的快递标识数量只有十几个。假设分配给每个维度处理 的线程数量都为128,并且预定阈值优选为256,则可以判定卖家维度上的处理涉及的维度 标识数量与预定线程数量之差的绝对值远大于预定阈值,而快递维度上的处理涉及的维度 标识数量与预定线程数量之差的绝对值小于预定阈值。
[0027] 接下来,如果在步骤SllO处判定维度处理中维度标识数量与预定线程数量之差 的绝对值小于等于预定阈值,则进入步骤S120。
[0028] 在步骤S120处,将所述维度处理中的各维度标识对应的处理都分别分配到所述 预定数量的线程中的多个线程上执行,使得同一维度标识对应的处理在所述多个线程上并 行完成。
[0029] 具体而言,将维度处理涉及的每个维度标识的处理都分别分配到多个线程上,而 不是像现有技术中那样同一维度标识的处理都只分配到同一个线程上。由此可以加快该 维度处理的处理速度,进而可以
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1