CN102915346B - 面向物联网智能感知的数据索引建立与查询方法 - Google Patents

面向物联网智能感知的数据索引建立与查询方法 Download PDF

Info

Publication number
CN102915346B
CN102915346B CN201210364724.5A CN201210364724A CN102915346B CN 102915346 B CN102915346 B CN 102915346B CN 201210364724 A CN201210364724 A CN 201210364724A CN 102915346 B CN102915346 B CN 102915346B
Authority
CN
China
Prior art keywords
index
tree
sampled
value
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210364724.5A
Other languages
English (en)
Other versions
CN102915346A (zh
Inventor
丁治明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201210364724.5A priority Critical patent/CN102915346B/zh
Publication of CN102915346A publication Critical patent/CN102915346A/zh
Application granted granted Critical
Publication of CN102915346B publication Critical patent/CN102915346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向物联网智能感知的数据索引建立与查询方法,本方法为:1)数据监控单元进行采样,并存储到物联网的采样数据存储服务器;2)采样数据服务器将同一个监控对象的所有采样值按照采样时间顺序组织在一起,形成该监控对象的采样值序列,并作为一个属性值存放在该监控对象的数据记录中;3)建立一树形结构索引层,对物联网各采样数据存储服务器所存储的监控对象数据记录进行索引;树形结构索引层包括多个索引服务器,其中主结点称为索引主服务器,其他结点称为索引从服务器;树形结构索引层包括全文关键词B+树索引,物联网时空R树索引,采样分量值符号化关键词B+树索引。本发明提供了物联网海量感知数据的实时多模态搜索。

Description

