时序数据处理方法、装置、系统、服务器及可读存储介质与流程

文档序号:23426450发布日期:2020-12-25 11:56阅读:128来源:国知局
时序数据处理方法、装置、系统、服务器及可读存储介质与流程

本发明涉及数据处理领域,具体而言,涉及一种时序数据处理方法、装置、系统、服务器及可读存储介质。



背景技术:

随着物联网技术的发展,物联网数据的处理量和处理难度越来越大。当前,物联网领域常用的数据处理方法主要分为以下两类:

第一类:基于hadoop、spark、storm等典型流/批处理框架的大数据集群计算方法,主要适用于海量数据的高速处理,具有高并行、高吞吐量等优点,可支持成千上万台物联网设备的数据处理。但同时,大数据集群处理框架对自身运行所需的资源要求较高。根据规模效应,只有当集群达到一定的规模才能发挥出其性能优势,比如集群框架一般需要至少三台服务器才能搭建。这样的架构部署难度大,实现复杂且成本较高;

第二类:通过编程实现的简单数据处理方法,主要适用于家用或设备规模较小等场景,可支持的设备规模在数百台以内。由于设计基础简单,一般的程序设计很难达到既保证时序性,又保证高性能的数据处理目的,因此通常仅适用于处理非时序敏感数据的场景。

时序敏感是指在数据处理工程中,处理当前时刻监测到的数据必须依赖于上一时刻的数据处理结果,也即上一时刻监测到的数据必须在当前时刻监测到的数据之前处理完成。在现有的多线程模型中,两条数据有可能会被分配给不同的处理线程,因此往往会出现当前时刻监测到的数据会比上一时刻监测到的数据先处理的情况,进而导致完全错误的处理结果。例如,在冷链物流业务中使用温度传感器实时监测货车车厢内的温度,当温度不低于20℃时需要发送预警提示,但当温度连续不低于20℃时只需发送一次预警提示:假设连续5个时刻监测到的温度为17℃、19℃、20℃、19℃、21℃,按照前述业务规则,正常情况下将在第3、第5时刻各触发一次预警提示。然而,当不能确保数据按时间顺序有序处理时,例如第4时刻的数据比第3时刻的数据先处理,则仅在处理第3时刻数据(20℃)时触发一次预警提示,从而导致运输人员延迟发觉车厢温控系统的失灵。

串行化可以确保实现数据的有序处理,但势必无法发挥多核运算的优势,造成较大的资源浪费。此外,现有的专用时序数据库一般也只是侧重于存储时序数据并提供数据查询服务,并不能直接完成前述的逻辑处理。

在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

有鉴于此,本发明提供一种时序数据处理方法、装置、系统、服务器及可读存储介质。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一方面,提供一种时序数据处理方法,包括:接收多个设备发送的多条待处理数据,所述多条待处理数据分别包括所述多个设备采集的时序数据以及所述多个设备的标识码;根据对所述多个设备的分组结果,将所述多条待处理数据分别导入相应的任务队列中进行依序处理,对应获得多条结果数据;以及将所述结果数据依序存储至第一缓存队列中。

根据本发明的一实施方式,所述分组结果根据下述步骤获得:将所述标识码输入预构造的哈希函数,以所述哈希函数的输出结果作为所述标识码对应设备的所述分组结果。

根据本发明的一实施方式,根据对所述多个设备的分组结果,将所述多条待处理数据分别导入相应的任务队列中进行依序处理,对应获得多条结果数据包括:根据所述分组结果,将所述多条待处理数据中的所述时序数据分别导入相应的线程池的所述任务队列中,每个所述线程池包括一个处理线程;以及在每个所述线程池中,通过所述处理线程依次处理导入所述线程池的所述任务队列中的所述时序数据,对应获得所述多条结果数据。

根据本发明的一实施方式,所述方法还包括:根据所述第一缓存队列,生成第二缓存队列,所述第二缓存队列中存储的所述结果数据与所述第一缓存队列当前存储的所述结果数据完全相同;将所述第二缓存队列中的所述结果数据发送至数据库;以及当所述第二缓存队列为空时,删除所述第二缓存队列。

根据本发明的一实施方式,接收经所述依序处理获得的新的所述结果数据,并存储至所述第一缓存队列中。

根据本发明的另一方面,提供一种时序数据处理装置,包括:数据接收模块,用于接收多个设备发送的多条待处理数据,所述多条待处理数据分别包括所述多个设备采集的时序数据以及所述多个设备的标识码;数据处理模块,用于根据对所述多个设备的分组结果,将所述多条待处理数据分别导入相应的任务队列中进行依序处理,对应获得多条结果数据;以及数据缓存模块,用于将所述结果数据依序存储至第一缓存队列中。

根据本发明的一实施方式,所述装置还包括:队列生成模块,用于根据所述第一缓存队列,生成第二缓存队列,所述第二缓存队列中存储的所述结果数据与所述第一缓存队列当前存储的所述结果数据完全相同;数据发送模块,用于将所述第二缓存队列中的所述结果数据发送至数据库;以及队列删除模块,用于当所述第二缓存队列为空时,删除所述第二缓存队列。

根据本发明的再一方面,提供一种服务器,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现上述任一种时序数据处理方法。

根据本发明的再一方面,提供一种时序数据处理系统,包括:多个设备、根据上述的服务器以及数据库;其中,所述服务器从所述多个设备接收多条待处理数据,并将多条结果数据发送至所述数据库。

根据本发明的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现上述任一种时序数据处理方法。

根据本发明实施方式提供的时序数据处理方法,基于设备的分组结果,能够并行地实现大批量数据的高性能时序处理,发挥多核运算的优势。同时,根据本发明实施方式提供的时序数据处理方法,单机即可处理上万个设备的数据处理,避免搭建复杂的计算机群,显著降低了部署成本。

另外,根据一些实施例,本发明提供的时序数据处理方法采用相互独立的数据缓存技术和数据传送技术,能够连续、稳定地实现海量时序结果数据的批量传送和精准存储。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。

图1是根据一示例性实施方式示出的一种时序数据处理方法的流程图。

图2是根据一示例性实施方式示出的另一种时序数据处理方法的流程图。

图3是根据一示例性实施方式示出的再一种时序数据处理方法的流程图。

图4是根据一示例性实施方式示出的一种时序数据处理装置的框图。

图5是根据一示例性实施方式示出的一种服务器的结构示意图。

图6是根据一示例性实施方式示出的一种时序数据处理系统的结构示意图。

图7是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。

图8是根据一示例示出的一种时序数据的流向示意图。

图9是根据一示例示出的一种调度并处理时序数据的示意图。

图10是根据一示例示出的一种存储结果数据的示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

如上所述,第二类数据处理方法可容易地实现时序数据的串行处理,但无法发挥多核运算的优势,严重浪费计算机资源;第一类数据处理方法可以并行处理时序数据,但架构部署难度大,实现复杂且成本高。

因此,本发明提出一种综合了上述两类方法优点的时序数据处理方法。根据本发明实施方式提供的时序数据处理方法,基于设备的分组结果,能够并行地实现大批量数据的高性能时序处理,发挥多核运算的优势。同时,根据本发明实施方式提供的时序数据处理方法,单机即可处理上万个设备的数据处理,避免搭建复杂的计算机群,显著降低了部署成本。

图8是根据一示例示出的一种时序数据的流向示意图。如图8中箭头指向所示,一个终端设备实时采集到的时序数据可以首先被服务器中的数据接收/调度器模块接收,并依配置策略被调拨至服务器中的数据处理器模块中相应的处理单元。数据处理器模块对时序数据进行逻辑处理后,可以将获得的结果数据暂存于服务器中的数据缓存器模块,由服务器中的数据提交器模块从中批量获取结果数据并提交至数据库系统中进行存储。后续通过数据接口,可以对数据库系统中存储的结果数据执行调用、导出、查询、测试、统计等操作。

本发明整体的方案即是根据如图8所示的时序数据流向所提出的。参考图9及图10,可以将时序数据的完整流向划分为前后两部分,以体现本发明整体方案所作出的具体创新:

图9是根据一示例示出的一种调度并处理时序数据的示意图。数据接收/调度器模块提供针对终端设备的配置策略,可对n个设备进行分组,并将来自同一设备在不同时刻采集的时序数据持续、稳定地导入数据处理器模块中的同一线程池;

图10是根据一示例示出的一种存储结果数据的示意图。考虑到数据处理器模块处理时序数据,所获得的结果数据最终要经数据提交器模块提交至数据库系统,作为“中转”的数据缓存器模块可以提供两个数据队列,缓存队列及根据缓存队列生成的临时队列可分别连续、独立地执行结果数据的动态缓存和动态提交。

图1是根据一示例性实施方式示出的一种时序数据处理方法的流程图。如图1所示的时序数据处理方法例如可以应用于物联网数据处理场景中的服务器端,如图8中由数据接收/调度器、数据处理器、数据缓存器及数据提交器组成的服务器。

参考图1,时序数据处理方法10包括:

在步骤s102中,接收多个设备发送的多条待处理数据。

其中,多条待处理数据分别包括多个设备采集的时序数据以及多个设备的标识码。

在物联网数据处理场景中,例如物理传感器等物联网设备可采集对应物理量指标随着时间不断变化的时序数据等待处理。服务器端接收到各物联网设备发送的待处理数据,待处理数据的结构体中除了物联网设备采集到的时序数据外,还包括对应物联网设备固定不变的唯一标识码。物联网设备与服务器端间的信息交互可以通过例如mqtt(messagequeuingtelemetrytransport,消息队列遥测传输)、http(hypertexttransferprotocol,超文本传输协议)、tcp(transmissioncontrolprotocol,传输控制协议)等协议传输来实现。

在步骤s104中,根据对多个设备的分组结果,将多条待处理数据分别导入相应的任务队列中进行依序处理,对应获得多条结果数据。

在一些实施例中,分组结果根据下述步骤获得:将标识码输入预构造的哈希函数,以哈希函数的输出结果作为标识码对应设备的分组结果。

承上述,假设服务器端可处理m个物联网设备采集的时序数据,各设备的唯一标识码分别为s1、s2、s3、……、sm。预先构造一个均衡且幂等的哈希函数addr=h(key):

均衡的哈希函数可满足随机采样得到的关键字key或者按照key空间的分布特性随机产生的关键字key进入n个哈希地址中任意一个的概率均为1/n;幂等的哈希函数可满足使用相同参数key重复执行函数时获得相同的结果,函数的重复执行不会使系统状态产生变化。恒等函数和常数函数即为两种最简单的幂等函数。

预构造哈希函数addr=h(key)可将关键字key和它的存储位置addr之间建立一个确定的对应关系,使每个关键字和一个唯一的存储位置相对应。因此,均衡且幂等的哈希函数addr=h(key)可实现将一定分布的流标识映射到不同的哈希地址中,例如将上述m个物联网设备的标识码分为n组映射到n个哈希地址中,进一步保证了在后续过程中来自同一个物联网设备的时序数据每次都能进入到服务器端的同一个线程池中进行处理,每个线程池对应匹配的物联网设备数均约等于m/n。

在本发明的实施方式中,多个设备的分组结果可以是基于哈希函数经一次预先分配而确定的,不必在每一次接收和处理时序数据时重复执行哈希函数;也可以是在每一次接收和处理时序数据时重复执行哈希函数而确定的:由于预构造的哈希函数具备幂等函数的性质,因此将其重复执行可以确保每次的分组结果保持不变;还可以根据实际需求,随时调整哈希函数的构造以改变任意一次或多次的设备分组结果,本发明并不以此为限。

分组数n的取值例如可以参考服务器端的cpu核心数量取经验值:假设m=6,n=3,一种最简单的分组情况为:h(s1)=0、h(s2)=1、h(s3)=2、h(s4)=0、h(s5)=1、h(s6)=2,即将6个物联网设备均匀地分为3组,其中物联网设备s1和s4对应于第一个哈希地址,来自s1和s4的时序数据每次都进入到服务器端的第一个线程池中进行处理;物联网设备s2和s5对应于第二个哈希地址,来自s2和s5的时序数据每次都进入到服务器端的第二个线程池中进行处理;物联网设备s3和s6对应于第三个哈希地址,来自s3和s6的时序数据每次都进入到服务器端的第三个线程池中进行处理。以上分组仅作示例性说明,本发明不以其中的设备数、分组数及分组结果为限。

