数据压缩的制作方法

文档序号:12277810阅读:163来源:国知局
数据压缩的制作方法与工艺

本申请要求2015年8月6日向印度专利局递交的印度临时专利申请4083/CHE/2015号的优先权,这里通过引用并入该申请的全部公开内容。

技术领域

本发明涉及数据压缩。



背景技术:

数据库技术和数据压缩技术的进步提供了数据存储的高效手段。例如,可利用已知的数据压缩技术来压缩数据并将其存储在数据库中。然而,可能没有规定或机制来基于数据源识别或分类数据。在这种场景中,已知的数据压缩技术可能是低效的并且搜索这种压缩的数据的机制可能是繁冗的。确定数据源、基于数据的属性的数据压缩技术以及优化对数据的搜索可能是有挑战性的。



技术实现要素:

根据本发明的一个方面,提供一种压缩数据集的由计算机实现的方法,包括:基于与内存数据存储库中存储的统一数据集相关联的一个或多个属性,确定包括传感器节点标识符数据、传感器节点时间戳数据和传感器测量数据的数据集;确定第一数据压缩逻辑来压缩所述传感器节点标识符数据;以及确定第二数据压缩逻辑来压缩所述传感器测量数据;执行传感器节点时间戳数据压缩模型来压缩所述传感器节点时间戳数据;以及将压缩的传感器节点标识符数据、压缩的传感器测量数据和压缩的传感器节点时间戳数据存储在所述内存数据存储库中。

根据本发明的一个方面,提供一种压缩数据集的计算机系统,包括:存储器,其存储计算机指令;以及处理器,其与所述存储器通信耦合来执行与以下相关的指令:基于与内存数据存储库中存储的统一数据集相关联的一个或多个属性,确定包括传感器节点标识符数据、传感器节点时间戳数据和传感器测量数据的数据集;确定第一数据压缩逻辑来压缩所述传感器节点标识符数据;以及确定第二数据压缩逻辑来压缩所述传感器测量数据;执行传感器节点时间戳数据压缩模型来压缩所述传感器节点时间戳数据;以及将压缩的传感器节点标识符数据、压缩的传感器测量数据和压缩的传感器节点时间戳数据存储在所述内存列数据存储库中。

根据本发明的一个方面,提供一种有形地存储指令的非暂态计算机可读存储介质,所述指令当被计算机执行时使得该计算机执行操作,所述操作包括:基于与内存数据存储库中存储的统一数据集相关联的一个或多个属性,确定包括传感器节点标识符数据、传感器节点时间戳数据和传感器测量数据的数据集;确定第一数据压缩逻辑来压缩所述传感器节点标识符数据;以及确定第二数据压缩逻辑来压缩所述传感器测量数据;执行传感器节点时间戳数据压缩模型来压缩所述传感器节点时间戳数据;以及将压缩的传感器节点标识符数据、压缩的传感器测量数据和压缩的传感器节点时间戳数据存储在所述内存数据存储库中。

附图说明

权利要求记载了实施例的特征。在附图中以示例方式而非限制方式图示了实施例,附图中相似的标记指示类似的要素。通过结合附图阅读以下详细描述,可最好地理解实施例及其优点。

图1是根据一实施例图示出包括传感器数据集的表格的框图。

图2是根据一实施例图示出压缩数据集的过程的流程图。

图3是根据一实施例图示出传感器节点标识符数据的压缩的框图。

图4是根据一实施例示出传感器节点标识符数据集的压缩的框图。

图5是根据一实施例图的传感器节点标识符数据的后缀树的框图。

图6是根据一实施例示出传感器节点时间戳数据的压缩的框图。

图7是根据一实施例示出传感器节点时间戳数据的压缩的框图。

图8是根据一实施例示出包括传感器节点时间戳数据的压缩数据集的表格的框图。

图9是根据一实施例的计算机系统的框图。

具体实施方式

本文描述了与数据压缩有关的技术的实施例。在以下描述中,记载了许多具体细节以帮助透彻理解实施例。然而,相关领域的技术人员将会认识到,没有这些具体细节中的一个或多个或者利用其他方法、组件、材料等等也可实现实施例。在其他情况中,没有示出或详细描述公知的结构、材料或操作。

贯穿整个说明书,提及“一个实施例”、“此实施例”和类似短语的意思是联系该实施例描述的特定特征、结构或特性被包括在一个或多个实施例的至少一者中。从而,这些短语在贯穿本说明书各处的出现不一定全都指的同一实施例。另外,特定的特征、结构或特性在一个或多个实施例中可按任何适当的方式被组合。

与企业相关联的业务数据的体量可随着时间的流逝经历指数式激增。业务数据可能是结构化和非结构化数据、事务性数据、与业务过程有关的数据,等等。数据存储库可对应于内存数据库(in-memory database)、网络数据库(web-based database)、传统数据库等等。内存数据库可包括主存储器和用于执行存储和计算操作的底层硬件。通常,业务数据可在主存储器中可得并且诸如计算和存储器读取之类的操作可在主存储器中执行。

在一实施例中,数据库中的表格可由具有按行和列组织的单元的二维数据结构表示。例如,内存数据库中的业务数据可被存储为行存储(row store)或列存储(column store)。在行存储中,每一行的字段可被顺序存储,而在列存储中,每一列的字段可被存储在连续的存储器位置中。被建模为行存储或列存储的存储可被内存管理系统的各种组件访问。这种组件可包括前端开发应用、数据库应用、查询处理引擎等等。

