一种数据处理方法和设备与流程

文档序号:12363910阅读:164来源:国知局
本申请实施例涉及通信
技术领域
:,特别涉及一种数据处理方法和设备。
背景技术
::由于数据流需要定期的持久化数据点位(即当前同步进度)便于服务重启后可以基于数据点位进行数据定位,从而使得服务可以从保存的同步进度来启动,而不会必须全部重新开始。现有技术中的数据持久化处理的过程中,dispatcher(发报)模块在接收到数据后,会将数据进行分配,分配到不同的通道设备来进行传输,且当通道设备传输数据时,dispatcher模块将阻塞数据的接收,而不同的通道设备之间是串行的方式来进行数据传输的,这样导致必须所有的通道设备都完成数据传输,dispatcher模块才会完成上一次的数据点位持久化处理,并继续接收数据,使得数据流出现周期性尖峰状态,流量波动比较大,且导致通道设备的效率很低。技术实现要素:针对现有技术中在传输数据时阻塞数据的接收,且数据在通道设备中传输是采用的串行的方式,导致数据流出现周期性尖峰组状态,且使得通道设备的效率低下的缺陷,本申请提出了一种数据处理方法和设备,用以提高效率,且避免数据流出现周期性尖峰状态。本申请提出了一种数据处理方法,应用于包括数据持久化设备和多个通道处理设备的系统中,所述多个通道处理设备之间相互独立,包括:通道处理设备接收数据持久化设备转发的待处理的数据,其中每条数据都设置有时间点位;所述通道处理设备处理所述数据,并记录处理完成的数据的时间点位;当达到预设上报条件时,所述通道处理设备定时向所述数据持久化设备上报所处理的数据的时间点位。可选的,当达到预设上报条件时,所述通道处理设备向所述数据持久化设备上报所处理的数据的时间点位,具体包括:所述通道处理设备设置定时器;当所述定时器超时时,所述通道处理设备获取在当前时间之前的预定时间长度内所处理的数据的时间点位;所述通道处理设备确定获取的时间点位中时间最早的时间点位;所述通道处理设备向所述数据持久化设备上报所述时间最早的时间点位;或所述通道处理设备统计处理的数据;当处理的数据的数据量超过阈值时,所述通道处理设备获取在当前时间之前的预定时间长度内所处理的数据的时间点位;所述通道处理设备确定获取的时间点位中时间最早的时间点位;所述通道处理设备向所述数据持久化设备上报所述时间最早的时间点位。本申请还提出了一种数据处理方法,应用于包括数据持久化设备和多个通道处理设备的系统中,该方法包括:数据持久化设备接收待处理的数据,并将所述数据发送给通道处理设备,其中,每条数据都设置有时间点位;所述数据持久化设备接收所述通道处理设备返回的时间点位;所述数据持久化设备确定返回的时间点位中时间最早的时间点位,并将 时间最早的时间点位持久化到数据库中。可选的,所述数据持久化设备接收待处理的数据,并将所述数据发送给通道处理设备,具体包括:所述数据持久化设备接收待处理的数据,并对所述数据进行hash计算,以确定每条数据所对应的通道处理设备;所述数据持久化设备基于hash计算的结果将所述数据分配到对应的通道处理设备。可选的,所述数据持久化设备确定返回的时间点位中时间最早的时间点位,并将时间最早的时间点位持久化到数据库中,具体包括:所述数据持久化设备确定接收到的时间点位所对应的时间;所述数据持久化设备获取所述时间中最早的时间,并确定所述最早的时间所对应的时间点;所述数据持久化设备将所述最早的时间所对应的时间点位存储到数据库中。本申请还提出了一种通道处理设备,包括:接收模块,用于接收数据持久化设备转发的待处理的数据,其中每条数据都设置有时间点位;处理模块,用于处理所述数据,并记录处理完成的数据的时间点位;上报模块,用于当达到预设上报条件时,向所述数据持久化设备上报所处理的数据的时间点位。可选的,所述上报模块,具体用于:设备设置定时器;当所述定时器超时时,获取在当前时间之前的预定时间长度内所处理的数据的时间点位;确定获取的时间点位中时间最早的时间点位;向所述数据持久化设备上报所述时间最早的时间点位;或统计处理的数据;当处理的数据的数据量超过阈值时,获取在当前时间之前的预定时间长度内所处理的数据的时间点位;确定获取的时间点位中时间最早的时间点位;向所述数据持久化设备上报所述时间最早的时间点位。。本申请还提出了一种数据持久化设备,包括:转发模块,用于接收待处理的数据,并将所述数据发送给通道处理设备,其中,每条数据都设置有时间点位;接收模块,用于接收所述通道处理设备返回的时间点位;持久化模块,用于确定返回的时间点位中时间最早的时间点位,并将时间最早的时间点位持久化到数据库中。可选的,所述转发模块,具体用于:接收待处理的数据,并对所述数据进行hash计算,以确定每条数据所对应的通道处理设备;基于hash计算的结果将所述数据分配到对应的通道处理设备。可选的,所述持久化模块,具体用于:确定接收到的时间点位所对应的时间;获取所述时间中最早的时间,并确定所述最早的时间所对应的时间点;将所述最早的时间所对应的时间点位存储到数据库中。与现有技术相比,本申请中通过设置通道处理设备之间并行处理数据,从而保证了数据处理的效率,另外设置通道处理设备独立上报自身处理完成的数据的时间点位,以便通道处理设备在进行数据处理时,还可以异步并行 上报时间点位,以此在进行时间点位的上报时,可以保证数据的处理不被中断,且避免数据流出现周期性尖峰状态。附图说明图1为本申请实施例提出的一种数据处理方法的流程示意图;图2为本申请实施例提出的一种数据处理方法的流程示意图;图3为本申请实施例提出的一种具体场景下的数据处理的示意图;图4为本申请实施例提出的一种通道处理设备的结构示意图;图5为本申请实施例提出的一种数据持久化设备的结构示意图。具体实施方式如
背景技术
:,针对现有技术中的缺陷,本申请中提出了一种数据处理方法,应用于包括数据持久化设备和多个通道处理设备的系统中,如图1所示,包括以下步骤:步骤101、通道处理设备接收数据持久化设备转发的待处理的数据,其中每条数据都设置有时间点位。由于是需要对处理完成的数据进行持久化处理的,因此首先就为每条数据设置时间点位,用于标识该数据,其中时间点位可以是数据记录在数据库中的时间,每个数据都有唯一的一个时间,也即时间点位是唯一的。例如为数据1设置的时间点位为2013.03.21.06.23(即表示2013年3月21日6点23分),当然也可以根据需要进行继续精确,例如精确到秒,甚至毫秒,微秒等除此以外,时间点位还可以是其他的形式,并不限于上述一种,只要能唯一标识数据,且能标识数据的顺序即可。而时间点位可以存储在每条数据的属性字段中,以便随着数据的传递而一并传递。步骤102、通道处理设备处理数据,并记录处理完成的数据的时间点位。通道处理设备接收到数据之后,就处理接收的数据,例如接收到数据1, 处理该数据1,当处理完数据1时,记录该数据1的时间点位,与此同时,继续接收其他的数据,例如数据2,和处理数据2,以及记录处理完成的数据2的时间点位,至于数据3等等其他数据,与此相同,在此不再进行赘叙。步骤103、当达到预设上报条件时,通道处理设备向数据持久化设备上报所处理的数据的时间点位。具体的,上报时间点位的过程,具体包括:通道处理设备设置定时器;当定时器超时时,通道处理设备获取在当前时间之前的预定时间长度内所处理的数据的时间点位;通道处理设备确定获取的时间点位中时间最早的时间点位;通道处理设备向数据持久化设备上报时间最早的时间点位;或通道处理设备统计处理的数据;当处理的数据的数据量超过阈值时,通道处理设备获取在当前时间之前的预定时间长度内所处理的数据的时间点位;通道处理设备确定获取的时间点位中时间最早的时间点位;通道处理设备向数据持久化设备上报时间最早的时间点位。除了基于时间,和数据量以外,还可以基于需要设置其他的上报条件,例如当处理某一数据的时间跨某一预设时间时,进行上报,具体的可以基于需要为每个通道处理设备进行独立设置预设的上报条件,以此当满足上报条件时,就执行上报过程,而每个通道处理设备都是相互独立的,上报的过程也都是独立的,并不会受到其他通道处理设备的影响。具体的,由于进行数据持久化处理时,是将处理的数据中的时间最早的时间点位持久化到数据库中,也即将时间最早的间点位存储在数据库中,因此可以在上报时就进行筛选,每个通道处理设备在进行上报时,将自身处理的数据中时间最早的时间点位进行上报,例如有通道处理设备1、2、3,针对每一个通道处理设备,以通道处理设备1为例,通道设备1每隔一段时间,例如10分钟,确定在当前时间之前的预定时间长度,例如10分钟长度内所 处理的数据,具体的例如获取在时间为2014年8月1日23时20分到30分所处理的数据,其中假设2014年8月1日23时20分处理了数据3,由于数据3的时间点位是2014.08.01.23.20,时间上是这段时间内最早的,因此将该时间点位上报给数据持久化设备,从而减少数据持久化设备接收的数据量,也便于后续进行数据持久化处理。本申请实施例还公开了一种数据处理方法,应用于包括数据持久化设备和多个通道处理设备的系统中,如图2所示,该方法包括:步骤201、数据持久化设备接收待处理的数据,并将数据发送给通道处理设备,其中,每条数据都设置有时间点位。具体的数据持久化设备接收待处理的数据,并将数据发送给通道处理设备,具体包括:数据持久化设备接收待处理的数据,并对数据进行hash计算,以确定每条数据所对应的通道处理设备;数据持久化设备基于hash计算的结果将数据分配到对应的通道处理设备。具体的,例如数据持久化设备接收到待处理的数据1后,对数据1进行hash计算,确定收到的数据1被hash应该被通道处理设备1处理,在此情况下,就可以将数据1发送给通道处理设备1进行处理,其他的数据与此类似,例如确定待处理的数据2应该是由通道处理设备2处理,则将数据2发送给通道处理设备2,在此不再进行赘叙,当然除了进行hash计算,以确定数据处理的通道处理设备以外,还可以有别的方式来确定,例如基于通道处理设备的性能,负载以及待处理的数据所需要的负载等等来考虑,并不限于hash计算。步骤202、数据持久化设备接收通道处理设备返回的时间点位。与前述实施例的步骤103对应的,数据持久化设备在发送了数据给通道 数量设备之后,会接收到通道设备返回的时间点位,其中返回的时间点位是标识已经出来完成的数据,或者已经处理完成的时间最早的数据。步骤203、数据持久化设备确定返回的时间点位中时间最早的时间点位,并将时间最早的时间点位持久化到数据库中。具体的,数据持久化设备确定返回的时间点位中时间最早的时间点位,并将时间最早的时间点位持久化到数据库中,具体包括:数据持久化设备确定接收到的时间点位所对应的时间;数据持久化设备获取时间中最早的时间,并确定最早的时间所对应的时间点;数据持久化设备将最早的时间所对应的时间点位存储到数据库中。具体的,由于通道处理设备有多个,且每个通道处理设备还可能发送多个时间点位,因此数据持久化设备接收到的时间点位会有多个,例如接收到的时间点位有时间点位1(对应时间2013年2月8日13时23分),时间点位2(对应时间2013年2月8日13时24分),时间点位3(对应时间2013年2月8日13时35分),时间点位4(对应时间2013年2月8日13时25分),时间点位5(对应时间2013年2月8日13时26分),而四个时间点位所对应的时间按照从早到晚的次序进行排序,依次时间点位1,时间点位2,时间点位4,时间点位5,时间点位3,可见时间最早的时间点位为时间点位1,因此此次将数据点位1存储在数据库中,同时也准备着接收下次的时间点位,并对下次的时间点位进行与此类似的持续化处理,以此当服务中断后,可以从数据库中提取最新持久化的时间点位,并基于该时间点位找到对应的数据继续服务,而不会需要重新开始。为了对本申请进行进一步的说明,本申请实施例还公开了一种具体场景下的数据处理方法,在该具体的应用场景中,如图3所示,数据持久化设备包括dispatcher(发报)设备和多个table表(分别为table表1和table表2), 而每个table表会对应有多个通道处理设备,该方法包括以下步骤:步骤1、dispatcher设备接收需要处理的数据,并将接收到的数据分给table表1和table表2,其中每个数据都设置有时间点位。步骤2、table表对数据进行hash,以确定数据的通道处理设备,并将数据发送给确定的通道处理设备。具体的,也就是每个table表将数据分配给对应的通道处理设备,其中如图3所示,table1表对应有4个通道处理设备(分别命名为通道处理设备0、通道处理设备1、通道处理设备2、通道处理设备3),而table2表对应有2个通道处理设备(分别命名为通道处理设备4、通道处理设备5),例如将数据1分配给通道处理设备3,将数据2分配给通道处理设备2,以便通道处理设备接收到数据后进行处理,各个通道处理设备之间的处理是互不干扰的。步骤3、通道处理设备处理完数据后,将数据的时间点位上报给对应的table表。可选的,可以将每个处理完的数据的时间点位上报给对应的table表,也可以选择其中时间最早的一个时间点位上报给对应的able表,与处理的过程类似,各个通道处理设备的上报过程也是各自互干扰和影响的,可以按照预先为每个通道处理设备设置的规则进行上报,其中以通道处理设备1来进行说明,可以设置通道处理设备1的预设上报规则为定时上报,例如每隔10分钟上报一次,当然也可以也设置别的规则,在此不再进行赘叙。步骤4、table表确定接收到的时间点位中时间最早的,并将时间最早的时间点位上报给dispatcher设备。步骤5、dispatcher设备确定table表上报的时间点位中时间最早的,并将时间最早的时间点位存储在数据库中。以此通过上述方案,使得数据的处理和时间点位的上报异步并行,在进行时间点位的上报时,可以保证数据的处理不被中断,相比较于现有技术中 在传输数据时阻塞数据的接收,且数据在通道设备中传输是采用的串行的方式,避免了现有技术中会存在的数据流出现周期性尖峰状态,且同时提高了通道处理设备的效率。本申请实施例还公开了一种通道处理设备,如图4所示,包括:接收模块401,用于接收数据持久化设备转发的待处理的数据,其中每条数据都设置有时间点位;处理模块402,用于处理所述数据,并记录处理完成的数据的时间点位;上报模块403,用于当达到预设上报条件时,向所述数据持久化设备上报所处理的数据的时间点位。具体的,所述上报模块403,具体用于:设备设置定时器;当所述定时器超时时,获取在当前时间之前的预定时间长度内所处理的数据的时间点位;确定获取的时间点位中时间最早的时间点位;向所述数据持久化设备上报所述时间最早的时间点位;或统计处理的数据;当处理的数据的数据量超过阈值时,获取在当前时间之前的预定时间长度内所处理的数据的时间点位;确定获取的时间点位中时间最早的时间点位;向所述数据持久化设备上报所述时间最早的时间点位。本申请实施例还公开了一种数据持久化设备,如图5所示,包括:转发模块501,用于接收待处理的数据,并将所述数据发送给通道处理设备,其中,每条数据都设置有时间点位;接收模块502,用于接收所述通道处理设备返回的时间点位;持久化模块503,用于确定返回的时间点位中时间最早的时间点位,并将时间最早的时间点位持久化到数据库中。具体的,所述转发模块501,具体用于:接收待处理的数据,并对所述数据进行hash计算,以确定每条数据所对应的通道处理设备;基于hash计算的结果将所述数据分配到对应的通道处理设备。所述持久化模块503,具体用于:确定接收到的时间点位所对应的时间;获取所述时间中最早的时间,并确定所述最早的时间所对应的时间点;将所述最早的时间所对应的时间点位存储到数据库中.与现有技术相比,本申请中通过设置通道处理设备之间并行处理数据,从而保证了数据处理的效率,另外设置通道处理设备独立上报自身处理完成的数据的时间点位,以便通道处理设备在进行数据处理时,还可以异步并行上报时间点位,以此在进行时间点位的上报时,可以保证数据的处理不被中断,且避免数据流出现周期性尖峰状态。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景 描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1