用于处理多个传感器的时序数据的方法和装置制造方法

文档序号:6670658阅读:260来源:国知局
用于处理多个传感器的时序数据的方法和装置制造方法
【专利摘要】本发明涉及时序数据处理,公开一种用于处理来自多个传感器的时序数据的方法和装置,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该方法包含:数据接收步骤,接收来自多个传感器的各个传感器的时序数据;数据分组步骤,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;第一存储步骤,在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中;数据重组步骤,从第一数据库中获取多个传感器的各个传感器的时序数据。第二存储步骤,在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中。
【专利说明】用于处理多个传感器的时序数据的方法和装置
【技术领域】
[0001]本发明涉及时序数据处理,更具体地,涉及在数据库中存储来自传感器的时序数据。
【背景技术】
[0002]在各种工业应用中,需要处理来自大量传感器的海量时序数据-亦称“时间序列数据”(Time Series Data),例如股价波动、气温变化等等。时序数据包含时间戳和与时间戳相关联的值,例如包含来自传感器的采样时间和采样值。在能源系统、智能电网等应用中,往往部署数以千万计的传感器,这些传感器产生海量的时序数据,需要将它们持久地存储在数据库中以便查询。在持久存储时序数据之前,首先要从传感器实时接收时序数据,并在临时存储器的数据库中暂存所接收的时序数据。通常是按传感器组织暂存时序数据,这种方式虽然直截了当,但是对缓存的利用效率不高,在处理来自大量低频采样的传感器的海量时序数据时,尤其如此。

【发明内容】

[0003]针对现有技术的状况,本发明的一个目的是提供一种用于处理来自多个传感器的时序数据的改进的方法和装置。
[0004]一方面,提供一种用于处理来自多个传感器的时序数据的方法,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该方法包含:数据接收步骤,接收来自多个传感器的各个传感器的时序数据;数据分组步骤,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;第一存储步骤,在第一存储器的第一数据库存储时序数据,使得第一数据库的各个数据库记录包含被分派到所述多个传感器组中的同一个传感器组的多个时序数据;数据重组步骤,从第一数据库中获取多个传感器的各个传感器的时序数据;第二存储步骤,在第二存储器的第二数据库存储时序数据,使得第二数据库的各个数据库记录包含同一个传感器的多个时序数据。
[0005]另一方面,提供一种用于处理来自多个传感器的时序数据的装置,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该装置包含:数据接收模块,被配置得用于接收来自多个传感器的各个传感器的时序数据;数据分组模块,被配置得用于将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;第一存储控制模块,被配置得用于在第一存储器的第一数据库存储时序数据,使得第一数据库的各个数据库记录包含被分派到所述多个传感器组中的同一个传感器组的多个时序数据;数据重组模块,被配置得用于从第一数据库中获取多个传感器的各个传感器的时序数据;第二存储控制模块,被配置得用于在第二存储器的第二数据库存储时序数据,使得第二数据库的各个数据库记录包含同一个传感器的多个时序数据。【专利附图】