在一实施例中,当数据被存储在列存储中时,与业务数据相关联的值可以是固有分类的并且被存储在可彼此相邻的若干个连续位置中。在一实施例中,内存数据存储库(in-memory data store)可存储来自多个数据源的多种数据格式的数据。这种数据可被称为统一数据集(unified dataset)并且可与多个属性相关联。例如,与企业资源规划(enterprise resource planning,ERP)数据相关联的数据集可由与ERP数据相关联的属性来确定或识别;与客户关系管理(customer relationship management,CRM)数据相关联的数据集可由与CRM数据相关联的属性来确定,等等。

在一实施例中,内存数据存储库可存在于与多个传感器节点通信的数据中心中。传感器节点可对应于一种换能器,该换能器可被配置为感测(例如,测量或检测)部署了该传感器节点的环境中的特定特性。这种测量值也可被称为传感器测量数据,该数据可被发送到数据中心。此外,发送到数据中心的数据可包括传感器节点标识符数据、传感器时间戳数据等等。例如,这种数据集可被称为传感器数据或传感器信息。因此,传感器数据可由诸如传感器节点标识符、传感器节点时间戳信息和传感器测量信息之类的关联属性来确定。传感器可被部署在诸如电子设备、软件等等之类的与彼此交换数据的智能物体或设备的连接的网络(例如,物联网(Internet of Things,IoT))中。

在一实施例中,从多个传感器节点发送的传感器数据可被接收并存储在与内存数据存储库相关联的增量存储(delta storage)中。增量存储可被配置为按特定频率并且按特定时间间隔接收传感器数据。在接收到传感器数据后,与内存数据存储库中的增量存储相关联的业务逻辑可基于传感器时间戳信息对包括传感器数据的数据集分类。在基于传感器时间戳信息对数据集分类后,可将包括传感器数据的数据集与和内存数据存储库相关联的主存储(main storage)合并。

在一实施例中,内存数据存储库可执行数据合并模型来将增量存储中收集的数据集与内存数据存储库中的主存储合并。在一实施例中,主存储中的数据可被存储为行存储或列存储。可通过执行数据压缩模型来压缩主存储中存储的数据。例如,内存数据存储库中存储的数据集可由与该数据集相关联的属性来确定并且数据压缩模型可被确定并执行来压缩相应的数据集。

图1是根据一实施例图示出包括传感器数据集的表格的框图。作为例示,图1示出了包括数据中心中的内存数据存储库中存储的数据集的表格1。在一实施例中,表格1中的数据集对应于传感器测量数据。表格1中的数据集可在内存数据存储库中被存储为列存储。如图所示,表格1包括表示传感器节点标识符信息的列存储“传感器ID”102;表示传感器节点时间戳信息的列存储“时间戳”104;表示传感器节点测量信息的列存储“测量”106。在一实施例中,基于传感器节点的部署与数据中心的邻近度和传感器节点的数据发送频率,传感器节点可向数据中心发送传感器测量数据。这种传感器测量数据可包括不同类型的数据模式。

图2是根据一实施例图示出压缩数据集的过程200的流程图。过程200在执行时压缩与传感器数据相关联的数据集。在一实施例中,基于与统一数据集相关联的属性,在210确定包括传感器节点标识符数据、传感器节点时间戳数据和传感器测量数据的数据集。可基于属性来确定传感器标识符数据、传感器节点时间戳数据和传感器测量数据。为了压缩包括传感器数据的数据集,可确定数据压缩逻辑。可通过执行算法或模型来确定数据压缩逻辑。

在一实施例中,通过执行后缀树算法来确定数据压缩逻辑。可执行后缀树算法来基于与数据集相关联的性质(例如,数据模式的类型、从传感器节点的数据发送频率等等)确定数据压缩逻辑。在一实施例中,在220确定压缩传感器节点标识符数据的数据压缩逻辑(例如,第一数据压缩逻辑)。在230确定压缩传感器节点测量数据的数据压缩逻辑(例如,第二数据压缩逻辑)。在一实施例中,在240,执行传感器节点时间戳数据压缩模型来压缩传感器节点时间戳数据。在一实施例中,可执行后缀树算法来确定数据压缩逻辑(例如,第一数据压缩逻辑、第二数据压缩逻辑等等)。在250,压缩的数据集(例如,与传感器节点标识符、传感器节点时间戳和传感器测量相关联的数据集)被存储在内存数据存储库中。

传感器节点标识符数据的压缩

在一实施例中,传感器节点可将包括传感器节点标识符数据的数据发送到数据中心。传感器节点标识符数据可包括多种不同类型的数据模式。作为示例,传感器节点标识符可由整数(例如,“1”、“2”、“3”、“4”等等)表示并且可基于数据压缩逻辑来被压缩。压缩传感器节点标识符数据的数据压缩逻辑可基于对与传感器节点标识符数据相关联的数据模式的类型的确定。

在一实施例中,与传感器节点标识符数据相关联的数据模式的类型可取决于从传感器节点的数据发送频率。因此,确定压缩包括传感器节点标识符数据的数据集的数据压缩逻辑(例如,第一数据压缩逻辑)可包括确定从多个传感器节点的数据发送频率。基于数据发送频率,传感器节点标识符数据可包括多种类型的数据模式(例如,第一类型的数据模式、第二类型的数据模式,等等)。这种类型的数据模式也可取决于传感器节点的部署与数据中心的邻近度。

图3是根据一实施例图示出传感器节点标识符数据的压缩的框图。图3示出了包括传感器节点标识符数据的列存储A。作为例示,图3示出了列存储A将传感器节点标识符数据存储为由“1”、“2”、“3”、“4”等等表示的整数。如前所述,基于传感器节点的部署的邻近度和传感器节点的数据发送频率,传感器节点发送到数据中心的数据可包括不同类型的数据模式。

作为例示,列存储A示出了传感器节点标识符的有限数据集“1234123412342341234”。可以遍历包括传感器节点标识符数据集的列存储A并且可确定不同类型的数据模式(例如,302、304、306、308和310)。另外,可以确定频繁重复类型的数据模式。作为示例,一个这种重复类型的数据模式可包括“1234”,计数为4,因为该类型的数据模式“1234”在列存储A中出现4次。

在一实施例中,在确定频繁重复类型的数据模式后(例如,302、304、306和310),可确定压缩数据集的数据压缩逻辑。可以用比特编码方案或比特编码逻辑来对频繁重复类型的数据模式编码。在一实施例中,在对传感器节点标识符数据编码后,可生成包括与传感器节点标识符相关联的编码类型的数据模式和比特代码指示符的表格。比特编码的数据集可表示压缩的传感器节点标识符数据集。

在一实施例中,可确定被利用或消耗来存储图3的列存储A中所示的传感器节点标识符数据的量。作为示例,考虑被消耗或利用来存储数据集的每一行或条目的存储器的量是1字节。因此,被利用或消耗来存储图3的列存储A的数据集的存储器的总量可被计算为等于19字节(例如,因为在图3的列存储A中有19个记录或条目)。这种存储器利用或消耗可通过压缩传感器节点标识符数据集并将压缩的数据集存储在内存数据存储库中来加以优化。

在一实施例中,为了压缩包括传感器节点标识符数据的数据集,可利用比特编码方案或比特编码逻辑来对频繁重复类型的数据模式(例如,列存储B的X)编码。作为例示,根据一实施例,列存储C和列存储D示出了用于图3的列存储A的传感器标识符数据集的比特编码逻辑。如图所示,频繁重复类型的数据模式可被确定、编码并由编码变量来表示。频繁重复类型的数据模式的编码可基于重复类型的数据模式的计数(例如,某种类型的数据模式的出现频率)。

作为例示,图3示出了频繁重复类型的数据模式被确定为“1234”,其被示为列存储。作为示例,比特编码逻辑可对这种模式编码并且由编码变量“X”表示。为了压缩传感器节点标识符数据集,数据压缩逻辑可遍历过传感器节点标识符数据集来确定频繁重复类型的数据模式的出现。在确定频繁重复类型的数据模式的出现后,数据压缩逻辑可利用编码变量“X”来替换与频繁重复类型的数据模式相关联的数据集的块或间隔。这在图3中示为列存储C。

在一实施例中,对应于数据集的每个被替换的块,在比特指示符列(例如,列存储D)中可存储值“1”。比特指示符列(例如,列存储D)中的值“1”指示出数据集的该块对应于频繁重复类型的数据模式并且被数据压缩逻辑编码了。在一实施例中,当数据集的块或间隔(例如,308)不匹配频繁重复类型的数据模式时,数据压缩逻辑可存储与传感器节点标识符相关联的值。作为例示,图3示出了未能与频繁重复数据模式(例如,列存储B)匹配的块或间隔数据集308。换言之,数据集的块或间隔308可指示出具有标识符“1”的传感器节点未能发送数据。在这种情况中,相应的传感器节点标识符被包括在传感器节点标识符列(例如,列存储C)中并且值“0”可被包括在比特指示符列(例如,列存储D)的相应行中。在一实施例中,比特指示符列(例如,列存储D)中的值“0”可指示出数据集未能与频繁重复类型的数据模式(例如,列存储B)匹配。

在一实施例中,包括传感器节点标识符数据的数据集(例如,图3的列存储A)可被压缩并存储在内存数据存储库中。当图3的列存储A中的传感器节点标识符数据集被压缩时,被利用或消耗的存储器的量可被计算为等于12字节(例如,频繁重复类型的数据模式的列存储=4字节+压缩的包括传感器节点标识符数据的数据集的列存储=7字节+比特指示符列存储=1字节)。

图4是根据一实施例示出传感器节点标识符数据集的压缩的框图。作为例示,列存储C和列存储D示出了压缩传感器节点标识符数据集的比特编码方案或比特编码逻辑。数据压缩逻辑可如前所述对传感器节点标识符数据集编码(例如,图3的详细描述)。在一实施例中,数据压缩逻辑可确定频繁重复类型的数据模式中的缺失(missing)传感器节点标识符的位置并且可利用这种位置信息来对传感器节点标识符数据集编码。作为示例,在频繁重复类型的数据模式中(例如,列存储B),“X(0)”可指示具有标识符“1”的缺失传感器节点的位置;“X(1)”可指示具有标识符“2”的传感器节点的位置,等等。

在一实施例中,数据压缩逻辑可如图4的列存储C和列存储D中所示对传感器节点标识符数据集编码。作为例示,传感器节点标识符列存储C中的“X(0)”在比特指示符列存储D中被以值“1”来编码并存储。这种比特编码逻辑可指示出传感器节点标识符数据集的相应块(例如,408)部分匹配频繁重复类型的数据模式(例如,图4的列存储B)。基于上述比特编码逻辑,与列存储C中的编码变量“X(0)”相关联的比特指示符列存储D中的值“1”可指示出具有标识符值“1”的传感器节点未能发送数据。

在一实施例中,数据压缩逻辑可对缺失一个元素的列存储B中给出的子模式序列编码(例如,缺失一个标识符的来自<’1’,‘2’,‘3’,‘4’>的所有可能子模式是<‘2’,‘3’,‘4’>或<‘1’,‘3’,‘4’>或<’1’,‘2’,‘4’>或<’1’,‘2’,‘3’>)。在这种情况中,数据压缩逻辑可分别对缺失传感器节点标识符数据集编码并且分别由编码变量表示为“X(0)”、“X(1)”、“X(2)”和“X(3)”。在一实施例中,保留原始数据以用于恢复的这种数据压缩逻辑也可被称为无损数据压缩。

在一实施例中,被消耗或利用来存储与每个频繁重复类型的数据模式相对应的压缩数据集的存储器的量可利用以下式子来计算:

式(1):S=(N*log2(M)+Rc*log2(M)+Rc)

在以上式子中,“S”表示被利用于压缩形式的数据模式类型的存储(例如,以比特为单位);“N”表示该模式中的元素的数目;“M”表示唯一传感器节点标识符的数目;“Rc”表示用于存储压缩数据的行存储的数目。

在一实施例中,传感器节点标识符数据集可包括多个频繁重复类型的数据模式。在这种场景中,可以为每个不同的频繁重复类型的数据模式计算存储值“S”(也称为数据压缩得分)并且可比较数据压缩得分。在一实施例中,可基于对数据压缩得分的比较来确定数据压缩逻辑。

在一实施例中,可通过对传感器节点标识符数据集执行后缀树算法来确定频繁重复类型的数据模式。后缀树算法的执行可生成后缀树(例如,包括传感器节点标识符数据集的后缀树图)。后缀树可包括节点和连接节点的路径。在一实施例中,后缀树的节点可表示特定类型的数据模式的出现的计数或数目。

在一实施例中,图4的列存储A可表示有限数据集。对于无限数据集(例如,当列存储A中的条目的计数是数百万或数十亿时),可将无限数据集分区成有限数据集并且可识别与每个有限数据集相对应的频繁重复类型的数据模式。对于所识别出的每个有限数据集中的频繁类型的数据模式,如前所述可计算数据压缩得分。作为示例,可计算、比较每个频繁重复类型的数据模式的数据压缩得分并且可确定数据压缩逻辑。

图5是根据一实施例图的传感器节点标识符数据的后缀树的框图。作为例示,图5示出了为传感器节点标识符数据502生成的后缀树图504。如前所述,可通过对传感器节点标识符数据502执行后缀树算法来生成后缀树图504。如图所示,后缀树图504包括节点(例如,“A”、“B”、“D”、“E”、“F”、“G”、“H”、“I”、“J”、“K”、“L”、“M”、“N”、“O”、“P”、“Q”、“R”、“S”、“T”、“U”、“V”、“W”、“X”、“Y”、“Z”、“B1”、“B2”、“E1”)和连接节点的路径(例如,“3241”、“$”、“241”、“41”、“1”等等)。

在一实施例中,后缀树的节点可表示特定类型的数据模式的出现的计数(例如,节点“B”将表示计数4,因为数据模式类型“3241”在传感器节点标识符数据502中出现4次;节点“C”将表示计数5,因为数据模式类型“241”在传感器节点标识符数据502中出现5次,等等)。连接节点的路径可表示特定类型的数据模式。

为了确定压缩逻辑并且最优地压缩传感器节点标识符数据集,可以遍历后缀树来确定非重叠节点。非重叠节点可对应于互斥类型的数据模式。作为示例,考虑图5的节点“I”,数据模式类型“13241”的出现计数为2。数据模式类型(例如,“13241”)的第一匹配开始于第4位置(例如,502中的行索引)并且结束于第8位置(例如,502中的行索引)。数据模式类型的第二匹配开始于第8位置(例如,502中的行索引),其与数据模式类型的第一匹配的出现重叠。数据模式类型的第三匹配开始于第15位置(例如,502中的行索引),其不与数据模式类型的第二匹配的出现重叠。因此,可如上所述确定非重叠节点。

在一实施例中,在确定后缀树中的非重叠节点后,可计算每个非重叠节点的数据压缩得分(例如,第一数据压缩得分、第二数据压缩得分等等)(例如,利用式(1))。数据压缩得分可表示被利用或消耗来存储特定类型的数据模式的存储器的量。数据压缩逻辑可基于数据压缩得分来加以确定并且传感器节点标识符数据集可被最优地压缩并存储在内存数据存储库中。

在一实施例中,对非重叠节点的确定可被迭代地停止。例如,执行后缀树算法来确定非重叠节点可在确定数据模式类型的增加时迭代地停止,因为数据模式类型的长度的增加可导致更低的数据压缩得分。作为示例,在图5中,与节点C和B的数据压缩得分相比,节点G和B2将分别生成更高的数据压缩得分。节点G可表示具有7字节大小的一种类型的数据模式“2413241”。在一实施例中,在包括19个条目或记录的数据集中可以有至少两种类型的模式的出现。因此,可以只编码14个条目或记录并且可不编码5个记录。因此,压缩的数据集利用或消耗的存储器的量可被计算为:7+2+5=14字节(例如,不包括用于数据模式类型“2413241”的比特指示符),这将会高于数据模式类型“241”的数据压缩得分,其可被计算为:3+5+4=13字节(例如,忽略比特指示符)。数据模式类型“241”的出现的计数是5(例如,在502中)。

在一实施例中,结构化查询语言(structured query language,SQL)查询可被数据存储库搜索引擎接收来搜索数据。在接收到SQL查询后,数据存储库搜索引擎可在内存数据存储库中运行或执行搜索。例如,搜索数据存储库可包括遍历压缩的传感器节点标识符数据集来确定与搜索的数据相对应的行索引。作为示例,考虑数据存储库搜索引擎接收到搜索包括传感器节点标识符“3”的数据的SQL查询。在处理该SQL查询后,数据存储库搜索引擎可确定搜索的数据被包括在第3位置的频繁重复类型的数据模式中(例如,X,图3的列存储B)。

在一实施例中,数据存储库搜索引擎可遍历图3的列存储C并在图3的比特指示符列存储D中确定相应的值为“1”。与该搜索相对应的行索引可通过计算当前行索引与正被搜索的传感器节点标识符的位置的加和来确定。在匹配行索引列表中确定新的当前行索引,此后通过加上剩余重复数据类型模式长度来将当前行索引更新到下一行索引。作为示例,考虑在列存储C上执行线性搜索,使得前三个记录如列存储D中所指示被压缩为比特指示符“1”。传感器节点标识符“3”的位置可基于频繁重复类型的数据模式内的位置(例如,行索引)和数据模式类型的大小来确定。基于这种确定,压缩的数据集中的前三种类型的数据模式的位置可被确定为第3、第7和第11。也可确定每种类型的数据模式长度为4字节并且因此可确定传感器标识符“2”在第13位置(例如,4*3+1=13字节),因为位置是从1起索引的。在列存储C中进一步搜索,具有标识符“3”的传感器节点可被确定为位置在行索引14和行索引16。因此,包括传感器节点标识符“3”的压缩数据集可在行索引18处找到。

在一实施例中,在确定比特指示符值为“0”后,传感器节点标识符被存储在压缩的数据集中以便比较值以寻找匹配。在匹配时,当前行索引被添加到匹配行索引列表并且当前行索引被递增“1”。

传感器节点时间戳数据的压缩

在一实施例中,传感器节点可按有限的时间间隔将数据发送到数据中心。这种数据可被称为传感器节点时间戳数据。传感器节点时间戳数据可包括诸如传感器节点标识符、时间戳数据、传感器节点测量数据等等之类的信息。在一实施例中,被数据中心接收的传感器节点时间戳数据可被存储在与内存数据存储库相关联的增量存储中。传感器节点时间戳数据可被按顺序(例如,升序或降序)分类并存储在增量存储中。通过执行数据合并模型可将分类的传感器时间戳数据和与内存数据存储库相关联的主存储合并。

在一实施例中,可确定与传感器节点时间戳数据相关联的属性。与传感器节点时间戳数据相关联的属性可对应于诸如“开始时间”、“间隔数目”、“间隔”、“传感器节点数目”等等之类的信息。在一实施例中,与“开始时间”相关联的信息可表示传感器节点执行测量的时间戳(例如,时间测量)。“开始时间”可通过确定包括时间戳数据的列存储中的第一值来确定。参数“传感器节点数目”可表示可发送数据的唯一传感器节点的数目。这种数目可由传感器节点标识符确定。与“间隔”相关联的信息可表示包括传感器节点对时间的确定改变的值(例如,在表格2中,整数“1”表示1毫秒)。可基于时间戳数据的已知实例的传感器节点时间戳值之间的比较来确定“间隔”。与“间隔数目”相关联的信息可表示包括与时间戳数据相关联的确定类型的数据模式的时间间隔的有限集合。“间隔数目”可通过遍历时间戳数据并基于时间戳数据最优地分区成间隔块来确定(例如,表格2,数目3表示三个间隔,其中对于所有四个传感器节点每个传感器测量具有一毫秒测量)。

图6是根据一实施例示出传感器节点时间戳数据的压缩的框图。作为例示,图6示出了包括传感器节点时间戳数据的表格1。如图所示,表格1包括传感器节点时间戳数据,其中包括诸如传感器节点标识符数据602、时间戳数据604和传感器节点测量数据606之类的信息。在一实施例中,传感器节点时间戳数据可在与内存数据存储库相关联的主存储中被存储为列存储。作为例示,与传感器节点标识符数据602相关联的列存储包括整数标识符,例如“1”、“2”、“3”和“4”。

在一实施例中,可确定被利用来存储图6所示的传感器节点时间戳数据的存储器的量。作为示例,被消耗或利用来存储传感器节点时间戳节点中的每一行数据的存储器的量是4字节。因此,被利用来存储图6的传感器节点时间戳数据(例如,有限大小的数据)的存储器的总量可被计算为48字节(例如,记录的数目或条目的数目=12;每个条目或记录消耗的存储器的量是4字节)。可通过压缩传感器节点时间戳数据来减少这种存储器利用或消耗。

在一实施例中,为了压缩传感器节点时间戳数据,可确定包括信息“开始时间”608、“间隔数目”610、“间隔”612、“传感器节点数目”614等等的属性。确定上述属性可对应于确定数据压缩逻辑。上述属性可通过确定与传感器节点时间戳数据相关联的数据模式类型来确定。在一实施例中,传感器节点时间戳数据可被线性遍历并且在确定时间戳之间的间隔的变化或者相同时间戳的数目的计数后可生成压缩的数据集。时间戳的变化可被记录为“间隔”,例如图6的表格2中的1毫秒。在一实施例中,传感器节点的数目的变化可生成包括图7中的表格2中的一行的压缩数据集。

在一实施例中,在执行线性时间戳算法并确定上述属性后,可生成图6的表格2。确定上述属性可对应于确定压缩与传感器节点时间戳数据相关联的数据集的数据压缩逻辑(例如,传感器节点时间戳数据压缩模型)。图6中的表格2示出了在执行线性时间戳算法后可从表格1确定的属性。作为例示,表格2包括:“开始时间”=20141017145610 608;“间隔数目”=3 610(例如,“N1”、“N2”和“N3”);“间隔”=1 612(例如,“I”);“传感器节点数目”=4 614(例如,具有传感器节点标识符“1”、“2”、“3”和“4”)。在一实施例中,表格2的上述确定的属性可表示与传感器节点时间戳数据相关联的压缩的数据集。