面向物联网智能感知的数据索引建立与查询方法
技术领域
本发明涉及物联网、传感器数据管理、搜索引擎、信息检索等领域,提出了一种能够实时反映采样数据状态动态变化的、支持多种搜索模式(包括关键词搜索、时空搜索、状态值搜索)的物联网搜索引擎方法。
背景技术
物联网是目前国际和国内新兴的一项热门技术。物联网可以将各类物品通过射频识别(RFID)、传感器件与设备、全球定位系统等种种装置与互联网结合起来并形成一个巨大的网络,从而实现智能化的识别和管理,进而实现各类物品的远程感知和控制,由此生成一个更加智慧的生产和生活体系。
物联网广泛适用于智能交通、基础测量、工程测量、国土资源调查、工业监测、地灾监测、环境保护、城市规划、施工建设、政府工作、公共安全、智能消防等多个领域,被公认为是继计算机、互联网与移动通信网之后的世界信息产业第三次浪潮,开发应用前景巨大。据美国权威研究机构Forrester预测,物联网所带来的产业价值要比互联网大30倍,将会形成下一个万亿元级别的信息通信技术业务。
目前,世界各国对物联网都进行了相关的研究,并部署了相应的研究计划。然而,目前物联网的研究与产业化还存在着诸多的局限性,大部分的工作还集中在物联网中单个传感器或小型传感器网络方面(如智能传感器技术、压缩传感技术等),或者集中在物联网硬件和网络层面(如新型网络互连技术、高通量服务器技术等),而对于物联网欲与互联网相比肩所面临的核心问题,即海量异构传感器数据的存储与搜索技术的研究还比较有限。总体上讲,目前的物联网技术尚处于发展的初级阶段。
从搜索引擎的角度来看,虽然目前的搜索引擎技术如目录式搜索、关键词搜索、多媒体搜索、对等搜索、智能搜索等已经比较成熟并获得了非常成功的应用,但它们主要针对静态或慢速变化的、主要由文本信息组成的网页信息,并不适合于数据频繁变化的、涉及多种非文本属性的物联网环境。具体说来,物联网搜索引擎面临的挑战性问题如下:
(1)物联网实时搜索的挑战。物联网环境下的数据主要是传感器及监控设备动态采集的监控数据,这些数据呈现持续变化的动态特征,而传统的搜索引擎一般采用周期性的、缓慢的索引更新方式,因此无法根据监控对象的最新状态搜索到所需要的数据。
(2)物联网时空搜索的挑战。时空特性是物联网数据的一个基本属性,表现为每个采样值都对应于一个采样时间和一个采样地点。因此,时空搜索是物联网搜索的一个重要类型,如“查找所有在t时刻位于污染区域A中的车辆”、“查找所有位于区域G的温度传感器并报告它们的当前状态”等。基于时空条件的搜索并不是简单的关键词匹配,需要在搜索的过程中进行复杂的时空比较和计算。而目前的搜索引擎技术主要是基于关键词匹配完成搜索过程的,因此无法提供对时空搜索的支持;
(3)物联网状态值搜索的挑战。物联网中的传感器采样数据大部分是数值型的,如温度采样值、压力采样值、GPS采样值等。基于状态值的搜索是物联网搜索的另一个重要类型,如“以时刻t和温度值v为参考值,查找所有其采样值与参考值近似的温度传感器”。在基于状态值的搜索中,所查找的结果与给定的参考值t、v之间并不是完全的关键词匹配关系,而是要通过相似度距离的计算,找出靠近参考值的匹配对象。上述基于值的相似度距离的匹配方式,使得传统的基于关键词精确匹配的搜索方法不能满足要求。
为了应对上述挑战,人们已经进行了一些尝试性的工作,但是这些工作还非常的初步,具有诸多的局限。下面进行具体的分析:
(1)目前在实时搜索引擎方面所做的工作,如Snoogle、Microsearch、MAX等实验系统,均是基于传感器所附加的文本信息进行搜索的,不能支持传感器时空搜索和状态值搜索。其原因在于,这些系统所采用的索引仍然是传统搜索引擎系统中所采用的一维关键词索引(通常是B+树),当传感器的文本信息发生变化时,通过对关键词索引进行动态更新,从而实现对传感器信息的实时搜索。在上述实时搜索引擎中,由于没有建立时空索引和基于状态值的索引,因此不能支持时空搜索和状态值搜索。
(2)目前在传感器时空搜索引擎方面所做的工作,还只能支持对查询时刻(即当前时刻)传感器位置的搜索,而不能支持历史位置的搜索。其原因在于,这些搜索引擎中只保留了传感器的当前最新位置,而没有保留其历史位置随时间变化的全过程。在物联网搜索引擎中,仅仅支持当前时刻的位置是不够的,许多时候我们需要针对传感器历史位置进行搜索。例如当发生一起车祸需要寻找目击证人时,就需要针对过去的历史位置信息进行搜索。然而,对历史位置的存储和搜索需要处理三维时空空间(即X×Y×T三维空间,其中X、Y、T分别为经度、纬度、时间的取值域)中的采样点序列,这比单纯地处理二维X×Y平面上的地理位置点要复杂得多,因此增加了搜索引擎的实现难度,导致目前尚没有能够支持历史位置的搜索引擎。
(3)虽然在历史与当前位置的存储与查询方面,可以部分借用移动对象数据库领域的时空轨迹索引方法。但是,时空轨迹索引方法并不能不加改造地应用于物联网环境下传感器历史位置的存储与搜索,其原因在于:移动对象数据库中的时空轨迹对应于X×Y×T空间中的一段曲线,其采集需要移动对象遵循一定的位置跟踪协议、进行相对密集的数据采集,从而保证上述曲线与移动对象的实际位置相符,这在物联网环境下是较难办到的。例如,对于带RFID或条形码标签的监控对象来说,其位置采集是非常稀疏的,如果将相邻采集点之间连接成线段,必将在推算采集点之间的位置时带来很大的误差。在物联网环境下,由于位置信息的采集较为稀疏且并不遵循位置跟踪协议,使得我们在搜索的过程中,只能以实际采集点为准,而不能将采集点连接成时空轨迹,从而导致了目前的移动对象轨迹索引方法不能直接适用于物联网搜索引擎。
(4)在传感器状态值的搜索方面,目前的工作仅能支持传感器当前状态值的搜索,不能支持历史状态值的搜索。其原因在于,这些搜索引擎中只保留了传感器的当前最新状态值,而没有保留其历史采样值随时间变化的全过程。在物联网搜索引擎中,仅仅支持当前时刻的状态是不够的,许多时候我们需要针对传感器历史状态进行搜索,从而实现对物理世界更加智能化的感知。例如为了分析某次化学品泄露事件所造成的影响,就需要对污染区域相关传感器的历史数据进行搜索和分析。然而,对历史状态值的存储和搜索是一个巨大的挑战,因为每个采样值加上时间属性之后,就变成了“采样值×时间”(即V×T)平面中的一个点,使得搜索引擎中大量采用的一维索引方法(如B+树等)不再适用,而必须采用新的索引方法。
综合以上分析可以看出,目前基于物联网智能感知的搜索引擎技术还非常的初步:一方面,大部分实时搜索引擎方面的工作仍然基于传统搜索引擎的关键词搜索方法;另一方面,少量基于时空搜索、状态值搜索的工作仅能支持对当前时刻位置及状态的搜索,远远达不到物联网智能感知的目的。
为了满足物联网智能感知对搜索引擎所提出的新要求,我们在本发明中提出一种实时的、支持时空、状态值及关键词等多种搜索条件的混合搜索引擎方法(简称“RSVK-IoT搜索引擎”)。该方法可以支持物联网环境下多种搜索模式(包括关键词搜索、时空搜索、基于状态值的搜索)的、针对历史及当前采样数据及状态的、实时的搜索。根据详细的文献调研与分析,目前在这方面的相关研究与产品研发均处于空白。
发明内容
针对目前物联网搜索引擎所面临的挑战性问题,本发明提出一种实时的、支持时空、状态值及关键词等多种搜索条件的混合搜索引擎方法(简称为“RSVK-IoT搜索引擎”),目的是为物联网海量感知数据的实时多模态搜索提供一种可行的解决方案。
为了实现上述目的,本发明所采用的技术方案是:
(1)针对关键词搜索方式,在物联网传感器所附带的文本信息(主要包括监控对象的标识及描述信息)的基础上,通过抽词处理,得到全文关键词,并以抽取出的关键词为基础,建立由多个索引服务器组成的、分布式的全文关键词B+树(Full-Text Keyword B+-Tree,简称FTKB+-Tree)索引。与普通搜索引擎中的分布式关键词索引不同,FTKB+-Tree索引将数据记录的标识统一存放在标识数据块中,从而降低了索引树的大小。此外,为了支持实时的关键词搜索,FTKB+-Tree索引是在数据记录的文本信息发生增、删、改等变化时实时地维护的。
(2)针对时空搜索方式,在物联网采样数据的时空属性的基础上,建立包含监控对象过去及当前位置的物联网时空R树(IoT Spatial-Temporal R-Tree,简称ISTR-Tree)索引。其中,对于位置不变的物联网监控对象(这类对象称为静止监控对象),通过空间R树建立其固定位置的索引;对于位置持续动态变化的监控对象(这类对象称为移动监控对象),建立其历史与当前时空位置索引(历史与当前时空位置包含该对象带时间戳的历史与当前采样位置序列)。与移动对象数据库的时空轨迹索引不同,历史与当前时空位置索引针对的是真实的采样位置点,而不是采样点之间的连线,因此更加适合于物联网环境。为了支持实时的时空搜索,上述时空索引是随着数据采集而动态更新的。由于数据采集的频率较高,为了降低索引更新的开销,我们提出格栅概略化的方法,将采样时空点映射成标准格栅单元的中心点,从而摒弃了采样时空点的变化细节,降低了索引更新的频率。
(3)针对状态值搜索方式,在历史及当前采样数据值的基础上,建立采样分量值符号化关键词B+树(Sampling Component Value-Symbolized Keyword B+-Tree,简称SCVSKB+-Tree)索引。由于状态值的搜索是相似度搜索而非精确匹配搜索,我们基于格栅划分,将采样值转换成与格栅单元对应的符号化关键词,并在符号化关键词的基础上建立由多个索引服务器组成的、分布式的B+树索引。这种将带有时间戳的历史采样值转换成符号化关键词、并在此基础上进行关键词匹配的搜索方法是本发明独创的技术。为了支持对状态值的实时搜索,SCVSKB+-Tree索引是随着数据采集而动态更新的。由于格栅单元的粒度较粗,采样值在同一个格栅单元内变化时,其符号化关键词并不变化,因此上述方法可以有效地降低索引更新的频率。
与现有技术相比,本发明的积极效果为:
(1)针对物联网中位置感知的需求,本发明支持对监控对象历史与当前采样位置的实时搜索,突破了现有技术只能支持当前瞬间位置的搜索、或者要求移动对象遵循预定义位置跟踪协议、进行相对密集数据采集的局限;
(2)针对物联网中状态值感知的需求,本发明支持监控对象历史与当前状态值的实时搜索,突破了现有技术只能对当前状态值进行搜索的局限;
(3)针对物联网搜索中对实时性的要求,本发明支持面向多种搜索模式(含关键词搜索、时空搜索、状态值的搜索)的索引动态更新及实时搜索,突破了现有技术只能支持面向关键词的实时搜索的局限。
附图说明
图1是RSVK-IoT搜索引擎的体系结构;
图2是全文关键词B+树(FTKB+-Tree)索引的结构;
图3是物联网时空R树(ISTR-Tree)索引的结构;
图4是移动监控对象格栅概略化时空R树(MOGSSTR-Tree)的结构;
图5是风向分量(winddir)的格栅化及采样值符号化过程示意图;
图6是RSVK-IoT搜索引擎的通用搜索过程图示。
具体实施方式
下面分四个部分具体阐述本发明的主要内容。
1.RSVK-IoT搜索引擎的体系结构
RSVK-IoT搜索引擎的体系结构如图1所示。RSVK-IoT搜索引擎分为三层:传感器与监控设备层、采样数据存储层、索引层。下面对各层的工作机理分别进行说明。
1.1传感器与监控设备层
传感器与监控设备层包含物联网系统所管理的各类传感器及监控设备,这些设备实现对各类物理目标状态的感知与监控。通常情况下,传感器的采样数据是数值型的,如温度传感器、压力传感器、GPS传感器等所获得的数据。但是,RSVK-IoT搜索引擎也允许多媒体设备(如视频监控设备、遥感成像设备、高空成像设备等)接入系统。
多媒体设备所采集的数据是非结构化数据,因此无法对它们包含的内容直接进行搜索。但是,通过多媒体数据分析与识别,可以从这些数据中提取出有意义的信息。例如,通过高速公路入口处获取的车辆照片,可以识别出车辆的牌照号码、车辆型号、颜色、类型等信息;通过设置在机场的摄像头获取的视频图像,可以识别出旅客的性别、身高、年龄、步态特征等信息。上述过程称为多媒体数据的“活化”。活化后得到的数据是文本型的信息,可以从这些文本信息中抽取出关键词,并进而实现针对多媒体数据的关键词搜索。
1.2采样数据存储层
采样数据存储层包含一系列的原始采样数据存储服务器(Raw Sampling Data StorageServer,简称RD-Store),每个RD-Store可以接收和管理大量传感器与监控设备所上传的采样数据。
在采样数据存储层,传感器及监控设备采集的数据是以“原子监控对象(Atomic MonitoredObject,简称监控对象)”为单位进行组织的,而不是以传感器或监控设备为单位。同一个监控对象的所有传感器采样数据按照采样时间顺序组织在一起,形成该监控对象的“采样值序列”,并作为一个属性值存放在该监控对象的数据记录中。
在一般情况下,一个监控对象即对应于一个传感器或监控设备,如太湖中的一个温度传感器可看成是一个监控对象,对应于一个具体的温度监测点,因此太湖中可包含大量的监控对象;又如每个多媒体监控设备也可以看成是一个监控对象。但是,带有身份标签的监控对象则属于例外情况,这类监控对象与传感器设备之间不具有一一对应的关系,如RFID传感器与所监控的带RFID标签的车辆与货物之间并没有固定的对应关系-带有RFID标签的监控对象的采样值序列是由整个系统中的多个RFID传感器所采集的数据汇总而成的;另外,带条形码的监控对象也具有同样的性质。
根据监控对象的位置是否移动,我们可以将它们分为两大类:静止监控对象(如太湖中固定布设的温度传感器、车库中的剩余车位计数器等)和移动监控对象(如GPS传感器、带RFID标签的车辆与货物、公交车或特种车辆上布设的视频监控设备等)。
每个监控对象对应于一个数据记录,该记录存储在某个RD-Store中(该RD-Store称为监控对象的宿主RD-Store)。监控对象的数据记录包含了其某个时间段内所有的采样值,这些值根据采样时间的顺序被组织成一个序列(称为该监控对象的采样值序列)。关于具体的数据存储方法的描述请见第2部分。
1.3索引层
索引层对采样数据存储层中各RD-Store所存储的监控对象数据记录进行索引。由于物联网系统中含有大量的监控对象,因此索引层包含多个索引服务器,这些索引服务器组织成一种树形结构,其中主结点称为索引主服务器,其他结点称为索引从服务器,如图1的上部分所示。
在RSVK-IoT搜索引擎中,一共包含三个索引:全文关键词B+树(Full-Text KeywordB+-Tree,简称FTKB+-Tree)索引、物联网时空R树(IoT Spatial-Temporal R-Tree,简称ISTR-Tree)索引、采样分量值符号化关键词B+树(Sampling Component Value-SymbolizedKeyword B+-Tree,简称SCVSKB+-Tree)索引。这三个索引分别以不同的索引记录组织方式来支持物联网搜索中的不同搜索模式。关于具体的索引组织方法的描述请见第3部分。
2.采样数据存储层中的数据组织方法
在本部分,我们阐述物联网采样数据是如何在RSVK-IoT搜索引擎的采样数据存储层中进行组织的。为了方便讨论,我们设DInstant、DPeriod、DPoint、DRegion、DString分别为时间点、时间段、空间点、空间区域、字符串的取值域。
在RSVK-IoT搜索引擎中,可以接入各种异构的传感器或监控设备。每一种类型的设备所获得的采样数据可以具有不同的数据格式,但它们的共同特点是均具有时空特性:即每个采样数据对应于一个具体的采样时间t和一个具体的采集地点pos。此外,为了实现快速的查询和分析计算,传感器采样数据需要以监控对象为单位进行组织,表现出序列性和动态变化的流式特性。
定义1(物联网采样值)在物联网中,各类传感器与监控设备所采集的单个采样值SamplingValue可以大致分为两大类,即数值型采样值(如温度传感器、压力传感器、GPS传感器、RFID传感器等所采集的数据)和多媒体采样值(如视频监控图像、高空及地质勘探遥感图像、音频监测信号等),它们可以统一地表示为如下格式:
SamplingValue=(t,pos,schema,value)
其中,t∈DInstant∪DPeriod和pos∈DPoint∪DRegion分别是该采样数据所对应的采样时间和采样地点(大多数情况下采样地点pos为一个点,但是当采集值是移动过程中持续一段时间得到的、或者是由遍布某个区域的一群个体汇总产生的(如通过无线传感器网络汇总产生的)时,采样地点pos是一个区域);schema∈DString是采样数据所包含的数据项以及各数据项的数据类型,value∈DString是具体的采样数据值。由于schema和value均可能包含多个分量,因此需要用括号对它们的边界进行划分。
表1给出了几种典型采样数据的例子(设t1~t4和period1分别为时间点和时间段,表示采样时间;point1~point4和region1分别为空间点和空间区域值,表示采样地点;file1~file2分别为多媒体文件。注意GPS传感器获得的经纬度信息已经包含在采样地点(即pos属性)中了,而不用表示在value属性中)。
表1:传感器和监控设备采样值的例子
数值型的采样值可以包含一个或多个分量,其中每个分量描述监控对象物理状态的一个方面。例如,在表1中,温度传感器的采样值包含一个分量:temperature(温度),而风速风向传感器的采样值则包含两个分量:windspeed(风速)和winddir(风向)。分量的值用“采样分量值”进行表示。
定义2(采样分量值)任一采样值(t,pos,schema,value)可以包含一个或多个分量,其中每个采样分量值SamplingComponentValue表示为如下形式:
SamplingComponentValue=(cName:cType,cValue,t)
其中,cName∈DString和cType∈DString分别为该分量的名称及类型,cValue∈DString是该分量的值,t是采样时间。
例如,在表1中,风速风向传感器的采样值所包含的两个采样分量值分别为(windspeed:real,62.5,t3)和(winddir:real,22,t3)。
定义3(采样值序列)在RSVK-IoT搜索引擎中,采样数据是以监控对象为单位存储的,同一个监控对象的历次采样值按照采样时间顺序排列,构成该监控对象的采样值序列SamplingSequence。根据监控对象是否移动,SamplingSequence有两种不同的表示格式:
<格式1>: SamplingSequence = ( schema , ( ( t i , pos i , value i ) ) i = 1 n )
<格式2>: SamplingSequence = ( schema , pos , ( ( t i , value i ) ) i = 1 n )
其中,<格式1>针对移动监控对象,<格式2>针对静止监控对象。在上述表示格式中,schema∈DString描述采样数据所包含的数据项以及各数据项的数据类型,ti∈DInstant∪DPeriod、posi∈DPoint∪DRegion和valuei∈DString分别是第i个采样值的采样时间、采样地点以及实际的采样数值。在<格式2>中,pos∈DPoint∪DRegion,由于静止监控对象的历次采样地点是相同的,因此将它们合并到pos中表示。
定义4(监控对象的数据记录)每个RD-Store可以存储多个监控对象的数据记录,每个监控对象的数据记录ObjectDataRecord表示为如下格式(设DSamplingSequence为采样值序列SamplingSequence的取值域):
ObjectDataRecord=(ObjID,ObjDescript,Samplings,PhyAddr)
其中,ObjID∈DString为监控对象的标识,ObjDescript∈DString为监控对象的文本描述,Samplings∈DSamplingSequence是监控对象的历次采样值所构成的序列;PhyAddr∈DString是多媒体监控设备的物理访问地址,用以直接对相关的监控设备进行访问(对于采样值为数值型的监控对象、RFID或条形码监控对象,其PhyAddr为空)。
在上述ObjectDataRecord的格式描述中,ObjDescript中含有对监控对象的文本描述。如安装在车辆上的GPS监控对象的描述可以包括车辆类型、建造日期、型号、车牌号等。对于多媒体设备,其中ObjDescript除了一般的描述信息之外,还可以包含数据活化所得到的识别信息。对ObjDescript包含的信息经过抽词处理,可以得到关键词并进行索引,从而实现基于关键词的全文搜索。
在RSVK-IoT搜索引擎中的多个RD-Store之间,数据记录可以按照多种方式进行分布,如哈希分布、区域(range)分布、round-robin分布、基于地理位置的分布等。
在每个RD-Store中,为了实现对本地存储的监控对象数据记录的快速存取,可以按照哈希方法进行数据记录存储,或者建立基于ObjID的B+树索引,以实现数据记录的快速访问。
此外,RD-Store在更新数据记录以及接收采样数据的同时,还需要根据预先定义的索引更新条件进行判断,及时触发对索引的更新操作(详细讨论见第3部分)。
3.索引层中的索引组织方法
如前面第1.3小节所述,索引层包含多个索引服务器,这些索引服务器组织成一种树形结构,其中主结点称为索引主服务器,其他结点称为索引从服务器。
在RSVK-IoT搜索引擎中,同时存在三个索引,这三个索引分别对物联网数据的不同属性进行索引,并满足不同类型的搜索要求。此外,这三个索引均随着数据记录的更新以及采样数据的变化而动态更新,从而满足实时性搜索的要求。下面对这三个索引分别进行具体的阐述。
3.1全文关键词B+树
全文关键词B+树(Full-Text Keyword B+-Tree,简称FTKB+-Tree)索引用于对监控对象数据记录中的文本属性(主要包括ObjID及ObjDescript属性)所抽取出来的关键词进行索引,并提供全文关键词搜索的功能。关键词搜索的例子如下:
(例1)“查询传感器X0032的所有采样值”;
(例2)“查询北京气象局布设的所有温度传感器”。
在上述两个搜索中,打下划线的部分为关键词搜索条件。
FTKB+-Tree的结构如图2所示。从图2可以看出,FTKB+-Tree是分布在多个索引服务器上的,因此它是一种分布式的索引。与普通的分布式关键词索引不同,FTKB+-Tree根据关键词对索引记录进行了合并,使得每一个关键词只对应于一个索引记录,而含有该关键词的所有记录的标识均集中存放在标识数据块中。索引层有多个标识数据块,每个标识数据块与一个叶结点索引记录相对应。一个索引服务器的所有标识数据块存放在同一个标识数据文件中。这种方法极大地减少了索引记录的个数,降低了索引树的大小。
FTKB+-Tree索引的结构与B+树很类似,其根结点存储在索引主服务器上,中间结点和叶子结点则位于索引从服务器上。其中,根结点和中间结点的记录格式为<key,serverID,pagePointer>,其中key是相应的关键词,serverID和pagePointer是key所对应的下层子结点所位于的索引从服务器标识及在该服务器上的具体存储地址。
FTKB+-Tree的叶子结点的记录格式为<key,set((rdStoreID,ObjID))>,其中,rdStoreID和ObjID分别是含有关键词key的数据记录所在的RD-Store标识及对应的监控对象标识。由于同一个key值可以重复出现在多个数据记录中,因此需要将(rdStoreID,ObjID)偶对表示成集合的形式(用set符号表示)。为了统一FTKB+-Tree各叶子结点记录的长度,具体的set((rdStoreID,ObjID))数据存储在标识数据块中,而在叶子结点记录中仅存放指向具体标识数据块的指针,如图2所示。
FTKB+-Tree索引中的关键词来自于数据记录中的文本属性,即ObjID属性和ObjDescript属性,其中ObjID属性中的值直接构成关键词,而ObjDescript属性值需要先经过抽词处理,可以得到一个或多个用于索引的关键词。当RSVK-IoT搜索引擎初始建立FTKB+-Tree时,每个RD-Store需要从本地数据记录中的ObjID属性及ObjDescript属性值中提取出全文关键词;RD-Store对每个关键词key生成一条索引记录<key,set((rdStoreID,objID))>,发送给索引层的索引主服务器结点进行处理;索引主服务器收到上述索引记录之后,进行如下判断:如果key在FTKB+-Tree中不存在,则将上述记录作为一个新的索引记录插入到FTKB+-Tree中;如果key已经存在于FTKB+-Tree中了,则只需将上述记录中的set((rdStoreID,objID))合并到对应索引记录的标识数据块中即可。
RD-Store在增、删、改本地数据记录的ObjID属性或ObjDescript属性时,需要实时地发送相关的操作请求给索引主服务器,启动对FTKB+-Tree相应的插入、删除等操作。FTKB+-Tree的插入、删除操作过程与B+树很相似。区别在于索引主服务器只保留FTKB+-Tree的根结点,而其他结点全部均匀地存放在各个索引从服务器中。由于索引是逐渐长大的(初始状态是位于索引主服务器上的空树),每次索引增长导致新的索引结点产生时,索引主服务器就需要对FTKB+-Tree的结点进行重新分布,使得根结点始终位于索引主服务器,而新生成的中间结点或叶子结点则均匀分布于各个索引从服务器中,并通过上层结点记录中的serverID和pagePointer,建立上、下层结点之间的联系。
3.2物联网时空R树索引
3.2.1物联网时空R树索引的总体结构
物联网时空R树索引(IoT Spatial-Temporal R-Tree,简称ISTR-Tree)针对物联网采样数据中的时空属性(包括t属性和pos属性)进行索引,并支持基于时空约束条件的搜索。基于时空约束条件的搜索例子如下:
(例3)“搜索在t1时刻位于区域A的所有救护车”;
(例4)“搜索区域A中部署的所有风力风向传感器”。
在上述搜索例子中,打下划线的为时间和空间搜索条件。
ISTR-Tree索引的结构如图3所示。从图3可以看出,ISTR-Tree是一个两层的、按照地理区域进行分布的分布式索引,其中:
第一层是索引主服务器结点中的地理区域分区表(Geographical Area Partitioning Table,简称GAP-Table)。设RSVK-IoT索引层共含有n个索引从服务器,记为node1,node2,...noden。与此对应,我们将整个物联网应用地理区域G也划分成n个不相交的地理区域,其中每个地理区域与一个索引从服务器相对应。设α(nodei)是nodei所对应的地理区域,则有如下条件成立:
(1)
(2) &cup; i = 1 n &alpha; ( node i ) = G
在RSVK-IoT索引层的索引主服务器结点中,GAP-Table中的记录格式为:<area,nodeID>,其中area为一个地理区域,nodeID是与该区域对应的索引从服务器结点的标识。
第二层是各索引从服务器结点针对本区域的采样值所建立的采样值序列时空索引树(Sampling Sequence Spatial-Temporal Tree,简称S3T-Tree),用以对属于本区域的采样值序列的时空属性进行索引。S3T-Tree实际上包括两个子树:一个静止监控对象空间R树(StaticObject Spatial R-Tree,简称SOSR-Tree)用以对静止监控对象的空间位置进行索引,一个移动监控对象格栅概略化时空R树(Moving Object Grid-Sketched Spatial-Temporal R-Tree,简称MOGSSTR-Tree)用于对移动监控对象随着时间动态变化的、带时间戳的实际采样位置进行索引。
3.2.2静止监控对象的空间位置索引
针对静止监控对象建立的空间R树(SOSR-Tree)索引的叶结点记录格式为<pos,rdStoreID,ObjID>,其中pos∈DPoint∪DRegion是监控对象所处的地理位置,ObjID和rdStoreID分别为监控对象的标识和其数据记录所在的RD-Store标识。在上述叶结点记录的基础上,针对pos属性建立标准的R树,即可得到SOSR-Tree。
对于任一静止监控对象(设其标识为ObjID),其索引记录的建立及维护过程如下:RD-Store在初始建立其数据记录时,需要同时发送一条索引记录<pos,ObjID,rdStoreID>给索引主服务器,由索引主服务器根据GAP-Table将该记录转发给pos所对应的索引从服务器进行索引。在该静止监控对象的整个生存期内,不需要更新其SOSR-Tree索引记录。
3.2.3移动监控对象的格栅概略化时空R树索引
针对移动对象采样值的时空属性所建立的格栅概略化时空R树(MOGSSTR-Tree)要稍微复杂一些,其结构如图4所示。其中,图4(a)描述了一个移动监控对象的历次采样值所对应的时空点序列,图4(b)描述了MOGSSTR-Tree的结构。
从图4(a)可以看出,移动监控对象的数据采样是十分频繁的,而每一个新采样值均对应于一个新的时空点,需要将之反映到时空索引中,才能被搜索引擎搜索到。如果直接以采样值所对应的时空点作为时空索引记录的基本单位,则索引的更新频率将等同于采样数据上传的频率,从而导致巨大的索引更新代价。
为了克服上述问题,我们首先将X×Y×T空间(其中X、Y、T分别为经度、纬度、时间的取值域)划分成粒度较粗的等距格栅。然后,对于每一个采样值,将其对应的时空点映射成它所位于的格栅单元的中心点(采样值对应的格栅中心点称为该采样值的时空格栅映射点)。最后,对各采样值的时空格栅映射点建立R树索引从而得到MOGSSTR-Tree。由于采样值对应的时空点在同一个格栅单元内变化时,其对应的时空格栅映射点保持不变,此时不需要对MOGSSTR-Tree索引进行更新,因此MOGSSTR-Tree有效地降低了索引更新的频率。
MOGSSTR-Tree的总体结构与R树很相似。其根结点及中间结点的记录格式为<mbr,pointer>,其中mbr是最小包容矩形,pointer是指向子结点的指针。MOGSSTR-Tree的叶结点的记录格式为<gmp,set((rdStoreID,ObjID))>,其中gmp是采样值的时空格栅映射点,ObjID和rdStoreID是其采样值的时空格栅映射点中含有gmp的所有移动监控对象的标识及其数据记录所在的RD-Store标识。由于多个移动监控对象的采样值可以映射到同一个时空格栅映射点,因此同一个gmp可以对应于多个数据记录标识所组成的集合。为了统一MOGSSTR-Tree各叶子结点记录的长度,具体的set((rdStoreID,ObjID))数据是存储在标识数据块中的,而在叶子结点记录中仅存放指向具体标识数据块的指针,如图4(b)所示。
MOGSSTR-Tree是在移动监控对象进行数据采样的过程中逐步建立并完善的。对于移动监控对象(设其标识为ObjID),其索引记录的建立及更新过程如下:
(1)在移动对象初始建立时(设移动对象此时的时间和位置分别为t0和(x0,y0)),需要发送一条索引记录(gmp(t0,x0,y0),ObjID,rdStoreID)给索引主服务器,其中函数gmp(t,x,y)返回(t,x,y)所位于的格栅之中心点坐标(即(t,x,y)的时空格栅映射点)。索引主服务器收到该记录后,将根据索引记录中的空间属性进行判断,并将该记录转发给相应的索引从服务器进行MOGSSTR-Tree索引。具体地说,设gmp(t0,x0,y0)在X×Y平面上的投影为pos_gmp,且其地理区域包含pos_gmp的索引从服务器为node_gmp,则索引主服务器需要将该索引记录发送给node_gmp进行索引。索引从服务器node_gmp收到该索引记录之后,将对MOGSSTR-Tree进行判断:如果gmp(t0,x0,y0)在MOGSSTR-Tree中不存在,则将这条索引记录作为新索引记录插入到MOGSSTR-Tree中;如果MOGSSTR-Tree中已经存在gmp(t0,x0,y0)了,则只需要将ObjID,rdStoreID合并到对应叶子结点的标识数据块中即可。
(2)在移动监控对象移动的过程中,移动监控对象不断地将新采样的数据值发送给相应RD-Store进行存储。该RD-Store在接收新采样数据值的同时,需要进行如下判断(设该移动监控对象存储在RD-Store中的最后一个采样值对应的时间和地点分别为tlast和(xlast,ylast),而新采样数据值对应的采样时间与地点分别为t*和(x*,y*)):
如果gmp(tlast,xlast,ylast)=gmp(t*,x*,y*),则表明移动监控对象的轨迹没有跨越上次采样数据所对应的格栅单元,此时不需要对索引进行任何操作;
如果gmp(tlast,xlast,ylast)≠gmp(t*,x*,y*),则表明移动对象的轨迹移动到了一个新的格栅单元,此时RD-Store需要生成一条新的索引记录<gmp(t*,x*,y*),ObjID,rdStoreID>,并随后将该索引记录发送给索引主服务器。索引主服务器收到该索引记录后,将之转发给地理区域与gmp(t*,x*,y*)相交的索引从服务器。该索引从服务器收到这条索引记录之后,将对移动监控对象格栅概略化时空R树(MOGSSTR-Tree)进行判断:如果gmp(t*,x*,y*)在MOGSSTR-Tree中不存在,则将这条索引记录作为新索引记录插入到MOGSSTR-Tree中;如果MOGSSTR-Tree中已经存在gmp(t*,x*,y*)了,则只需要将ObjID,rdStoreID合并到对应叶子结点的标识数据块中即可。
为了避免数据的无限膨胀,RSVK-IoT搜索引擎只保留某个时间段(如三个月内)的采样数据,因此系统将定期删除RD-Store和MOGSSTR-Tree索引中的过时数据。
3.3采样分量值符号化关键词B+树索引
采样分量值符号化关键词B+树(Sampling Component Value-Symbolized Keyword B+-Tree,简称SCVSKB+-Tree)索引对包含在监控对象采样值中的分量值(见第2部分的定义2)进行索引,用于支持基于状态值的搜索,例如:
(例5)“以(时间t1温度值v1)为参考点,查询具有相似采样历史状态的所有温度传感器”。
在上述例子中,打下划线的部分为状态值搜索条件。注意,上述搜索是不能通过精确匹配得到结果的:设v1=51.11,而实际的温度采样值是51.09,二者并不精确匹配;反之,如果用相似度搜索,则二者是可以匹配的。相似度搜索的缺点是如果不借助有效的索引方法,相似度计算就需要在搜索的过程中即时进行,会严重地影响搜索的速度。
为了既拥有关键词匹配的快速性,又支持相似度搜索的功能,我们对采样分量值进行符号化并得到对应的、粒度较粗的关键词,在此基础上建立SCVSKB+-Tree。从结构上看,SCVSKB+-Tree是一个分布式的关键词B+-树,因此其结构与FTKB+-Tree十分相似。区别在于FTKB+-Tree中的关键词是从数据记录的文本属性中抽取的,而SCVSKB+-Tree中的关键词是基于采样分量值的符号化而得到的。
如定义2所述,一个数值型的传感器采样值(t,pos,schema,value)可以包含一个或多个采样分量值,每个采样分量值表示成(cName:cType,cValue,t)的形式,其中cName、cType、cValue、t分别为分量名、分量类型、分量数值、采样时间。为了方便讨论,我们设系统中所有的分量名互不重复(本方法亦可以轻易地扩充到采样值分量名重复的情况,只需对采样值分量建立唯一标识,并用标识代替分量名即可)。
在采样分量值的符号化过程中,我们在本发明中提出一种格栅符号化(Grid-BasedSymbolization)方法。对于每一个分量名(如表1中风速风向传感器采样值的分量名“winddir”,表示风向),其采样值有一个取值范围(如winddir的取值范围可以是0~360,表示风向与正北方向的夹角)。因此,我们可以首先针对每个分量名所对应的T×V平面(其中T为时间域,V是分量采样值的取值范围)划分成等距格栅,格栅单元统一编号成Cell(Tno,Rno)的形式,其中Tno和Vno分别为格栅单元在T轴和V轴上对应的区间序号。同时,将该分量名的格栅划分方法(包括在划分格栅时,T轴和V轴上每一个区间的起点与终点坐标)发送给索引主服务器进行存储。图5给出了针对风速风向传感器采样值的“winddir”分量的T×V平面划分的实例。
随后,RD-Store每次收到一个新的采样分量值cv*=(cName*:cType*,cValue*,t*)时(设采集cv*的监控对象的标识为objID),将根据该分量名的格栅划分方法,将之按照如下方法转换成符号化关键词:首先计算(t*,cValue*)所位于的格栅单元,设其编号为Cell(Tno*,Vno*),根据上述编号,可得到cv*的符号化关键词为symKey*=cName*-Tno*-Vno*。例如,图5中第一个采样分量值对应的格栅为Cell(1,1),因此符号化关键词为“winddir-1-1”;图5中箭头指向的采样分量值对应的格栅为Cell(5,3),因此符号化关键词为“winddir-5-3”。
RD-Store将新收到的采样分量值cv*转换为符号化关键词symKey*之后,需要进行如下判断,以决定需要对SCVSKB+-Tree所执行的操作:
(1)如果cv*是监控对象的第一个分量名为cName*的采样分量值,则RD-Store生成一条索引记录<symKey*,rdStoreID,objID>并将之发送给索引主服务器(其中,rdStoreID是该RD-Store的标识,objID是发送cv*的监控对象的标识)。索引主服务器进行如下判断:如果symKey*在SCVSKB+-Tree中不存在,则将上述记录作为一个新的索引记录插入到SCVSKB+-Tree中;如果symKey*已经存在于SCVSKB+-Tree中了,则只需将上述记录中的(rdStoreID,objID)合并到对应索引记录的标识数据块中即可。
(2)如果cv*不是监控对象的第一个分量名为cName*的采样分量值,设该监控对象已经上传到RD-Store的、分量名为cName*的最后一个采样分量值所对应符号化关键词为symKeylast,则RD-Store需要进行如下判断:
如果symKeylast=symKey*,则不需要对索引进行任何处理(如图5中的第2~4个采样值);
如果symKeylast≠symKey*,则需要生成一条新的索引记录<symKey*,rdStoreID,objID>并将之发送给索引主服务器,索引主服务器收到该记录后,需要对SCVSKB+-Tree索引进行如下操作:如果symKey*在SCVSKB+-Tree中不存在,则将上述记录作为一个新的索引记录插入到SCVSKB+-Tree中;如果symKey*已经存在于SCVSKB+-Tree中了,则只需将上述记录中的(rdStoreID,objID)合并到对应索引记录的标识数据块中即可。例如在处理图5中的第5个采样值时,新生成的符号化关键词为“windspeed-2-2”,该符号化关键词所对应的索引记录需要发送给索引主服务器进行处理。
由于多个监控对象的采样分量值可以被映射到同一个符号化关键词,因此在SCVSKB+-Tree中,叶子结点的记录格式为:<symKey,set((rdStoreID,objID))>,其中set((rdStoreID,objID))同样是存储在标识数据块中的。根结点及中间结点的记录格式为<symKey,serverID,pagePointer>,其中symKey是符号化关键词,serverID和pagePointer是symKey所对应的子结点所位于的索引服务器标识及在该服务器上的具体存储地址。
为了保证搜索的实时性,SCVSKB+-Tree是在数据采样的同时进行维护的。但是由于采用了格栅化的方法,增大了索引记录的粒度,因此SCVSKB+-Tree索引更新的频率远小于数据采集的频率。
当用户提交一个基于状态值的查询时,该查询实际对应于一个采样分量值(cName:cType,cValue,t)。例如,“查询t3时刻前后,风速为63.12左右的所有风力风向传感器”所对应的采样分量值为:(风速:real,63.12,t3)。此时索引主服务器可以进行如下查询处理:
(1)以(t,cValue)为圆心,以预定义的搜索半径值r为半径,确定一个圆形的搜索范围QRange
(2)根据所存储的cName分量的V×T平面(其中T为时间的取值域,V是分量采样值的取值范围)的格栅划分方法,计算出与QRange相交的m(m≥1)个格栅单元cell1,...,cellm,其中每个格栅单元(设其编号为Cell(Tno,Vno)对应的符号化搜索关键词为:cName-Tno-Vno。这样,可以对应地得到m个符号化搜索关键词SymKeyQ1,...SymKeyQm
(3)最后,在SCVSKB+-Tree中对SymKeyQ1,...SymKeyQm逐个进行关键词搜索,并取它们结果的并集作为搜索结果。
通过上述采样值分量的格栅符号化方法,使得采样数值得到了标准化,并使得原本不能通过精确匹配查找出来的采样数据能够通过符号化转换和关键词匹配的方法快速地得到检索。
4.RSVK-IoT搜索引擎中的复合搜索及通用搜索过程
在RSVK-IoT搜索引擎中,所有的搜索请求均发送给索引层的索引主服务器结点进行处理。
在针对物联网数据进行搜索时,通常涉及到多种复合搜索条件,例如:
(例6)“请查找所有t1时刻左右、位于A区域的、温度值为38.21左右的温度传感器”。
上述搜索实际上包含了三类搜索条件:
时空搜索条件:区域A(注意温度传感器是静止监控对象,所以只有空间约束)
状态值搜索条件:(t1,温度38.21)
关键词搜索条件:温度传感器
在处理上述搜索请求时,索引主服务器首先需要对之进行解析,形成由AND、OR、NOT连接的、多个原子搜索组成的复合型布尔检索条件。其中每个原子搜索为关键词搜索、时空搜索、基于状态值的搜索之一。然后,索引主服务器根据不同的搜索类型,逐一执行各原子搜索,每个原子搜索的结果为一个set((rdStoreID,ObjID))型的集合。最后,索引主服务器根据复合型布尔检索条件中的连接谓词对各个原子搜索的结果集合进行交、并、差集合计算,并得到最后结果。在输出搜索结果时,可以根据一定的规则对结果进行排序,并通过rdStoreID和ObjID提取出对应监控对象的ObjDescript属性及PhyAddr属性显示给查询用户,以便用户进行进一步的处理。
图6描述了RSVK-IoT搜索引擎的通用搜索过程。
以上通过实例对本发明进行了详细的描述,本领域的技术人员应当理解,在不超出本发明的精神和实质的范围内,对本发明做出一定的修改和变动,比如对传感器采样数据的具体表示格式进行修改,或对索引的组织方式及搜索过程进行局部修改,仍然可以实现本发明的目的。

Claims (10)

1.一种面向物联网智能感知的数据索引建立与查询方法,其步骤为:
1)数据监控单元对所监控的监控对象进行采样,并将采样值存储到物联网的采样数据存储服务器RD-Store;其中,采样值SamplingValue=(t,pos,schema,value),schema是采样数据所包含的数据项以及各数据项的数据类型,value是具体的采样数据值,t为采样时间,pos为采样地点,schema包含一个或多个分量,value包含一个或多个分量;所述分量的格式为:SamplingComponentValue=(cName:cType,cValue,t);cName∈DString为分量的名称,cType∈DString为分量的类型,cValue∈DString是分量的值;在上述表述中,DString为字符串的取值域;
2)采样数据存储服务器将同一个监控对象的所有采样值按照采样时间顺序组织在一起,形成该监控对象的采样值序列,并作为一个属性值存放在该监控对象的数据记录中;
3)建立一树形结构索引层,用于对物联网各采样数据存储服务器所存储的监控对象数据记录进行索引;所述树形结构索引层包括多个索引服务器,其中主结点称为索引主服务器,其他结点称为索引从服务器;所述树形结构索引层包括全文关键词B+树索引、物联网时空R树索引、采样分量值符号化关键词B+树索引SCVSKB+-Tree;其中,所述采样分量值符号化关键词B+树索引SCVSKB+-Tree的建立方法为:
31)将每一分量名对应的分量值设置一取值范围;
32)将每个分量名所对应的T×V平面划分成等距格栅,格栅单元统一编号成Cell(Tno,Vno)的形式,并将分量名的格栅划分结果发送给索引主服务器进行存储;其中,T为时间域,V是分量值的取值范围,Tno为格栅单元在T轴上对应的区间序号,Vno为格栅单元在V轴上对应的区间序号;
33)RD-Store每收到一个新的采样分量值cv*=(cName*:cType*,cValue*,t*)时,计算其编号并根据编号得到cv*的符号化关键词symKey*;
34)如果cv*是监控对象的第一个分量名为cName*的采样分量值,则RD-Store生成一条索引记录<symKey*,rdStoreID,objID>并将其发送给索引主服务器;如果symKey*在SCVSKB+-Tree中不存在,则索引主服务器将该索引记录作为一个新的索引记录插入到SCVSKB+-Tree中;如果symKey*存在于SCVSKB+-Tree中,则只需将该索引记录中的(rdStoreID,objID)合并到对应索引记录的标识数据块中;其中,rdStoreID是RD-Store的标识,objID是发送cv*的监控对象的标识;
35)如果cv*不是监控对象的第一个分量名为cName*的采样分量值,设该监控对象已上传到RD-Store的最后一个分量名为cName*的采样分量值所对应符号化关键词为symKeylast;如果symKeylast=symKey*,则RD-Store不需要对索引进行处理;如果symKeylast≠symKey*,则生成一条新的索引记录<symKey*,rdStoreID,objID>并将之发送给索引主服务器,如果symKey*在SCVSKB+-Tree中不存在,则索引主服务器将该索引记录作为一个新的索引记录插入到SCVSKB+-Tree中;如果symKey*存在于SCVSKB+-Tree中,则只需将该索引记录中的(rdStoreID,objID)合并到对应索引记录的标识数据块中;
4)索引主服务器接收针对物联网数据的查询,并判断所接收查询的类型,然后,根据查询类型调用相应的索引返回查询结果。
2.如权利要求1所述的方法,其特征在于获取所述符号化关键词symKey*的方法为:RD-Store每收到一个新的采样分量值cv*=(cName*:cType*,cValue*,t*)时,计算(t*,cValue*)所位于的格栅单元,设其编号为Cell(Tno*,Vno*),根据该编号得到cv*的符号化关键词为symKey*=cName*-Tno*-Vno*。
3.如权利要求1或2所述的方法,其特征在于如果监控对象的采样数据为非结构化数据,则对非结构化数据进行信息提取,得到非结构化数据的文本型信息作为该监控对象的采样值。
4.如权利要求1或2所述的方法,其特征在于如果schema或value包含多个分量SamplingComponentValue,则用括号对分量的边界进行划分。
5.如权利要求1所述的方法,其特征在于所述监控对象包括静止监控对象和移动监控对象;移动监控对象的采样值序列格式为: SamplingSequence = ( schem a , ( ( t i , pos i , value i ) ) i = 1 n ) , 静止监控对象的采样值序列格式为: SamplingSequence = ( schem a , pos , ( ( t i , value i ) ) i = 1 n ) ; 其中,i=1…n,n为采样值序列中采样值的总数。
6.如权利要求5所述的方法,其特征在于每一所述采样数据存储服务器存储多个监控对象的数据记录ObjectDataRecord,其数据格式为:ObjectDataRecord=(ObjID,ObjDescript,Samplings,PhyAddr);其中,ObjID∈DString为监控对象的标识,ObjDescript∈DString为监控对象的文本描述,Samplings∈DSamplingSequence是监控对象的历次采样值所构成的序列,DSamplingSequence为采样值序列SamplingSequence的取值域,PhyAddr∈DString是多媒体监控设备的物理访问地址。
7.如权利要求1所述的方法,其特征在于所述全文关键词B+树索引,用于对监控对象数据记录中的文本属性所抽取出来的关键词进行索引;其中,所述全文关键词B+树索引中,根据关键词对索引记录进行合并,使得每一个关键词只对应于一个索引记录,而含有该关键词的所有记录的标识均集中存放在一标识数据块中;所述全文关键词B+树索引中的叶子结点的记录格式为<key,set((rdStoreID,ObjID))>,rdStoreID和ObjID分别是含有关键词key的数据记录所在的RD-Store标识及对应的监控对象标识。
8.如权利要求1所述的方法,其特征在于所述物联网时空R树索引,用于针对物联网采样数据中的时空属性进行索引;其构建方法为:1)在索引主服务器上建立一地理区域分区表,每一地理区域与一索引从服务器对应;2)各索引从服务器针对本区域的采样值建立采样值序列时空索引树S3T-Tree,用以对属于本区域的采样值序列的时空属性进行索引;所述时空索引树S3T-Tree包括一静止监控对象空间R树和一移动监控对象格栅概略化时空R树MOGSSTR-Tree;其中,
静止监控对象空间R树的叶结点记录格式为<pos,rdStoreID,ObjID>,ObjID和rdStoreID分别为监控对象的标识和其数据记录所在的RD-Store标识;
移动监控对象格栅概略化时空R树MOGSSTR-Tree的根结点及中间结点的记录格式为<mbr,pointer>,mbr是最小包容矩形,pointer是指向子结点的指针;叶结点的记录格式为<gmp,set((rdStoreID,ObjID))>,gmp是采样值的时空格栅映射点,ObjID和rdStoreID是其采样值的时空格栅映射点中含有gmp的所有移动监控对象的标识及其数据记录所在的RD-Store标识。
9.如权利要求8所述的方法,其特征在于所述移动监控对象格栅概略化时空R树建立及更新移动监控对象索引记录的方法为:1)在移动对象初始建立时,发送一条索引记录(gmp(t0,x0,y0),ObjID,rdStoreID)给索引主服务器;其中,设移动对象初始的时间和位置分别为t0和(x0,y0),函数gmp(t,x,y)用于返回(t,x,y)所位于的格栅之中心点坐标;索引主服务器根据该索引记录中的空间属性将该记录转发给相应的索引从服务器进行索引;2)在移动监控对象移动过程中,将新采样的数据值发送给相应RD-Store进行存储;RD-Store收到新采样数据值时,如果gmp(tlast,xlast,ylast)=gmp(t*,x*,y*),则不需要对索引进行任何操作;如果gmp(tlast,xlast,ylast)≠gmp(t*,x*,y*),则RD-Store生成一条新的索引记录<gmp(t*,x*,y*),ObjID,rdStoreID>,并将该索引记录经索引主服务器转发给地理区域与gmp(t*,x*,y*)相交的索引从服务器,该索引从服务器收到该索引记录之后对MOGSSTR-Tree进行判断:如果gmp(t*,x*,y*)在MOGSSTR-Tree中不存在,则将这条索引记录作为新索引记录插入到MOGSSTR-Tree中;如果MOGSSTR-Tree中已经存在gmp(t*,x*,y*),则将ObjID,rdStoreID合并到对应叶子结点的标识数据块中;其中新采样数据值对应的采样时间与地点分别为t*和(x*,y*),RD-Store中的最后一个采样值对应的时间和地点分别为tlast和(xlast,ylast)。
10.如权利要求1所述的方法,其特征在于在所述采样分量值符号化关键词B+树索引SCVSKB+-Tree中,叶子结点的记录格式为:<symKey,set((rdStoreID,objID))>,根结点及中间结点的记录格式为<symKey,serverID,pagePointer>;其中,set((rdStoreID,objID))存储在标识数据块中,serverID是符号化关键词symKey所对应的子结点所位于的索引服务器标识,pagePointer是符号化关键词symKey在索引服务器上的具体存储地址。
CN201210364724.5A 2012-09-26 2012-09-26 面向物联网智能感知的数据索引建立与查询方法 Active CN102915346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210364724.5A CN102915346B (zh) 2012-09-26 2012-09-26 面向物联网智能感知的数据索引建立与查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210364724.5A CN102915346B (zh) 2012-09-26 2012-09-26 面向物联网智能感知的数据索引建立与查询方法