在步骤s106中,将结果数据依序存储至第一缓存队列中。

根据本发明实施方式提供的时序数据处理方法,基于设备的分组结果,能够并行地实现大批量数据的高性能时序处理,发挥多核运算的优势。同时,根据本发明实施方式提供的时序数据处理方法,单机即可处理上万个设备的数据处理,避免搭建复杂的计算机群,显著降低了部署成本。

应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。

图2是根据一示例性实施方式示出的另一种时序数据处理方法的流程图。与图1所示方法10的不同之处在于,图2所示的方法20进一步提供了根据设备分组结果,依序处理待处理数据以对应获得结果数据的方法,即上述方法10中步骤s104的一实施例。同样地,如图2所示的时序数据处理方法例如也可以应用于物联网数据处理场景中的服务器端。

参考图2,方法10中的步骤s104还包括:

在步骤s202中,根据分组结果,将多条待处理数据中的时序数据分别导入相应的线程池的任务队列中。

其中,每个线程池包括一个处理线程。

在步骤s204中,在每个线程池中,通过处理线程依次处理导入线程池的任务队列中的时序数据,对应获得多条结果数据。

在一些实施例中,服务器端中的每个线程池仅保留一个唯一的处理线程,当一个线程池需接收多个物联网设备发送的多条待处理数据时,唯一的处理线程可依不同物联网设备采集/发送时序数据的先后顺序进行排队处理,保证了线程池处理来自多个物联网设备的时序数据时的有序性。

图3是根据一示例性实施方式示出的再一种时序数据处理方法的流程图。与图1所示方法10的不同之处在于,图3所示的方法30进一步提供了将结果数据存储至数据库的方法。同样地,如图3所示的时序数据处理方法例如也可以应用于物联网数据处理场景中的服务器端。

参考图3,时序数据处理方法30包括:

在步骤s302中,根据第一缓存队列,生成第二缓存队列。

其中,第二缓存队列中存储的结果数据与第一缓存队列当前存储的结果数据完全相同。

仍以上述物联网数据处理场景为例进行说明:在对应获得多条结果数据后,服务器端将结果数据依序存储至第一缓存队列中,例如存储至一个名为queue-result的缓存队列中。在将结果数据依序存入queue-result的同时,时序数据的发送、接收和处理可动态、持续地进行。

在将结果数据存储至数据库的过程中,服务器端源源不断地对多个物联网设备于不同时刻采集/发送的时序数据进行处理后,将获得的结果数据存储至queue-result;同时,又将queue-result中的结果数据批量传送并存储至数据库,因此极易导致数据紊乱甚至丢失。在本发明的实施方式中,服务器端可根据第一缓存队列生成第二缓存队列,使服务器端中同时进行处理的是两个不同的缓存队列,缓存结果数据与传送结果数据的过程相互独立、互不干扰,避免了数据的紊乱和丢失。

在一些实施例中,根据第一缓存队列生成第二缓存队列可以通过实时复制第一缓存队列,或者通过对第一缓存队列进行改名实现。通过对第一缓存队列进行改名的方式,例如将queue-result改名为queue-temp,即仅修改指向结果数据实时形成的数组的首地址的指针,保证了第二缓存队列queue-temp中存储的结果数据与第一缓存队列queue-result当前存储的结果数据的结构及内容均完全相同。

在步骤s304中,将第二缓存队列中的结果数据发送至数据库。

存储有海量结果数据的数据库例如可以提供物联网数据查询、统计及报表生成等服务。

在步骤s306中,当第二缓存队列为空时,删除第二缓存队列。

在一些实施例中,方法30还包括:接收经依序处理获得的新的结果数据,并存储至第一缓存队列中。

承上述,服务器端将第二缓存队列queue-temp中的结果数据全部传送并存储至数据库后,也即queue-temp变为空时,服务器端随即将queue-temp删除。与此同时,当前第一缓存队列queue-result又已存入了经依序处理获得的新的结果数据。重复上述步骤s302-s306,每一个周期生成一个第二缓存队列,可连续、稳定地实现海量时序结果数据的批量传送和精准存储。

本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

图4是根据一示例性实施方式示出的一种时序数据处理装置的框图。

参考图4,时序数据处理装置40包括:数据接收模块402、数据处理模块404以及数据缓存模块406。

其中,数据接收模块402用于接收多个设备发送的多条待处理数据。

其中多条待处理数据分别包括多个设备采集的时序数据以及多个设备的标识码。

数据处理模块404用于根据对多个设备的分组结果,将多条待处理数据分别导入相应的任务队列中进行依序处理,对应获得多条结果数据。

数据缓存模块406用于将结果数据依序存储至第一缓存队列中。

在一些实施例中,数据处理模块404可进一步包括数据导入单元以及数据处理单元。其中,数据导入单元用于根据分组结果,将多条待处理数据中的时序数据分别导入相应的线程池的任务队列中。其中每个线程池包括一个处理线程;数据处理单元用于在每个线程池中,通过处理线程依次处理导入线程池的任务队列中的时序数据,对应获得多条结果数据。

在一实施例中,一个具有4核cpu、16gb内存以及上述数据接收模块402、数据处理模块404和数据缓存模块406的虚拟机,可处理多达12000个物联网设备以30秒/次的频率发送的时序数据,且处理逻辑包括关联时序判断等复杂逻辑。

在一些实施例中,时序数据处理装置40还可包括:队列生成模块408、数据发送模块410以及队列删除模块412。

其中,队列生成模块408用于根据第一缓存队列,生成第二缓存队列。其中第二缓存队列中存储的结果数据与第一缓存队列当前存储的结果数据完全相同。

数据发送模块410用于将第二缓存队列中的结果数据发送至数据库。

队列删除模块412用于当第二缓存队列为空时,删除第二缓存队列。

在一些实施例中,数据缓存模块406还可用于接收经数据处理模块404依序处理获得的新的结果数据,并存储至第一缓存队列中。

根据本发明实施方式提供的时序数据处理装置,基于设备的分组结果,能够并行地实现大批量数据的高性能时序处理,发挥多核运算的优势。同时,根据本发明实施方式提供的时序数据处理装置,单机即可处理上万个设备的数据处理,避免搭建复杂的计算机群,显著降低了部署成本。

另外,根据一些实施例,本发明提供的时序数据处理装置采用相互独立的数据缓存技术和数据传送技术,能够连续、稳定地实现海量时序结果数据的批量传送和精准存储。

需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

图5是根据一示例性实施方式示出的一种服务器的结构示意图。需要说明的是,图5示出的服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图5所示的服务器例如可以应用于物联网数据处理场景。

如图5所示,服务器100以通用计算机设备的形式表现。服务器100的组件包括:至少一个中央处理单元(cpu)1001,其可以根据存储在只读存储器(rom)1002中的程序代码或者从至少一个存储单元1008加载到随机访问存储器(ram)1003中的程序代码而执行各种适当的动作和处理。

特别地,根据本发明的实施例,所述程序代码可以被中央处理单元1001执行,使得中央处理单元1001执行本说明书上述方法实施例部分中描述的根据本发明各种示例性实施方式的步骤。例如,中央处理单元1001可以执行如图1、2、3中所示的步骤。

在ram1003中,还存储有服务器100操作所需的各种程序和数据。cpu1001、rom1002以及ram1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。

以下部件连接至i/o接口1005:包括键盘、鼠标等的输入单元1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出单元1007;包括硬盘等的存储单元1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信单元1009。通信单元1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储单元1008。

图6是根据一示例性实施方式示出的一种时序数据处理系统的结构示意图。如图6所示的时序数据处理系统例如可以应用于物联网数据处理场景。

参考图6,时序数据处理系统60包括:多个设备602、上述服务器100以及数据库604。

其中,服务器100用于从多个设备602接收多条待处理数据,并将多条结果数据发送至数据库604。

图7是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。

参考图7所示,描述了根据本发明的实施方式的设置为实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如图1、2、3中所示的功能。

以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1