在一实施例中,被压缩的数据集(例如,表格2)利用或消耗的存储器的量可被计算为7字节(例如,与“开始时间”相对应的1*4字节+与“间隔数目”相对应的1字节+与“间隔”相对应的1字节+与“传感器节点数目”相对应的1字节=4)。因此,可显著减少被消耗或利用来存储传感器节点时间戳数据的存储器的量。例如,根据上述计算,可确定在压缩与传感器节点时间戳数据相对应的数据集后,消耗的存储器的量可减少大约85.4%。

在一实施例中,传感器节点时间戳数据所利用或消耗的存储器的量可被计算为:

式(2):传感器节点时间戳数据所利用或消耗的总存储器=4*M+3*M

在上式中,“M”表示包括压缩的数据集的表格中的记录或条目的数目。在一实施例中,当考虑到上述确定的信息(例如,“间隔数目”、“间隔”、“传感器节点数目”等等)时,可生成普适方程。例如,式(2)的一般形式可写为:

式(3):传感器节点时间戳数据所利用或消耗的总存储器=4*M+ceil(log2Imax)*M+ceil(log2Tmax)*M+ceil(log2Dtotal)*M

在上式中,“M”表示记录或条目的数目;“Imax”表示最大“间隔数目”;“Tmax”表示最大“间隔”;“Dtotal”表示最大“传感器节点数目”。

图7是根据一实施例示出传感器节点时间戳数据的压缩的框图。作为例示,图7示出了包括传感器节点时间戳数据的表格1。如图所示,传感器节点时间戳数据包括诸如传感器节点标识符数据702、时间戳数据704和传感器节点测量数据706之类的信息。作为示例,被消耗或利用来存储传感器节点时间戳节点中的每一行数据的存储器的量是4字节。因此,被利用来存储图7的表格1的传感器节点时间戳数据的存储器的总量可被计算为60(例如,记录的数目或条目的数目=15;每个条目或记录消耗的存储器的量是4字节)。可通过压缩传感器节点时间戳数据来减少这种存储器利用或消耗。

在一实施例中,如图6的详细描述中所述可确定包括与传感器节点时间戳数据相关联的信息的属性(例如,“开始时间”、“间隔数目”、“间隔”、“传感器节点数目”等等)。作为例示,可如图7的表格2中所示确定并压缩与图7的传感器节点时间戳数据相关联的属性。作为例示,图7中的表格2的第一行示出了压缩的数据,其包括:“开始时间”=20141017145610 708;“间隔数目”=3 710;“间隔”=1 712;“传感器节点数目”=4 714。

作为示例,考虑一种数据中心未能从传感器节点接收到数据的场景。例如,考虑具有标识符“1”的传感器节点未能向数据中心发送数据(例如,由于故障的传感器节点、失效的传感器节点、传感器节点与数据中心之间的失效的通信链路,等等)。作为例示,图7中的表格1示出了与最后间隔块(例如,“B1”)相对应并且与时间戳数据“20141017145613”相关联的这种数据集。在这种场景中,可如图7中的表格2的第二行中所示压缩并存储该数据集。在一实施例中,图7中的表格2的第二行指示出与时间戳数据“20141017145613”相关联的信息和具有标识符“1”的传感器节点未能向数据中心发送数据。传感器节点时间戳数据的数据压缩的这种技术或机制可被称为无损压缩,因为可从压缩的数据恢复包括时间戳数据的原始数据集。

在一实施例中,被利用或消耗来存储图7中的表格2的压缩数据集的存储器的量可利用式(2)来计算。消耗的存储器的量被计算为等于14字节(例如,4*2+3*2)。因此,可显著减少被消耗或利用来存储传感器节点时间戳数据的存储器的量。例如,根据上述计算,可确定在压缩与传感器节点时间戳数据相对应的数据集后,消耗的存储器的量可减少大约76.7%。

图8是根据一实施例示出包括传感器节点时间戳数据的压缩数据集的表格的框图。作为示例,考虑包括传感器节点时间戳数据的表格中的记录或条目的数目是341。因此,被利用来存储传感器节点时间戳数据的存储器的总量可被计算为1364字节(例如,记录或条目的数目=341;每个条目或记录消耗的存储器的量是4字节)。可通过压缩传感器节点时间戳数据来减少这种存储器利用或消耗。

在一实施例中,可如前所述(例如,图6和图7的详细描述)压缩与传感器时间戳数据相对应的数据集。作为例示,图8中的表格1示出了与传感器节点时间戳数据相关联的压缩数据集。在一实施例中,如图8的表格1中所示的与传感器节点时间戳数据相对应的压缩数据集对应于“开始时间”802的不同值。表格1还包括与诸如“间隔数目”804、“间隔”806和“传感器节点数目”808之类的相应信息有关的信息。

在一实施例中,被利用或消耗来存储如图8的表格1中所示的压缩数据集的存储器的量可被计算并等于98字节(例如,4*7+4*7+4*7+2*7)。因此,可显著减少被消耗或利用来存储传感器节点时间戳数据的存储器的量。例如,根据上述计算,可确定在压缩与传感器节点时间戳数据相对应的数据集后,消耗的存储器的量可减少大约92.81%。

在一实施例中,可如前所述(例如,图6和图7的详细描述)压缩与传感器时间戳数据相对应的数据集。作为例示,图8中的表格2示出了与“开始时间”810的不同值的传感器节点时间戳数据相关联的压缩数据集。在一实施例中,图8中的表格2示出了包括行索引(例如,“开始行位置”812)的列存储。行索引对应于原始表格中的时间戳的开始位置(例如,图7中的表格1的704)。表格2还包括列存储“间隔”814和“传感器节点数目”816。

在一实施例中,被利用或消耗来存储如图8的表格2中所示的压缩数据集的存储器的量可被计算并等于98字节(例如,4*7+4*7+4*7+2*7)。因此,可显著减少被消耗或利用来存储传感器节点时间戳数据的存储器的量。例如,根据上述计算,可确定在压缩与传感器节点时间戳数据相对应的数据集后,消耗的存储器的量可减少大约92.81%。

在一实施例中,可优化搜索包括传感器节点时间戳数据的压缩数据集的过程。优化搜索的过程可包括利用行索引(例如,开始行索引“Rs”)确定搜索的数据集。例如,考虑如图8的表格1中所示将数据集压缩并存储在内存数据存储库中。作为示例,考虑在图8中的表格1上运行或执行搜索。考虑搜索查询包括对包括时间戳数据“20141017145650”的数据集的搜索。

在一实施例中,数据存储库搜索引擎可处理搜索数据集的查询。在一实施例中,在遍历过压缩的时间戳数据的列存储(图8中的表格1的802)后,数据存储库搜索引擎可确定并选择一行(例如,在图8的表格1中,第4行被选择(示为带阴影的行),因为第4行中的时间戳数据是“20141017145642”并且搜索的时间戳数据是“20141017145650”)。

在一实施例中,用于选择行的业务逻辑可包括对包括时间戳数据的列存储执行二分搜索。二分搜索过程可包括基于时间戳数据确定开始时间。在确定小于或等于搜索的时间戳数据的时间戳数据并且压缩数据中的下一时间戳(图8中的表格1的804)大于搜索的时间戳时,终止二分搜索的过程。

在一实施例中,可基于业务逻辑来确定与搜索的时间戳数据“20141017145650”相对应的开始行索引(“Rs”)。例如,业务逻辑可包括确定被选行之前的行索引。这种行索引可被称为计算前的行索引“Rb”,其可利用下式来确定:

式(4):

在上式中,“i”表示行索引(参考上述示例是第4行);“K”表示被选行之前的行的数目:“Ii”表示“间隔数目”并且“Di”表示“传感器节点数目”。

在一实施例中,业务逻辑还可包括确定被选行内的行索引。这种行索引可被称为被选行内的行索引“Rw”,其可利用下式来确定:

式(5):

在上式中,“T”表示搜索的时间戳数据:“Ts”表示被选的“s”行的时间戳数据;“Ds”表示与被选的“s”行相对应的传感器节点的数目;“TI”表示与被选的“s”行相对应的传感器节点的时间“间隔”。

在一实施例中,“Rs”可利用下式来确定:

式(6):Rs=Rb+Rw

利用以上式子,上述搜索的时间戳数据的“Rs”可被计算为:Rb=122(例如,3*4+10*3+20*4);Rw=24(例如,(20141017145650–20141017145642)/1*3);Rs=146(例如,122+24)。

在一实施例中,由于Ds=3,所以数据存储库搜索引擎可确定与搜索的时间戳数据“20141017145650”相对应的行索引范围是146、147和148(因为传感器节点的数目=Ds=3并且间隔=TI=1毫秒)。

作为示例,考虑可在图8的表格2中搜索时间戳数据“20141017145650”。在一实施例中,在遍历过包括时间戳数据的列存储后,数据存储库搜索引擎可确定并选择一行(例如,在图8的表格2中,第4行被选择(示为带阴影的行),因为第4行中的时间戳数据是“20141017145642”并且搜索的时间戳数据是“20141017145650”)。在图8的表格2的情况中,我们直接得到Rb(图8的表格2的阴影行中的示例值122)并且Rw的计算如上所述(像我们在表格1中所做的那样,图8的情况,例如(20141017145650–20141017145642)/1*3=24)。如上所述,时间戳数据“20141017145650”的行索引范围可被确定为146、147和148(因为传感器节点的数目=Ds=3并且时间间隔=TI=1毫秒)。

传感器节点测量数据的压缩

在一实施例中,包括传感器测量数据的数据集可被压缩并存储在内存数据存储库中。传感器测量数据可包括传感器节点记录的测量。作为示例,传感器测量数据可对应于诸如压力、温度、重量、容量/体积等等之类的测量。在一实施例中,可通过执行传感器测量数据压缩模型(例如,传感器测量数据压缩算法)来压缩包括传感器测量数据的数据集。可利用诸如游程长度编码、聚类编码、字典编码等等之类的压缩技术来压缩传感器测量数据。

在一实施例中,可利用后缀树算法和技术来压缩包括传感器测量数据的数据集(例如,传感器节点标识符数据的压缩)。数据压缩可具有诸如以下优点:减少的数据体量,这可要求更少的主存储器或硬盘容量,减少的数据流,对处理器体系结构、网络带宽的更低需求,等等。

一些实施例可包括被写为一个或多个软件组件的上述方法。这些组件和与每个组件相关联的功能可被客户端、服务器、分布式或对等计算机系统使用。这些组件可以用与诸如函数式语言、声明式语言、过程式语言、面向对象语言、更低级语言等等之类的一个或多个编程语言相对应的计算机语言来编写。它们可经由各种应用编程接口被链接到其他组件,然后被编译成用于服务器或客户端的一个完整应用。或者,这些组件可在服务器和客户端应用中实现。另外,这些组件可经由各种分布式编程协议被链接在一起。一些示例实施例可包括远程过程调用被用于在分布式编程环境上实现这些组件中的一个或多个。例如,逻辑级可存在于第一计算机系统上,该第一计算机系统的位置远离包含界面级(例如,图形用户界面)的第二计算机系统。这些第一和第二计算机系统可按服务器-客户端、对等或一些其他配置来配置。客户端的复杂度可有所不同,从移动和手持设备,到瘦客户端,再到胖客户端,或者甚至其他服务器。

以上例示的软件组件被作为指令有形地存储在计算机可读存储介质上。术语“计算机可读存储介质”应当被理解为包括存储一个或多个指令集合的单个介质或多个介质。术语“计算机可读存储介质”应当被理解为包括任何如下的物理物品:其能够经历一组物理变化来物理地存储、编码或以其他方式携带一组指令以供计算机系统执行,这使得该计算机系统执行本文描述、表示或图示的任何方法或过程步骤。计算机可读存储介质可以是有形计算机可读存储介质。计算机可读存储介质可以是非暂态计算机可读存储介质。非暂态计算机可读存储介质的示例包括但不限于:磁介质,例如硬盘、软盘和磁盘;光介质,例如CD-ROM、DVD和全息设备;磁光介质;以及被特别配置来存储并执行的硬件设备,例如专用集成电路(application-specific integrated circuit,“ASIC”)、可编程逻辑器件(programmable logic device,“PLD”)以及ROM和RAM设备。计算机可读指令的示例包括机器代码,例如由编译器产生的,以及包含由计算机利用解释器执行的更高级别代码的文件。例如,一实施例可利用Java、C++或其他面向对象的编程语言和开发工具来实现。另一实施例可实现在硬连线的电路中,取代机器可读软件指令或者与机器可读软件指令相结合。

图9是根据一实施例的示范性计算机系统900的框图。计算机系统900包括处理器905,该处理器905执行存储在计算机可读存储介质955上的软件指令或代码以执行上文例示的方法。处理器905可包括多个核。计算机系统900包括介质读取器940来从计算机可读存储介质955读取指令并且将指令存储在存储装置910或随机访问存储器(random access memory,RAM)915中。存储装置910提供用于保持静态数据的大空间,在这里至少一些指令可被存储以供以后执行。根据一些实施例,例如一些内存计算系统实施例,RAM 915可具有充分的存储容量来将处理所需的很多数据存储在RAM 915中而不是存储装置910中。在一些实施例中,处理所需的所有数据可被存储在RAM 915中。存储的指令可被进一步编译来生成指令的其他表示并被动态地存储在RAM 915中。处理器905从RAM 915读取指令并根据指令执行动作。根据一个实施例,计算机系统900还包括输出设备925(例如,显示器)来将执行的结果的至少一些作为包括但不限于视觉信息在内的输出提供给用户,并且包括输入设备930来向用户或另一设备提供用于输入数据和/或以其他方式与计算机系统900交互的手段。这些输出设备925和输入设备930的每一者可被一个或多个额外的外设连接以进一步扩展计算机系统900的能力。可提供网络通信器935来将计算机系统900连接到网络950并进而连接到与网络950相连的其他设备,例如包括其他客户端、服务器、数据存储库和接口。计算机系统900的模块经由总线945互连。计算机系统900包括数据源接口920来访问数据源960。可经由以硬件或软件实现的一个或多个抽象层来访问数据源960。例如,数据源960可被网络950访问。在一些实施例中,可经由诸如语义层之类的抽象层来访问数据源960。

数据源是信息资源。数据源包括使能数据存储和检索的数据的来源。数据源可包括数据库,例如关系数据库、事务性数据库、层次性数据库、多维数据库(例如,OLAP)、面向对象的数据库,等等。另外的数据源包括表格式数据(例如,电子数据表、分隔的文本文件)、以标记语言标记的数据(例如,XML数据)、事务性数据、非结构化数据(例如,文本文件、屏幕抓取)、层次性数据(例如,文件系统中的数据、XML数据)、文件、多个报告以及由底层软件系统(例如,ERP系统)产生的通过诸如开放式数据库连通(Open Data Base Connectivity,ODBC)之类的确立的协议可访问的任何其他数据源,等等。数据源也可包括其中数据不被有形存储或者在其他方面为短暂性的数据源,例如数据流、广播数据等等。这些数据源可包括关联的数据基础、语义层、管理系统、安全系统等等。

在以上描述中,记载了许多具体细节以帮助透彻理解实施例。然而,相关领域的技术人员将会认识到,没有这些具体细节中的一个或多个或者利用其他方法、组件、技术等等也可实现实施例。在其他情况中,没有示出或详细描述公知操作或结构。

虽然本文图示和描述的过程包括步骤的系列,但将会明白,不同的实施例不受步骤的图示顺序所限,因为除了本文示出和描述的以外,一些步骤可按不同的顺序发生,一些可与其他步骤同时发生。此外,实现根据一个或多个实施例的方法并不要求所有图示的步骤。另外,将会明白,这些过程可与本文图示和描述的装置和系统关联实现,以及与其他没有图示的系统关联实现。

以上对实施例的描述和图示,包括摘要中描述的那些,并不打算是详尽无遗的或者将一个或多个实施例限制到公开的精确形式。虽然出于例示目的在本文中描述了一个或多个实施例的具体实施例及其示例,但正如相关领域的技术人员将会认识到的,在范围内各种等同修改是可能的。这些修改可按照以上详细描述做出。更确切地说,范围要由所附权利要求来确定,这些权利要求要根据所确立的权利要求构造准则来解释。

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