Publications (2)

Publication Number Publication Date
CN102915346A CN102915346A (zh) 2013-02-06
CN102915346B true CN102915346B (zh) 2015-07-01

Family

ID=47613713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210364724.5A Active CN102915346B (zh) 2012-09-26 2012-09-26 面向物联网智能感知的数据索引建立与查询方法

Country Status (1)

Country Link
CN (1) CN102915346B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412903B (zh) * 2013-07-31 2017-10-03 无锡安拓思科技有限责任公司 基于兴趣对象预测的物联网实时搜索方法及系统
CN103678577B (zh) * 2013-12-10 2017-10-24 新浪网技术(中国)有限公司 一种数据更新方法及装置
CN104008212B (zh) * 2014-06-23 2017-05-03 中国科学院重庆绿色智能技术研究院 一种地理位置信息相关联的物联网时间序列数据存取方法
EP3163466B1 (en) * 2014-07-31 2018-11-07 Huawei Technologies Co. Ltd. Trajectory data inquiry method and apparatus
US10001759B2 (en) * 2014-08-11 2018-06-19 Qualcomm Incorporated Method and apparatus for automatically generating an events dictionary in an internet of things (IOT) network
CN106126646B (zh) * 2016-06-21 2019-04-23 广州中国科学院计算机网络信息中心 建立物联网智能设备的倒排索引的方法及装置
CN106777060B (zh) * 2016-12-09 2020-05-19 合肥国为电子有限公司 节点式地震仪数据文件管理系统及方法
CN106649722B (zh) * 2016-12-23 2020-09-08 郑州天迈科技股份有限公司 一种监控系统高频数据的存储及查询方法
CN106998436B (zh) * 2017-03-24 2020-09-01 浙江宇视科技有限公司 录像备份方法及装置
JP6351890B1 (ja) * 2017-05-18 2018-07-04 三菱電機株式会社 検索装置、秘匿検索システム及び検索プログラム
CN108053863B (zh) * 2017-12-22 2020-09-11 中国人民解放军第三军医大学第一附属医院 适合大小文件的海量医疗数据存储系统及数据存储方法
CN108664662B (zh) * 2018-05-22 2021-08-31 上海交通大学 时间旅行和时态聚合查询处理方法
CN110766102B (zh) * 2018-07-26 2021-04-27 杭州海康威视数字技术股份有限公司 一种确定驻留时长的方法、装置、设备及存储介质
CN109460423B (zh) * 2018-10-18 2021-07-27 浙江工业大学 一种基于d-hs的低碳相似实例检索方法
CN109726315A (zh) * 2018-10-24 2019-05-07 阿里巴巴集团控股有限公司 数据查询方法、装置、计算设备及存储介质
CN110069463B (zh) * 2019-03-12 2021-07-16 北京奇艺世纪科技有限公司 用户行为处理方法、装置电子设备及存储介质
CN112989130A (zh) * 2019-03-28 2021-06-18 北京忆芯科技有限公司 B+树操作装置
CN110188856B (zh) * 2019-05-30 2022-07-22 湖南舞龙软件开发有限公司 一种环境质量监测采样标签的自动生成方法及系统
CN111401577A (zh) * 2020-02-14 2020-07-10 上海电气分布式能源科技有限公司 设备管理方法、装置、设备及存储介质
CN111597198A (zh) * 2020-04-01 2020-08-28 北京邮电大学 一种对于异构资源接入的物联网数据查询方法及相关设备
CN112199449B (zh) * 2020-09-23 2021-09-14 况客科技(北京)有限公司 数据处理系统
CN112286933B (zh) * 2020-10-28 2021-09-14 况客科技(北京)有限公司 数据处理系统
CN114241808B (zh) * 2022-02-22 2022-05-24 科大天工智能装备技术(天津)有限公司 共享车位的树形索引的构建、分配方法、设备及存储介质
CN114615306B (zh) * 2022-05-10 2022-07-29 中南林业科技大学 物联网中汇聚节点的高效文件系统及其处理方法
CN115905124B (zh) * 2022-11-03 2024-04-30 昆易电子科技(上海)有限公司 多类型数据文件的回放方法、装置、设备、介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651020A (zh) * 2012-03-31 2012-08-29 中国科学院软件研究所 一种海量传感器数据存储与查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156107B2 (en) * 2007-02-02 2012-04-10 Teradata Us, Inc. System and method for join-partitioning for local computability of query over shared-nothing clusters

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651020A (zh) * 2012-03-31 2012-08-29 中国科学院软件研究所 一种海量传感器数据存储与查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向物联网海量传感器采样数据管理的数据库集群系统框架;1-10;《计算机学报》;20120630;第35卷(第6期);第1175-1191页 *