【附图说明】
[0006]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0007]图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
[0008]图2是按照本发明一个实施例的方法的示意性流程图;
[0009]图3是按照本发明一个实施例的装置的示意性框图;
[0010]图4示意性地表示来自传感器的时序数据的例子;
[0011]图5A和5B示意性地表示按照本发明实施例、在第一存储器中存储来自多个传感器的时序数据的数据库记录;
[0012]图6A和6B示意性地表示按照本发明一个实施例的用于第二存储器中存储时序数据的数据库记录;
[0013]图7示意性地表示按照本发明另一个实施例的用于第二存储器中存储时序数据的数据库记录;
[0014]图8是传感器的时序数据的一种图示。
【具体实施方式】
[0015]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0016]图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPUlOl、RAM102、R0M103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
[0017]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0018]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0019]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0020]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0021]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0022]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0023]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0024]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0025]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0026]本发明涉及时序数据的处理,对时序数据的处理可以在图1所示的计算机系统100上执行。
[0027]本发明的总体构思,是针对来自多个低频采样的传感器的时序数据的特点,首先以较高的效率暂存从多个传感器接收的时序数据,然后重组所暂存的时序数据,并按相应的数据结构永久性地存储时序数据。进一步,以压缩方式存储时序数据,由此降低存储时序数据所需的存储空间。
[0028]下面参照附图,说明本发明的各种实施方式。
[0029]首先参看图2。图2示意性地表示按照本发明一个实施例的用于处理来自多个传感器的时序数据的方法的流程图。
[0030]图2所示的方法处理的时序数据,来自多个传感器(未予示出),例如来自1000个传感器。作为初始化步骤(未予示出),将所述多个传感器划分成多个传感器组,例如,将1000个传感器划分成100个传感器组,每个传感器组包含10个传感器,记录传感器组与传感器之间的映射关系如下:
[0031]Gl = {1,2,...10},—G10 = {91,92,...100},—G100 = {991,992,...1000} [0032]即传感器组Gl包含传感器1、2、…10 ;传感器组GlO包含传感器91、92、…100 ;传感器组GlOO包含传感器991、992、…1000。当然,这样的分组只是示例性的,在具体实践中,传感器的数量可能数以千万计,可以根据实际情况,例如根据传感器的采样频率,适当地配置分组参数,使每个传感器组包含更多的、例如数百乃至数千个传感器。
[0033]图2所示的方法处理的时序数据,均包含一个时间和一个与时间戳关联的值。时间戳代表值的采样时间,简记为“TS”或“T”,与时间戳相关联的值也称采样值,简记为“V”。说明书中也用二元组“〈时间戳,值〉”来表示一对相互关联的时间戳和值,称为“时间戳-值对”。为了方便叙述,在不致引起混淆的情况下,以下也将传感器的时序数据包含的值称为“传感器的值”,将传感器的时序数据包含的时间或时间戳,称为“传感器的时间”。
[0034]概括来说,如图2所示的方法包含以下步骤:数据接收步骤210、数据分组步骤220、第一存储步骤230、数据重组步骤240和第二存储步骤250。现在结合其它附图,详细说明各个步骤的操作。
[0035]该方法的过程始于数据接收步骤210,该步骤接收来自多个传感器(未予示出)的各个传感器的时序数据。
[0036]图4示意性地表示来自传感器的时序数据,其中的表411示意性地表示来自多个传感器的一部分时序数据,其中表头“ID”、“TS”和“V”所在栏的内容,分别是传感器标识符、传感器的时间戳和值。例如,第I行表示标识符为“I”的传感器(传感器I)在时间“20120716.10:47:00” 测量的温度值 “32.0”。
[0037]在步骤210后,执行数据分组步骤220,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组。[0038]例如,将来自1000个传感器的各个传感器的时序数据分派到传感器组G1、G2、…GlO0假设在某一时刻,分配到传感器组Gl的时序数据如图4的表411所示。
[0039]表411所示的时序数据,以及上述对传感器的分组,仅仅是示例性的。步骤210可以接收来自更多的传感器的时序数据,在将多个传感器划分成多个传感器组的情况下,每个被接收的时序数据都属于一个传感器组。
[0040]在步骤220之后,执行第一存储步骤230,在第一存储器的第一数据库DBl存储时序数据,使得第一数据库的各个数据库记录包含被分派到所述多个传感器组中的同一个传感器组的多个时序数据。
[0041]按照本发明一个实施例,第一存储器是一个用于临时存储数据的临时存储器,可以是易失性存储器,也可以是非易失性存储器。第一数据库例如可以是一个关系数据库(RDB)。
[0042]下面参照图5A和5B,进一步说明步骤230的实现方式。
[0043]图5A示意性地表示按照本发明一个实施例的数据库记录的结构。图5A所示的数据库记录包含:
[0044](I)组标识符(G_ID)501A,是一个数据库记录对应的传感器组的标识符。
[0045](2)数据部分504A,包含多个三元组〈ID,V,T>,其中,ID表示传感器标识符,V和T分别表示传感器的值和时间戳,即传感器的时序数据中的值和时间戳。可以通过在数据库记录中设置一个额外的计数器,表示数据部分504Α所包含的三元组的个数。
[0046]例如,假设一个数据库记录包含表411所示的分派到传感器组Gl的时序数据,则该数据库记录可以表示为:
[0047]{G1,<1,32.0,20120716.10:47:00〉,...<10,32.2,20120716.10:47:40〉}
[0048]其中,G_ID=“61”,三元组〈1,32.0,20120716.10:47:00> 表示传感器 I (ID = I)、传感器I的时序数据中的值(V) “32.0”以及该值对应的时间戳(T) “20120716.10:47:00”。
[0049]在该数据库记录中存储了来自多个传感器的时序数据。
[0050]按照本发明一个实施例,在第一存储步骤230之前,可以对时序数据进行压缩,产生压缩的时序数据。相应地,在第一存储步骤中,所述在第一存储器的第一数据库存储时序数据,包含在第一存储器的第一数据库存储压缩的时序数据。
[0051]对时序数据进行压缩,是指将原始时序数据转换成压缩的时序数据。而存储压缩的时序数据所需的存储空间,比存储原始时序数据所需的存储空间更小。可以采用现有技术中各种数据压缩方法,对表411的时序数据进行压缩,产生压缩的时序数据。
[0052]按照本发明一个实施例,所述对时序数据进行压缩,包含对时序数据中的时间戳进行压缩。
[0053]图5B示意性地表示按照本发明一个实施例的用于以压缩方式存储数据的数据库记录的结构。图5B所示的数据库记录包含以下字段:
[0054](I)组标识符(G_ID) 501,表示传感器组的标识符;
[0055](2)基准时间戳(Base_TS)502,表示一个基准时间;
[0056](3)点数据包(P_Blob)504,由多个多个三元组〈ID,V,At>504_l构成。三元组<ID,V,At〉中的“ID”和“V”的含义与图5A所示的三元组〈I D,V,T>中的“ID”和“V”的含义分别相同,“At”是值“V”对应的时间戳与基准时间戳502之间的偏差量。由At和基准时间戳502,可以导出值V对应的时间戳。
[0057](4)计数器(P_Counter) 503,表示三元组504_1的个数。例如,如果P_Counter503的值为10,则表示点数据包504包含10个三元组504_1。点数据包504中可容纳的三元组的个数,除了受限于数据库记录的最大长度,也与数据库记录中的数据或三元组中的数据被压缩的程度有关,数据压缩率越大,可容纳的三元组的个数越多。
[0058]例如,假设一个数据库记录包含表411所示的分派到传感器组Gl的时序数据,则图5B所示结构数据库记录可以表示为:
[0059]{61,20120716.10:47:00,10,P_Blob},其中
[0060]P_Blob = <1,32.0,0>,<2,31.8,10>,<3,31.0,10>…〈10,32.2,40>。
[0061]与图5A所示的数据库记录相比,图5B所示的数据库记录的数据,是经过对时序数据中的时间戳进行压缩而产生压缩的时序数据。采用图5B所示的压缩方式,可以在一个数据库记录中存储更多的时序数据。
[0062]需要指出的是,图5B所示的数据压缩方式只是示意性的,所属【技术领域】的技术人员应当明白,可以采用其他数据压缩方式,对图5A所示结构的数据库记录的数据进行进一步压缩。对图5B所示结构的数据库记录的数据,也可以进行进一步压缩。
[0063]按照本发明一个实施例,所述对时序数据进行压缩,包含对各个传感器的时序数据中的值进行线性压缩。对各个传感器的时序数据中的值进行线性压缩,可以减少所需存储的如图5A或5B所示的三元组的个数。
[0064]为了避免影响对图2所示的过程的描述的连贯性,对传感器的值进行线性压缩的实施方式,将在后文将结合附图加以详细说明。
[0065]需要指出的是,图5A和图5B所示的第一存储器中的每个数据库记录都唯一地对应一个传感器组;而一个传感器组,则可以对应多个图5A或图5B所示的数据库记录。
[0066]来自多个传感器的时序数据,是按照时间顺序接收的。按照常规的方式,在永久性地存储时序数据永久地之前,要在临时存储器中按传感器存储所接收的时序数据,即按传感器在临时存储器的数据库记录中存储时序数据,其中,对应一个传感器的一个数据库记录中,只记录一个时序数据。在传感器数量大,采样频率低的应用中,需要大量的缓存空间才能支持这种存储方式。
[0067]按照本发明实施例的方法,则按传感器组存储所接收的时序数据,其中,第一存储器中的第一数据库的每个数据库记录包含属于该数据库记录对应的传感器组的传感器的时序数据,换言之,该步骤将来自一个传感器组所属的多个传感器的时序数据存储在一个数据库记录中,这可以有效地利用数据库记录的最大长度,由此可以节省所需缓存的空间。
[0068]此外,第一存储步骤230不但按传感器组存储所接收的时序数据,而且可以以压缩方式存储所接收的时序数据,从而可以节省存储空间,使得在一个数据库记录中能存储更多的时序数据。
[0069]按照本发明一个实施例,可以通过在第一数据库的数据库记录中设置适当的字段,为数据库记录建立各种索引,例如:最大值索引,该索引包含数据库记录中的时序数据中的最大值与数据库记录之间的映射关系;最小值索引,该索引包含数据库记录中的时序数据中的最小值与数据库记录之间的映射关系 ;起始时间索引,该索引包含数据库记录中的时序数据中的最早时间戳与数据库记录之间的映射关系;结束时间索引,该索引包含数据库记录中的时序数据中的最晚时间戳与数据库记录之间的映射关系。上述索引可以用于对第一数据库上存储的时序数据进行各种检索。
[0070]现在返回图2,在步骤230后,执行数据重组步骤240,从第一数据库中获取多个传感器的各个传感器的时序数据。
[0071]例如,可以在用于存储来自传感器的时序数据的第一存储器充满时,或者在第一存储器开始存储时序数据后的预定时间,从第一数据库中获取多个传感器的各个传感器的时序数据。具体来说,可以按照传感器组与传感器之间的映射关系,从一个传感器所属的传感器组所在的数据库记录中,抽取该传感器的时序数据。
[0072]转看图4,图中的表412示意性地表示数据重组步骤240从第一数据库获取的一个传感器的一部分时序数据。表412中的表头“TS”和“V”的含义与表411的相同,在此无须赘述。为了便于说明,假设表412所示的26个时序数据,是属于传感器组GlO的传感器100的一部分时序数据。
[0073]在数据重组步骤240之后,执行第二存储步骤250,在第二存储器的第二数据库DB2存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中。
[0074]第二存储器可以是非易失性存储器,例如磁盘、光盘等。第二数据库可以是关系数据库。
[0075]第二数据库中的数据库记录可以用下面的表达式(I)表示:
[0076]{ID,〈V,T>,〈V,Τ>,…} (I)其中,ID表示传感器标识符,多个二元组〈V,Τ>表示属于该传感器标识符代表的传感器的多个时序数据。例如,假设第二数据库的一个数据库记录包含表412所示的时序数据,则该数据库记录的内容可以表示为: [0077]{G10, <3,20120806.10:00:00), …〈5,20120806.10:00:25>}其中,GlO 是传感器标识符,<3,20120806.10:00:00〉分别代表表412中的第I行的时序数据,〈5,20120806.10:00:25>代表最后一行的时序数据。
[0078]需要指出的是,表达式(I)仅仅是示意性的。第二数据库的数据库记录可以包含更多的字段,数据库记录中存储的时序数据,可以包含比表412所示的更多或更少的时序数据,并且,一个传感器可以对应于多个存储其时序数据的数据库记录。所属【技术领域】的技术人员在具体实践中,可以针对可能的需要,例如对第二数据库进行检索的需要,对表达式
(I)所示的结构作出各种修改,例如增加字段。
[0079]按照本发明一个实施例,所述第二存储步骤250进一步包含:在第二存储器的第二数据库按时间戳存储时序数据。换言之,在按传感器存储时序数据的基础上进一步按时间存储时序数据,这可以方便以后在第二数据库中进行基于传感器和时间的检索。
[0080]按照本发明一个实施例,在第二存储步骤250之前,甚至在第一步骤230之前,可以对时序数据进行压缩,产生压缩的时序数据。相应地,在第二存储步骤中,所述在第二存储器的第二数据库存储时序数据,包含在第二存储器的第二数据库存储压缩的时序数据。
[0081]按照本发明一个实施例,所述对时序数据进行压缩,包含对时序数据中的时间戳进行压缩。
[0082]图6Α示意性地表示按照本发明一个实施例用于以压缩方式按时间戳存储时序数据的数据库记录的结构。图6Α所示的数据库记录与图5Β所示的数据库记录相比,除了传感器标识符601与组标识符501之间以及二元组〈V,Δ t>与三元组〈ID,V,Δ t>之间的差另IJ外,其它部分基本相同。具体来说,包含以下字段:
[0083]-传感器标识符(ID)601,表不一个传感器的标识符;
[0084]-基准时间戳(Base_TS)602,表示一个基准时间;
[0085]-计数器(V_Counter)603 ;
[0086]-值数据包(V_Blob)604,由多个二元组〈V,Δt>604_l构成,二元组〈V,At〉中的“V”表示值,“At”表示值“V”对应的时间戳与基准时间戳602之间的偏差量,由〈V,Δ t>和基准时间戳602,可以导出二元组〈V,At〉对应的〈时间戳,值〉对。
[0087]计数器603的值表示二元组604_1的个数。
[0088]例如,按照图6A所示的结构,可以在一个数据库记录中存储表412所示的时序数据,其内容可以示意性地表示如下:
[0089]{100,20120816.10:00:00,26,〈3,0>,<3.3,1>,<3.6,2>,…〈5,25>}
[0090]按照本发明一个实施例,所述对时序数据进行压缩,包含对各个传感器的时序数据中的值进行线性压缩。
[0091]按照本发明一个实施例,可以通过在表达式(I)或图6A所示的结构的数据库记录中设置适当的字段,为数据库记录建立各种索引,例如:起始时间索引,该索引包含数据库记录中的时序数据中的最早时间戳与数据库记录之间的映射关系;结束时间索引,该索引包含数据库记录中的时序数据中的最晚时间戳与数据库记录之间的映射关系。上述索引可以用于对第二数据库上存储的时序数据进行基于时间的各种检索。
[0092]按照本发明一个实施例,所述第二存储步骤250进一步包含:在第二存储器的第二数据库按值存储时序数据。`
[0093]按照本发明一个实施例,在第二存储步骤250之前,可以对时序数据进行压缩,产生压缩的时序数据。相应地,在第二存储步骤中,所述在第二存储器的第二数据库存储时序数据,包含在第二存储器的第二数据库存储压缩的时序数据。
[0094]按照本发明一个实施例,所述对时序数据进行压缩,包含对时序数据中的时间戳进行压缩。
[0095]图7示意性地表示按照本发明另一个实施例的用于以压缩方式按时间戳存储时序数据的数据库记录的结构。图7所示的数据库记录包含以下字段:
[0096]-传感器标识符(ID)701,表示一个传感器的标识符;
[0097]-值范围键(RangeJfey)702,表示该数据库记录中存储的值的范围;
[0098]-基准时间戳(Base_ST)704,表示一个基准时间;
[0099]-时间戳数据包(TS_Blob)703,包含:
[0100]-多个二元组〈V,At>703_2,二元组〈V,Λt>中的“V”表示值,“ Λ t”表示值“V”对应的时间戳与基准时间戳704之间的偏差量,因此,〈V,Δ t>和基准时间戳Base_TS704,可以表示二元组〈V,At〉对应的〈时间戳,值〉对。
[0101]-计数器(TS_Counter)703_l,其值表示二元组703_2的个数。
[0102]图7与图6A所示的数据库记录的结构的主要差别是,图7中包含一个值范围键(RangeJfey) 702字段,用于指示数据库记录中包含的时序数据的值的值范围。由于传感器在不同时间的值的差别可能很大,在数据库记录中限定所存储的时序数据的值的值范围,有助于提高在第二存储器中进行基于传感器和值的检索的速度。
[0103]可以用各种方式划分来自传感器的时序数据中的值的值范围。以传感器100为例,假设该传感器的时序数据的值的范围为[_20,20],可以简单地把这个范围划分为20个值范围,即[-20,-18]、[-18,-16]…[16,18]、[18,20]。这种划分方式的缺点是,在实际情况中,传感器的值在每个值范围上的分布不均匀,就是说,传感器的值在有的值范围内很多,在有的值范围内很少。
[0104]每个传感器的值,都有一定的分布规律。可以利用每个传感器的值的实际分布,来划分每个传感器的值的值范围。
[0105]按照本发明一个实施例,图2所示的方法进一步包含:计算来自每个传感器的值的概率分布函数PDF (Probability DistributionFunction),相应地,所述在第二存储器的第二数据库按值存储时序数据包含:
[0106]根据所计算的HF,为每个传感器的值划分多个值范围;
[0107]按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
[0108]按照本发明一个实施例,可以在第一存储步骤230之前,通过统计每个传感器的时序数据,计算每个传感器的时序数据的值的HF。例如,通过统计来自传感器100的时序数据,可以计算出传感器100的值的概率分布函数TOF:
[0109]
【权利要求】
1.一种用于处理来自多个传感器的时序数据的方法,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该方法包含: 数据接收步骤,接收来自多个传感器的各个传感器的时序数据; 数据分组步骤,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组; 第一存储步骤,在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中; 数据重组步骤,从第一数据库中获取多个传感器的每个传感器的时序数据; 第二存储步骤,在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中中。
2.权利要求1的方法,所述第二存储步骤进一步按时间戳存储时序数据。
3.权利要求1的方法,所述第二存储步骤进一步按值存储时序数据。
4.权利要求3的方法,进一步包含:计算来自每个传感器的值的概率分布函数HF,并且 所述按值存储时序数据包含: 根据所计算的roF,为每个传感器的值划分多个值范围; 按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
5.权利要求1至4的任何之一的方法,进一步包含: 数据压缩步骤,针对每个传感器,对时序数据进行压缩,产生压缩的时序数据。
6.权利要求5的方法,其中,所述对时序数据进行压缩,包含以下的一个或多个: 对时序数据中的时间戳进行压缩; 对每个传感器的时序数据中的值进行线性压缩。
7.权利要求6的方法,其中,所述在第一存储器的第一数据库存储时序数据,包含在第一存储器的第一数据库存储压缩的时序数据。
8.权利要求6的方法,所述对时序数据进行压缩,包含对每个传感器的时序数据中的值进行线性压缩,所述在第二存储器的第二数据库存储时序数据,包含在第二存储器的第二数据库存储压缩的时序数据。
9.权利要求5的方法,进一步包含: 查询接收步骤,接收对时序数据的查询; 查询步骤,在第二存储器中执行对时序数据的查询。
10.权利要求9的方法,其中,所述查询步骤包含: 查询转换步骤,将所接收的查询转换为对第二存储器中压缩的时序数据的查询; 压缩数据查询步骤,执行对第二存储器中压缩的时序数据的查询,获得查询结果; 解压步骤,将所获得的查询结果中压缩的时序数据进行解压。
11.一种用于处理来自多个传感器的时序数据的装置,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该装置包含: 数据接收模块,被配置得用于接收来自多个传感器的各个传感器的时序数据; 数据分组模块,被配置得用于将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组; 第一存储控制模块,被配置得用于在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中; 数据重组模块,被配置得用于从第一数据库中获取多个传感器的每个传感器的时序数据; 第二存储控制模块,被配置得用于在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中。
12.权利要求11的装置,所述第二存储控制模块被配置得用于进一步按时间戳存储时序数据。
13.权利要求11的装置,所述第二存储控制模块被配置得用于进一步按值存储时序数据。
14.权利要求13的装置,进一步包含用于计算来自每个传感器的值的概率分布函数PDF的模块,并且 所述第二存储控制模块被进一步配置得用于: 根据所计算的roF,为每个传`感器的值划分多个值范围; 按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
15.权利要求11至14的任何之一的装置,进一步包含: 数据压缩模块,被配置得用于针对每个传感器,对时序数据进行压缩,产生压缩的时序数据。
16.权利要求15的装置,其中,所述数据压缩模块包含以下的一个或多个: 用于对时序数据中的时间戳进行压缩的模块; 用于对每个传感器的时序数据中的值进行线性压缩的模块。
17.权利要求16的装置,其中,所述第一存储控制模块被进一步配置得用于在第一存储器的第一数据库存储压缩的时序数据。
18.权利要求16的装置,其中,所述第二存储控制模块被进一步配置得用于在第二存储器的第二数据库存储压缩的时序数据。
19.权利要求15的装置,进一步包含: 查询接收模块,被配置得用于接收对时序数据的查询; 查询模块,被配置得用于在第二存储器中执行对时序数据的查询。
20.权利要求19的装置,其中,所述查询模块包含: 查询转换模块,被配置得用于将所接收的查询转换为对第二存储器中压缩的时序数据的查询; 压缩数据查询模块,被配置得用于执行对第二存储器中压缩的时序数据的查询,获得查询结果;解压模块,被配 置得用于将所获得的查询结果中压缩的时序数据进行解压。
【文档编号】G07F17/30GK103794006SQ201210429532
【公开日】2014年5月14日 申请日期:2012年10月31日 优先权日:2012年10月31日
【发明者】陈晓艳, 黄胜, 王晨, 刘凯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1