Also Published As

Publication number Publication date
CN102915346A (zh) 2013-02-06

Similar Documents

Publication Publication Date Title
CN102915346B (zh) 面向物联网智能感知的数据索引建立与查询方法
CN102651020B (zh) 一种海量传感器数据存储与查询方法
Qin et al. When things matter: A survey on data-centric internet of things
US6611751B2 (en) Method and apparatus for providing location based data services
CN103116657B (zh) 一种网络教学资源的个性化搜索方法
CN105426491A (zh) 一种时空地理大数据的检索方法及系统
Wang et al. A flexible spatio-temporal indexing scheme for large-scale GPS track retrieval
Ding et al. A hybrid search engine framework for the internet of things based on spatial-temporal, value-based, and keyword-based conditions
CN105574698A (zh) 基于大数据下的智能仓储管理系统
CN112527944A (zh) 基于bim和gis数据集成构建空间语义数据库的方法
CN103412903B (zh) 基于兴趣对象预测的物联网实时搜索方法及系统
Ding et al. SeaCloudDM: a database cluster framework for managing and querying massive heterogeneous sensor sampling data
CN102263800A (zh) 基于云计算构建的地理信息物联网系统及应用
Ding et al. Massive heterogeneous sensor data management in the Internet of Things
Ochian et al. Big data search for environmental telemetry
Dawes et al. Sensor metadata management and its application in collaborative environmental research
Zhou et al. Enabling query of frequently updated data from mobile sensing sources
Pant et al. A survey of spatio-temporal database research
Ladner et al. Mining Spatio-Temporal Information Systems
Rehman et al. Building socially-enabled event-enriched maps
CN102571427B (zh) 一种分布式系统中cim资源命名及解析方法
CN107038203A (zh) 物联网感知数据“溯源‑矢量”的分层存储机制
Karabegovic et al. Geoportal as interface for data warehouse and business intelligence information system
CN111475595A (zh) 地理信息共享系统
CN113032504A (zh) 村镇社区公共服务时空数据汇聚方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant