面向物联网海量传感器采样数据管理的数据库集群系统框架
更新时间:2023-07-26 00:44:01 阅读量: 实用文档 文档下载
第35卷 第6期2012年6月
计 算 机 学 报
CHINESEJOURNALOFCOMPUTERS
Vol.35No.6
June2012
面向物联网海量传感器采样数据管理的
数据库集群系统框架
丁治明 高 需
1)
,1)2)
1)(中国科学院软件研究所基础软件国家工程研究中心
)00190 北京 1
2)()中国科学院研究生院 北京 100049
摘 要 物联网是目前国际和国内新兴的一项热门技术,正在给人们的生产和生活方式带来深刻的变革.物联网在带来诸多好处的同时,也给软件乃至整个信息技术领域带来了前所未有的挑战.该文针对物联网传感器采样数据管理中所面临的数据海量性、异构性、时空敏感性、动态流式特性等问题,提出一种面向物联网海量传感器采样数据管理的数据库集群系统框架I实验结果表明,oT-ClusterDB.IoT-ClusterDB具有良好的传感器数据接入与查询处理性能,为物联网海量异构传感器采样数据的存储与查询处理提供了一种可行的解决方案.关键词 物联网;传感器;时空数据;海量数据管理;数据库集群系统/中图法分类号TP311 DOI号:10.3724SP.J.1016.2012.01175
ADatabaseClusterSstemFrameworkfor y
ManainMassiveSensorSamlinDataintheInternetofThins ggpgg
11
DINGZhiinXu -M g GAO
1)(
)),2)
)NationalFundamentalSotwareResearch Center,InstituteoSotware,ChineseAcademoSciences,Beiin00190 ff fyf jg 1
2)()GraduateUniversitoChineseAcademoSciences,Beiin00049 yf yf jg 1
,AbstractnrecenttheInternetofThins(IoT)hasbecomeincreasinlimortantandisears I ggypy
,chaninthewahowliveandwork.IoThasalotofbenefitsandmeanwhileitalsoeole ggypp
,wbrinsaboutreatchallenestothesoftwareandthewholeITcommunit.Inthisaere gggypp
,mainlfocusonthechallenesinIoTdatamanaement.InIoTsstemsthedatasamledfrom yggyp
,sensorsaremassiveandheteroeneous.Besidesthearesatialtemoralanddnamicallchan - -gyppyy ,streamdata.TomeetthesechallenesweanIoTDatabaseClusterSstemFrameinroose -gyggpp
workforManainMassiveSensorSamlinData(IoT-ClusterDB)inthisaer.Theexeri -ggpgppp
uerrocessmentalresultsshowthatIoT-ClusterDBhassatisfactorsensordatauloadinand -qypypg
erformancesrovidesooduerininandthusasolutionformanainandmassivesensor ppgqygggg intheInternetofThins.data g;;;m;KewordsnternetofThinssensorsatialtemoraldataassivedatamanaementdata I - -gppgybaseclustersstem y
[]
在1简单来讲就是把各类物品通999年提出的1-2,
1 引 言
,物联网(的概念是TheInternetofThinsIoT) g
、传感器件与设备、全球定位系过射频识别(RFID)统等种种装置与互联网结合起来而形成一个巨大的实现智能化的识别与管理,进而实现各类物品网络,
;收稿日期:最终修改稿收到日期:本课题得到国家自然科学基金重大研究计划·重点支持项目“面向非常规突发2011082620120412.----()事件主动感知与应急指挥的物联网技术与系统”资助.丁治明,男,博士,研究员,博士生导师,主要研究领域为数911240011966年生,:据库与知识库系统、时态与空间数据库、物联网与云计算数据管理.高 需,男,博士研究生,讲E-mailzhiminiscas.ac.cn.1980年生,@g主要研究方向为数据库与知识库系统、时态与空间数据库.师,
1176
计 算 机 学 报2012年
的远程感知和控制,由此生成一个更加智慧的生产和生活体系.
目前,物联网已经成为一个新的技术热点,得然而,物到了世界各国研究者和产业界的广泛关注.联网的研究与产业化还存在着诸多局限,大部分的工作还集中在物联网中单个传感器或小型传感器网,络方面(如智能传感器技术、压缩传感技术等)或者集中在物联网硬件和网络层面(如新型网络互连技
[]37-
,高通量服务器技术等)而对于物联网欲与互术、
传感器、生物医学类传感器等,其中每一类传感器又包括诸多具体的传感器,如交通类传感器可以细分为G车牌识别传感器、电PS传感器、RFID传感器、交通流量传感器(红外、线子照相身份识别传感器、
、圈、光学、视频传感器)路况传感器、车况传感器等.这些传感器不仅结构和功能不同,而且所采集的数这种异构性极大地提高了软件开发据也是异构的.和数据处理的难度.
()物联网数据的时空相关性.与普通互联网3
结点不同,物联网中的传感器结点普遍存在着空间——每个传感器结点都有地理位置,和时间属性—每个数据采样值都有时间属性,而且许多传感器结点的地理位置还是随着时间的变化而连续移动的,如每个车辆安装了高精度的G智能交通系统中,PS或在交通网络中动态地移动.与物联网数RFID标签,
物联网应用中对传感器数据的时空相关性相对应,
据的查询也并不仅仅局限于关键字查询.很多时候,我们需要基于复杂的逻辑约束条件进行查询,如查询某个指定地理区域中所有地质类传感器在规定时间段内所采集的数据,并对它们进行统计分析.由此对物联网数据的空间与时间属性进行智能化可见,
的管理与分析处理是至关重要的.
()物联网数据的序列性与动态流式特性.在4
物联网系统中,要查询某个监控对象在某一时刻的物理状态是不能简单地通过对时间点的关键字匹配这是因为采样过程是间断进行的,查询时来完成的,
间与某个采样时间正好匹配的概率极低.为了有效地进行查询处理,需要将同一个监控对象的历次采样数据组合成一个采样数据序列,并通过插值计算的方式得到监控对象在指定时刻的物理状态.采样数据序列反映了监控对象的状态随时间变化的完整过程,因此包含比单个采样值丰富得多的信息.此——外,采样数据序列表现出明显的动态流式特性—随着新采样值的不断到来和过时采样值的不断淘汰,采样数据序列是不断的动态变化的.
针对物联网海量数据管理所面临的上述挑战,目前尚没有有效的解决方法.在海量数据处理方面,最有效的方法之一是云数据管理技术,但几乎所有的云数据管理系统均为“键-值”数据库,即按照主关键字对数据进行分布组织和查询处理.这种方法无法有效地支持对传感器采样数据的时空查询处理.另一种海量数据管理方法是并行数据库技术,通过将多个关系数据库组织成数据库集群来支持海量结构化数据的处理,但这种方法在处理关键字查询时
即海量异构传感器联网相比肩所面临的核心问题,
数据的存储与查询处理、大量传感器的智能分析与协同工作、复杂事件的自动探测与有效应对等技术的研究还比较有限.
在物联网系统中,对传感器海量采样数据的集中存储与查询处理是十分重要的.通过对海量传感用户不仅可以直接在数据器采样数据的集中管理,
中心获得任一传感器的历史与当前状态,而且通过可以实现复杂事对集中存放的群体数据进行分析,
此外,传感器采样数据的集中管理件与规律的感知.
)、还使得物物互联(基于物的搜索引WebofThins g传感器采样数据的统计分析与数据挖掘等成为擎、可能.
在传感器采样数据的集中管理系统中,大量的传感器结点根据预先制定的采样及传输规则,不断地向从而形成海量的异构数数据中心传递所采集的数据,
数据中心不仅需要正确地理解这些数据,而且据流.
需要及时地分析和处理这些数据,进而实现有效的感知和控制.通过分析我们不难看出,物联网的以下4个特点对数据处理技术形成了巨大的挑战:
()物联网数据的海量性.物联网系统通常包1含着海量的传感器结点.其中,大部分传感器(如温度传感器、压力传感器等)的采样数据GPS传感器、是数值型的,但也有许多传感器的采样值是多媒体如交通摄像头视频数据、音频传感器采样数数据(
据、遥感成像数据等)每一个传感器均频繁地产生.新的采样数据,系统不仅需要存储这些采样数据的最新版本,而且在多数情况下,还需要存储某个时间段(如1个月)内所有的历史采样值,以满足溯源处理和复杂数据分析的需要.可以想象,上述数据是海量的,对它们的存储、传输、查询以及分析处理将是一个前所未有的挑战.
()传感器结点及采样数据的异构性.在同一2
个物联网系统中,可以包含形形色色的传感器,如交通类传感器、水文类传感器、地质类传感器、气象类
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1177
的性能要远低于“键-值”数据库;此外,由于采用了严格的事务处理机制,在传感器采样数据频繁更新的条件下,并行数据库的数据处理效率十分低下.
在传感器采样数据的表示方面,最自然的想法是采用时空数据库的有关方法.但是,传感器采样数据除了时空属性之外,还包含物理目标的种种其它,如温度、压力、交通流密度、速度等)如何对这属性(
些异构的物理属性进行统一的表示是目前尚未解决此外,目前的时空数据库方法主要针对单个的问题.
在大规模时空数据库集群方面尚没有数据库结点,有效的解决方案.
针对上述问题,本文提出一种“面向物联网海量(传感器采样数据管理的数据库集群系统框架”IoTClusterSstemFrameworkforManainDatabase ygg
,在MassiveSensorSamlinDataIoT-ClusterDB). pg 同一个监控对象的历次传感器IoT-ClusterDB中,
采样值被组织成采样数据序列进行存储,通过查询可以支持对传感器采样数据的复操作及时空计算,
此外,杂逻辑条件查询.IoT-ClusterDB是一个由大量数据库组成的分布式系统,通过建立分布式的全局关键字索引和全局时空索引,IoT-ClusterDB可以支持高效率的关键字查询和时空查询.
本文第2节综述物联网海量数据管理方面的相关工作;第3节阐述IoT-ClusterDB的体系结构及第4节和第5节分别阐述I其核心工作机理;oT-第6ClusterDB的单个结点及集群系统的组织方法;节讨论系统的实现与实验结果;第7节给出相关结论.
析查询等,这类查询往往需要对大面积的传感器进行反复的扫描,因此查询处理会涉及密集的远程访问,带来庞大的通信开销,抵消了本地数据采集不需要进行通信传输的好处.
()物联网系统中通常会涉及多种异构的传感2
器类型,通过模型转换的方式不仅表示能力有限,而导致查询处理的且模型转换需要额外的计算开销,效率较为低下.
()物联网中通常需要存储长时间的历史与当3
以满足溯源处理和统计分析的需要,而前采样数据,
传感器和S难以ink结点的存储能力是相对有限的,满足长时间采样数据存储的要求.
鉴于分布式存储方式的上述局限,近年来越来在集越多的研究转向了集中式的传感器数据管理.中式数据管理系统中,各传感器按照一定的采样规将所采集的数据上传到数据中心进行统一的存则,
储管理,使得查询处理可以直接在数据中心完成,而不需要给传感器或Sink结点带来额外的计算与通由于数据中心具有相对强大得多的存储与信开销.
计算能力,因此这种方式可以支持各种复杂的、密集更加适合于物联网的相关应用环境.型的查询,
在集中式的传感器数据处理方面,最直接的方
]1316-
法是采用云数据管理及其相关技术[云计算是.
最近几年新兴的一个技术领域,其核心特点是通过动态管理几万台、几十万台甚至上百一种协同机制,
并按需分配万台计算机资源所具有的总处理能力,
给全球用户,使它们可以在此之上构建稳定而快速的存储以及其它I因此为物联网海量数据T服务,处理提供了一种可能.然而,目前绝大多数的云数
[7]
、据管理系统属于“键-值”数据库,如Bitable1g
[8][9][0][1]
、、、等(少Dnamo1HBase1PNUTS2HIVE2y
2 相关工作
在传感器采样数据的存储与查询处理方面,传统的方法主要是分布式的存储方法.分布式存储方
]810-
是指将采样数据直接存储在各传感器结点,法[
量的云数据库系统采用下面将讨论的并行数据库技
[2]
“术,如S等)键-值”数据库能够高效QLAzure2.
但不能有效地支持物地处理基于主关键字的查询,
联网数据的时空关系表示与存储、时空逻辑条件查询以及属性约束条件查询等.
另一种集中式的传感器数据管理方法是采用并
]2325-
行数据库技术[并行数据库通过将多个关系数.
或者存放在S查询处理时再通过远程访问ink节点,获取数据.如果查询涉及到不同的传感器网络,则需要通过中间件来进行模型转换,进而实现异构传感
]1112-
器网络之间的互操作[上述方法的好处是:由于.
传感器数据直接存储在本地或就近的S因ink结点,此避免了数据存储时的传输通信开销.但是,上述方式并不适合于以密集复杂查询和异构数据集成为特征的大规模物联网环境,原因如下:
()物联网系统中通常涉及密集型的复杂查询1处理,如时空约束条件查询、群体数据查询、统计分
据库组织成数据库集群来支持海量结构化数据的处理,但这种方法在处理关键字查询时的性能要远低于“键-值”数据库,无法根据传感器的标识快速地检索到所需要的数据.此外,由于采用了严格的分布式事务处理机制(如两阶段提交协议、数据加锁协议,等)在传感器采样数据频繁上传和更新的情况下,
1178
计 算 机 学 报2012年
数据处理的效率十分低下.最后,传统的并行数据库技术主要针对通用的数据类型,尚不能有效地支持物联网中传感器时空相关数据的并行存储与查询处理.
]文献[讨论了传感器数据中心(的数据26SDC)复制与负载均衡问题.作者虽然对集中式传感器数据中心的最终目标进行了描述,但是目前的研究还所给出的S比较初步.DC框架是直接建立在计算机集群上的,而不是通过数据库集群的方式,因此没有全局索引、全解决传感器异构时空数据的表示模型、局查询机制等关键技术问题.
在异构传感器采样数据的统一表示方法方面,最直接的思路是采用空间数据库及时空数据库的有
]2728-
,关方法[解决传感器数据的异构性和时空相关
的时空数据库集群方面的研究尚处于空白.
从数据流处理的角度来看,虽然物联网传感器采样数据表现出动态上传的流式特性,但是其处理目前的绝方法与流数据管理技术有着根本的不同:
[9][0]
、、大多数流数据库,如TelerahCQ2Giascoe3gpgp[1][32]
、等,主要解决如何在数据流SstemS3NetFli -y
实时地解析出查询结果(通常针对相到来的过程中,
对简单的查询,如查找某个特定的数据项或序列模,数据库内并不存储长时间的历史数据;而物式等)
并在此基础上联网中需要保存长时间的历史数据,实现复杂和灵活得多的查询处理.
综合以上分析可以看出,针对物联网中传感器采样数据管理所面临的海量性、异构性、时空相关性目前尚没有成熟的解决方及动态流式特性等挑战,
案,需要有针对性地进行专门的研究.
但是,传感器采样数据除了时空属性之外,性问题.
还包含物理对象的种种其它属性(如温度、压力、交,速度等)如何对这些异构的物理属性进通流密度、
行统一的表示是目前尚未解决的问题.此外,空间数而时空数据库虽然据库主要面向静态的空间对象,
,如时空轨迹数据)但目可以处理动态上传的数据(
前的研究主要针对单个时空数据库结点,在大规模
3 IoTClusterDB的系统结构-
在本节,我们描述IoT-ClusterDB的体系结构()见图1与工作机理
.
图1 IoT-ClusterDB的体系结构
IoT-ClusterDB是由多个传感器时空 如图1所示,
数据库结点(IoTSensorSatialemoralDataBase -T pp,所组成的一个数据库集群.在NodeIoT-NodeDB)
并不是原封不动地存放所有的IoT-ClusterDB中,传感器采样数据,而是只存放数值型的关键采样数据.为此,系统需要通过传感器接入处理器对数据进此外,原始的传感器采样数据也保存在各行预处理.
个传感器接入处理器中,以满足溯源处理的要求.
从层次划分的角度来看,传感器接入处理器位因此对各种传感器网络本身于传感器网络层之上,
的数据采集、通信模式没有特殊要求,从而增加了整个系统的灵活性和可扩充性.
3.1 传感器的接入与预处理
在I允许接入的监控设备包oT-ClusterDB中,括物联网系统中所管理的各类传感器设备、视频与音频监控设备、部署在某个区域的无线传感器网络(等.此外,WSN)IoT-ClusterDB还允许以人工的方式输入感知数据.所有这些方式获得的数据,我们均传感器采样数据”统一地称之为“.
通常情况下,传感器的采样数据是数值型的,如温度传感器、压力传感器、无线传感器GPS传感器、但是,网络等所获得的数据.IoT-ClusterDB也允许多媒体设备(如视频监控设备、遥感成像设备、高空成像设备等)接入系统,通过相应的多媒体分析,可
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1179
以从这些设备所获得的多媒体数据(如交通摄像头采集的视频数据流)中提取出有意义的数值型数据(如道路交通流的平均速度、车辆密度、交通流量因此,多媒体设备连同传感器接入处理器(见等).)图2中相应的多媒体分析模块,可以达到与普通传感器一样的效果,所以在本文中我们也将它们统一地纳入传感器的范畴.
通过上述分析可以看出,本文所说的“传感器数事实上是一个广义的概念,包括任意类型带有时据”
反映物理世界状态的数据.例如,在发生空特性的、
每一个病例登记即可看成一个传感SARS疫情时,
器采样数据,该数据反映了病例发生的时间、地点、规模等信息.又如,在大面积布设的WS系统N中,本身即可根据多个传感器个体的采样值获得汇总数,据(如污染带的面积、位置等)这些汇总数据也可以在这种情况下,可以将整个看成传感器采样数据(
而不需要对其中的单个传WSN看成一个传感器,感器进行管理).
传感器将采样数据上传给传感器接入处理器(,的方式可分为SensorConnectinProcessorSCP) g
主动上传与被动上传.其中,主动上传是根据两种:
预先定义的条件,由传感器自身进行计算和判断,只有当规定的条件满足时才上传数据,这种方式具有较好的数据传输效率,但需要传感器具备一定的计而被动上传则是以一定的频率周期性地上传算能力;
这种方式虽然具有较大的通信代价,但对传感数据,
器的计算能力要求很小,因此也得到了广泛的应用.
在I传感器采样数据是以“原oT-ClusterDB中,)”子监控对象(为单位进行atomicmonitoredobect j组织的,而不是以传感器为单位.同一个监控对象的所有传感器采样值按照时间序列组织在一起,形成,该监控对象的“采样数据序列”并作为一个属性存放在该监控对象的元组记录中.
在绝大多数情况下,一个监控对象即对应于一个传感器(如太湖中的一个温度传感器可看成是一个监控对象,对应于一个具体的温度监测点,因此太;湖中可包含大量的监控对象)但某些时候两者并不具有一一对应的关系,例如RFID传感器与所监控——带有的车辆或货物之间并没有固定的对应关系—RFID标签的监控对象的采样数据序列是由整个系统中的多个RFID传感器所采集的数据汇总而成的.
根据监控对象的位置是否移动,我们可以将它们分为两大类:静止监控对象(如太湖中固定布设的温度传感器、车库中的剩余车位计数器、无线传感器网络
等)和移动监控对象(如带G条形码的PS、RFID标签、车辆与货物、浮动车上布设的视频交通流传感器等).
传感器接入处理器可以实现大量传感器的接实现对传感器原始采样数据的分析、过滤与转入,
换,完成原始采样数据的本地存储,并将处理后的数值型关键采样数据上传到IoT-ClusterDB数据库集传感器接入处理器分担了整群中做进一步的处理.
个系统的很大一部分数据处理与存储任务,使得带有语义信IoT-ClusterDB只需处理相对较少的、图2给出了传感器接入息的数值型关键采样数据.处理器的工作过程
.
图2 传感器接入处理器的主要工作过程
如图2所示,传感器接入处理器的主要工作过程如下:
()非数值型采样数据的数值化.对于多媒体1
原始采样数据,传感器接入处理器需要进行相关的获得能够反映监控对象物理状态多媒体数据分析,
的数值型导出数据,如通过对交通摄像头视频图像的分析,可以提取出监控地点的车辆密度、平均车速、交通流量等参数信息;通过对高空遥感图像的分析,可以提取出污染区域及火灾区域的地理几何形状等空间数据信息.
()密集采集数据的稀疏化.无论是通过多媒2
体数据分析所获得的数值型导出数据,还是直接从它们仍然存在传感器获得的数值型原始采样数据,
如果将这些数据全部传入着采样频率过高的缺陷.
则会导致数据中心数据IoT-ClusterDB进行管理,量的急剧膨胀.为此,传感器接入处理器需要通过关键数据的提取操作,从原始数据流中抽取出能够反映监控目标物理状态变化的关键采样数据,仅将关键采样数据上传给IoT-ClusterDB进行处理.
1180
计 算 机 学 报2012年
在关键数据的提取方面,一种简单的方法是基——对于每一于状态变化阈值的关键数据提取方法—
种传感器可以定义一个状态变化阈值,如果新的采样数据与上次上传的关键采样数据之间的差值没有则不需要进行任何处理;仅当它们之间超过该阈值,
的差值超过规定的阈值时,新的采样数据才成为需此外,我们还可以采取其它要上传的关键采样数据.
的更加智能化的数据提取方法,在保证关键数据上过滤掉大量的冗余数据(注意,如果传传的前提下,
则采样数据已经进行了感器采用主动上传的方式,
稀疏化处理,SCP不需要再进行相应的处理).()条形码阅读器采样数据的提取.对于3RFID、
条形码阅读器等所采集的数据,传感RFID传感器、
并器接入处理器需要提取出移动监控对象的标识,连同相关的采样时间与采样地点组成采样记录,然后将该采样记录发送给IoT-ClusterDB进行处理.来自于IoT-ClusterDB将同一个移动监控对象的、不同RFID传感器或条形码阅读器的采样数据集中可以获得该监控对象的采样数据序列,该数据起来,
序列反映了其完整的时空移动过程.
()原始采样数据的存储.对于具有保留价值4
的原始采样数据(如视频监控多媒体数据、油库温度原始采样数据等)也由传感器接入处理器进行存储管理.在I每个监控对象的元组数oT-ClusterDB中,据中均含有存储该对象的原始采样数据的SCP标通过这些标识,查询用户可以连接到相应的识,
并通过相应的数据访问接口检索和回放完整SCP,的历史与当前原始采样数据.3.2 IoTClusterDB数据库集群-
IoT-ClusterDB数据库集群是由大量的同构传感器时空数据库结点I每个oT-NodeDB所组成的,IoT-NodeDB可以对各类异构的传感器采样数据进行统一化的管理.在I数据是以监控oT-NodeDB中,——每个监控对象对应于一对象为单位进行管理的—
个元组,该监控对象的所有关键采样数据存放在一起构成一个采样数据序列,并作为一个属性值存放在该元组中.此外,每个监控对象的元组中还包含存放原始采样数据的S使得各个传感器接入CP标识,处理器与IoT-ClusterDB能够分担系统的计算与存储任务并协同工作.
在I大量的IoT-ClusterDB数据库集群中,oT-其中叶结点存储实NodeDB被组成双层树形结构,际的传感器采样数据,而根结点则存储为了进行全局查询所需要的全局数据字典.所有的查询均提交
给根结点,根结点通过全局查询处理模块,实现对查询的全局处理.在I通过建立分布oT-ClusterDB中,式的全局关键字索引和全局时空索引,整个系统可时空查询以及复杂以同时支持快速的关键字查询、的逻辑条件约束查询.
4 传感器时空数据库模型
在本节,我们讨论IoT-ClusterDB中的各传感的数据管理方法,器时空数据库结点(IoT-NodeDB)并重点讨论如何使用统一的数据库表示方式,对异构的传感器关键采样数据进行存储与查询处理.我们假设数据库中已经实现了标准数据类型、空间数并采用据类型以及基于这些类型的相关查询操作,]文献[中的符号表示方法对数据类型和操作2728-进行相关的表示.
如前所述,在IoT-ClusterDB中可以接入海量每一种类型的传感器所获得的的异构传感器结点.
但它们的共采样数据均可以具有不同的数据格式,
同特点是均具有时空特性:即每个传感器采样数据均对应于一个具体的采样时间tInstant和一个具∈
体的采集地点l在多数情况下,oc∈Pointeion.∪Rg传感器数据的采样地点是一个精确的位置(即loc∈),如风力与风向传感器、PointGPS传感器等采集的
但是,有时候也存在采样位置不精确的情况数据.
(,即l如在无线传感器网络中,通常在某oc∈Reion)g
个区域中可以布设一群传感器,此时所得到的采样数据(可以是单个传感器的采样值,或者是群体传感器的汇总数据)对应的采样地点即为一个地理区域.
此外,为了快速地查询和分析各监控对象的历次采样信息,传感器采样数据应该以监控对象为单位进行组织,使得同一个监控对象的所有数据都存放在一起,并随着时间而动态变化.因此传感器采样数据表现出序列性和动态变化的流式特性.
在I为了对异构的传感器流式oT-NodeDB中,时空相关数据进行有效的管理,需要定义相应的数据类型与查询操作,在数据库内核一级实现传感器采样数据的高效存储与查询处理.
4.1 数据类型
在本小节,我们首先定义单个传感器采样值的表示方法,在此基础上,给出监控对象的采样数据序列的表示方法.通过这些数据类型,数据库内核可以对异构的传感器关键采样数据流进行统一的表示与存储处理.
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1181
(定义1传感器采样值). 传感器的单个采样值SamlinValue可以表示为如下形式:pg
,,),SamlinValue=(tloc,nosschema,valuepgp
其中:t∈Instant是该采样数据所对应的采样时间;
),)和(62.5direction:real22.
(定义3采样数据序列). 同一个监控对象的历次采样值(可以来自于同一个传感器,也可以来自)如R条形码阅读器等)按照时于多个传感器(FID、间序列存放在一起,构成该对象的采样数据序列表示为如下形式:SamlinSeuence,pgq
loc∈Point∪Reion是采样地点;nos∈Stringpg是
该采样数据所对应的交通网络位置(以有向道路的当采样位置不在交通网络中时nID表示;os为空p
;值)schema∈Strinalue∈String和vg分别是采样,型”和“值”其中“型”描述了采样数据的格数据的“
“值”是具体的采样数据值.由于s式及语义,chema和v因此需要用括号对alue均可能包含多个分量,它们的边界进行划分.
在上述定义中,采样地点loc的表示形式取决对于移动监控对象(通常通过于监控对象的类型.
,必然有GPS、RFID或条形码阅读器进行定位)loc∈;而对于静止监控对象,可以包含lPointoc∈Point(如固定布设的交通流传感器)和l如无oc∈Reion(g两种情况.线传感器网络中成片布设的传感器)
表1给出了各种不同类型的传感器关键采样数据的例子(设ttee1~5是采样时间,201~202是有向道路的标识).
表1 传感器采样值的例子
传感器类型温度传感器(部署在某区域的WSN)
GPS传感器风速风向传感器交通流视频分析传感器
传感器采样值(SamlinValue数据类型)pg(),(treionNULL,temerature:realgp1,1,())27.5(,,t39.3,144.3)eseed:realp2,(201,(
),())direction:real62.5,22((,(t39.3,144.3)NULL,windseed:p3,
,),())realwinddir:real62.5,22((,(t39.3,144.3)eaveraeSeed:gp4,202,,),())realam:bool62.5,truej
amlinSeuence= Spgq
n
((()),schema,tlocnosvaluelapfgi,i,i,i,i)i=1其中,schema∈String是采样序列中各采样值的“,、型”tnstantlocoint∪Reion、nosgpi∈Ii∈Pi∈
StrinalueString和vg分别是第i个采样值的采i∈样时间、采样地点、采样地点对应的网络位置以及实际的采样数值,lafgi表示第i个采样值是否为该数,间断点”即一个新片断的起点.据序列中的一个“
下面让我们来进一步讨论f在IlaoT-Clus-gi.数据是根据地理区域进行分布的(详见第terDB中,
对于移动监控对象(如G5.1节).PS传感器、RFID、条形码阅读器监控的对象)来说,其采样数据序列可以被分割成多个片段,并被存储在不同的数据库结如果某个移动监控对象m点中.obj多次进入同一个数据库结点所对应的地理区域,则该数据库结点中存放的m如obj的采样数据序列包含多个片段(,图3所示)而flagi则用于表示对应的采样值是否为一个新片段的起点
.
(,(高空遥感识别传感器(t39.3,144.3)NULL,disasterArea:5,
),()(火灾区域识别)reionreiongg2)
传感器的采样值可以由多个分量组成,如表1中G速度和方向PS传感器的采样值具有两个分量:(注意:纬度信息是传感器采样GPS所采集的经度、值的基本信息,表示在l所以并不属于采oc属性中,样值的分量)为了进一步表示传感器采样值的分.量,我们定义如下SamlinComonent数据类型.pgp
(定义2采样值的分量). 传感器采样值的分量SamlinComonent可以表示为如下形式:pgp),SamlinComonent=(cSchema,cValuepgp
其中,cSchema∈StrincValue∈String,g分别是采样值分量的“型”和“值”例如,表1中G.PS传感器,采样值的速度与方向分量分别表示为(seed:realp
图3 采样数据序列包含多个分段的情况
对于静止监控对象,由于其历次采样值的loc属性保持不变,因此SamlinSeuence的格式可pgq以简化为(注意此时尽管不存在采样数据序列分割的问题,但f用于表示监控过程lagi仍然是需要的,:被暂时挂起的情况)
SamlinSeuence=pgq
n
,(())schema,loc,nostvaluela (pgi,i,i)i=1.上述两种SamlinSeuence表示方式在格式pgq
1182
计 算 机 学 报2012年
上稍有区别,由数据库系统自动进行区分和处理.
在系统实现时,SamlinSeuence数据类型被pgq真实的采设计成一个指向外存文件数据块的指针,而不是直接存放在样数据序列被存放在文件块中,
元组中.这样当新的采样数据到来并淘汰旧的采样数据时,只需要直接修改文件数据块即可,而不需要对数据库元组进行修改,从而提高了处理的效率.
通过上述数据类型,我们可以建立关系表用以表示和存储物联网中各监控对象的采样数据序列,如
CREATETABLEIoTData(ObID:Strin jg,
::ObTeStrinDeloedBStrinjyppyyg,g,:,H:DeoedTimeInstantostObStrinpyjg,:);SamlinsSamlinSeuencepgpgq
进行如下处理:
()(如果t则直接返回“未定义”用“1t⊥”1,q<
;表示)
)),(如果t则需要进一2tt2,n]j∈[j-1<q<j(
,步检查f如果f则表明第j个采lalarueggj:j=T;,样值为间断点,此时返回“如果falsela⊥”gj=F则需要通过插值的方法得到t在进行q时刻的结果.
插值计算时,根据采样值的nos属性是否为有效的p可以选用基于交通网络的插值方法或基网络位置,
于Euclidean空间的插值方法;
)(如果t则返回(3ttlocnosschema,pn,n,n,n,q>
(注意,此时返回值中用的是t用valuen)n而不是tq,
以表明采样的实际时间).
通过a数据库可以支持对监控对tInstant操作,象在监控时间段内任意时刻的状态查询.
、、空间投影操作sProectLinessProectPointjjsProectNetPos和时间投影操作sProectTime分别jj
它们将采样数据序列向空间平面和时间轴上投影,的语法格式如下:
:sProectLinesSamlinSeuence→Linesjpgq
针对移动监控对象) (
:sProectPointSamlinSeuence→Pointjpgq针对loc∈Point的静止监控对象) (
:sProectReionSamlinSeuence→Reionjgpgqg针对loc∈Reion的静止监控对象) (g:(sProectNetPosSamlinSeuence→SetStrinjpgqg)
:sProectTimeSamlinSeuence→Periodsjpgq、在上述空间投影操作中,sProectPointsPro-jectLines和sProectReion分别针对特定的监控对jjg
;象,对于其它类型的监控对象则返回“sProect⊥”-jNetPos操作返回空间投影值所对应的网络位置.
空间截取操作sTruncateGeo和时间截取操作sTruncateTime分别根据给定的空间范围和时间范
它们的语法格式围截取采样数据序列的一部分,如下:
:sTruncateGeo
;SamlinSeuence×Reion→SamlinSeuencepgqgpgq
:sTruncateTime
在上述关系表模式中,ObID、ObTe、Deloed-jjyppy、监控对BDeoedTime分别是监控对象的标识、ypy
象的具体类型(如G摄像识别传感器、温PS、RFID、、度传感器等)部署者、部署时间,HostObj是该监控如太湖中的传感器的宿主对象为对象的宿主对象(
,太湖)Samlins是该监控对象的采样数据序列.pg此外,IoT-NodeDB中每个监控对象的元组还隐式地包含一个S其CPSet属性和一个StaticMov属性,中SCPSet中存放该监控对象的原始采样数据的而S用SCP集合,taticMov是一个Bool型的标记,于区分静止监控对象和移动监控对象.4.2 查询操作
上述数据类型允许我们在数据库内核中以统一的数据格式表示异构的传感器采样数据流.为了对传感器数据进行查询,我们还需要在这些数据类型的基础上定义一系列的查询操作.
4.2.1 针对SamlinSeuence数据类型的操作pgq
针对SamlinSeuence数据类型的最重要的pgq查询操作是a该操作用于计算监控对tInstant操作,象在某个给定时间t其语法格式如下(在q的状态值,操作的语法格式定义中,符号“两边分别是该操作→”的输入数据和输出数据的数据类型;如果操作有多个:输入数据,则输入数据类型之间用“进行连接)×”
:atInstant
SamlinSeuence×Instant→SamlinValue.pgqpg假设atInstant操作的两个输入分别是seu∈q,其中sSamlinSeuence和tnstanteu=pgqqq∈I
n(())如果schema,(tlocnosvaluelapfgi,i,i,i,i)i=1.
SamlinSeuence×Periods→SamlinSeuence.pgqpgq
为了支持新采样值到采样数据序列的插入,我们定义s该操作将一个新的amlinAend操作.pgpp采样值(连同表示是否为间断点的f附加lag标识)到采样数据序列的末尾,同时根据系统中预定义的监控时间长度(如3个月)淘汰采样数据序列中过时
即tttq正好为某个关键采样值所对应的时间,q=j
(),则a1,n]tInstant操作直接将该关键采样值j∈[
(作为结果返回,否则tlocnosschema,valuepj,j,j,j)
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1183
的采样数据.该操作的语法格式如下:
:samlinAendpgpp
组均隐含一个S用以表示存放该监控对CPSet属性,象原始采样数据的S为了获得SCP的标识.CPSet属,性的值,我们定义操作G该操作的输入etRawSites输出为S为监控对象的标识ObID∈StrinCP的jg,
标识集合.GetRawSites操作的语法格式如下:
:(GetRawSitesStrinetStrin.g→sg)
查询用户通过GetRawSites操作获得相应SCP的标识之后,可以直接与相应的S并CP进行通信,通过原始采样数据浏览接口进行相关数据的存取与访问.
4.2.4 对传感器采样数据进行查询的例子
本节前部分定义的所有数据类型和查询操作均因此查询语言(包括实现为数据库系统的内嵌形式,
数据定义语言D是扩充DL和数据操纵语言DML)后的S下面给出一些查询的例子:QL语言形式.[查询Q通过关键字查询获得监控对象1]
obID1的采样数据序列j
()SELECTkeSearchobID1.Samlins ypgj;FROMIoTData
SamlinSeuence×SamlinValue×Bool→pgqpgSamlinSeuence.pgq
4.2.2 针对SamlinValue数据类型的操作pg
针对SamlinValue的操作主要包括对采样pg、、值的投影操作vProectTimevProectPointvPro-jjectReion和vProectNetPos以及数据提取操作jgj
它们的语法格式如下:etComonent.gp
:;vProectTimeSamlinValue→Instantjpg:vProectPointSamlinValue→Pointjpg;针对loc∈Point的监控对象) (
vProectReion:SamlinValue→Reionjgpgg;针对loc∈Reion的监控对象) (g
:vProectNetPosSamlinValue→Strinjpgg;:etComonentgp
SamlinValue×inteer→SamlinComonent.pggpgp
如果将SamlinSeuence看成监控对象的状pgq则一个S态曲线,amlinValue值实际上对应于监pg、因此,控对象状态曲线中的一个点.vProectTimejvProectPoint和vProectNetPos操作的结果分别jj
、/是InstantPointReion和Stringg型的值.
由于SamlinValue型的值可以有多个分量,pg,取出采etComonent操作根据指定的分量序号igp
样值的第i个分量.
4.2.3 其它操作
为了实现SamlinComonent数据类型与数pgp据库中其它数据类型的交互操作,还需要通过
[27-28]
“”的方式,对数据库中的各种标准查询lifting
/、操作(如+、和空间查询操作-、×、=、<、>等)
在上述查询中,keSearch操作返回一组元y组的集合(由于o因此该bID1只对应一个元组,j,而k集合中只含一个元素)eSearch(obID1).yj
”属性值.Samlins返回这些元组的“Samlinspgpg[查询Q2]通过关键字查询获得所有由
“”部署的监控对象的采样数据序列BeiinTrafficjg
(“”)SELECTkeSearchBeiinTraffic.Samlins yjgpg;FROMIoTData
[]查询Q通过属性约束条件实现查询Q32
SELECTSamlins pgFROMIoTData
”;DeloedB=“BeiinTrafficWHERE pyyjg
(,,,,,如insideintersecttouchesdistancedirection进行扩充,使得SoverlaamlinComonent可p等)pgp
以作为这些操作的输入数据类型参与这些操作的计“算.例如,操作在扩充之后的语法格式为(设=”“和“分别是标准数据类型的集BASE”SPATIAL”
:合和空间数据类型的集合)
,=:oolα×β→B
其中α,samlinComonent}∪BASE∪pgpβ∈{
SPATIAL.
此外,在I所有的查询均是以oT-NodeDB中,即便对于关键字查询也套SQL语句的格式提交的,用S为此,我们定义如下kQL语句的格式.eSearchy操作,以提供关键字查询接口:
()keSearch:StrinetTule.yg→sp
如前所述,IoT-NodeDB中每个监控对象的元
查询Q2和Q3的区别在于Q2采用关键字查询,因此其执行速度可能会快于采用SQL查询
的Q3.
[查询Q4]查询所有位于地理区域reiong1内且在t返回除0的风力监控对象,1时刻的风速大于5
”属性之外的其它属性值了“Samlinspg
ELECT S
,,,bID,ObTeDeloedBDeoedTimeHostOb OjjyppyypyjROMIoTData F
”ANREObTe=“WindsensorD WHE jyp
(),inside(sProectPointSamlinsreionAND jpg1)g((,,)etComonentatInstantSamlinst10; g>5ppg1)
[查询Q查询所有t5]1时刻位于地理区域
如安装在公reiong1内的视频交通流监控移动目标(
交车辆上的摄像头)
1184SELECT*FROMIoTData
计 算 机 学 报2012年
分布到不同的叶结点进行存储,总的数据分布原则如:下(设数据库采用第4.1节中所描述的模式)(设1)对于任意一个移动监控对象mobj,
(是msitesmobobj)j在监控时间范围内经过了其管辖区域的叶结点的集合,则mobj对应于多个元组,(中的每个叶结点中存放其中的一个元sitesmobj)
”这些元组除了“属性之外的其它属性组,Samlinspg值是相互复制的,而其“属性值则在Samlins”pg(中的各叶结点之间进行分割:对于任一sitesmobj)
,”它仅存放“与叶结点site∈sites(mobSamlinspgj)即ssite)在空间上相交的部分,TruncateGeoα(
(,)),如图5所示
.Samlinssiteα(pg
”ANWHEREObTe=“BusTrafficVideoD jyp
((,),vProectPointatInstantSamlinstreion.inside(jpg1)1)g
5 IoTClusterDB数据库集群全局处理-
物联网系统中海量的传感器对各种物理目标的状态进行着实时的监控.为了对海量传感器数据进行快速处理,我们需要大量的数据库结点并将它们组织成一个协同工作的物联网集群存储系统.如前所述,IoT-ClusterDB采用一种双层树形
其中叶结点存储真正的传感器采样数据,而根结构,
结点则存储为了进行全局查询所需要的全局数据字典.IoT-ClusterDB的体系结构如图4所示
.
图4 IoT-ClusterDB的体系结构
在I每个数据库结点(包括根oT-ClusterDB中,结点和各个叶结点)均为传感器时空数据库.各结点除了具有第4节所描述的数据类型和查询操作之外,还协同建立了分布式的全局索引及全局查询处理模块.
为了提高系统的可靠性,根结点和每个叶结点如果其中一个副本都包含两个或多个数据库副本,失效,其它的副本可以接管其工作.5.1 数据分布策略
在I每个叶结点soT-ClusterDB中,ite对应于,一个地理区域,称之为该结点的“管辖区域”记为)所有叶结点的管辖区域均登记在根结点和site.α(
采样数据接收服务器中的管辖区域分区表(Service,)中.AreaPartitioninTableSAPable -Tg
设IoT-ClusterDB系统包含n个叶结点:site1,…,且总的应用地理区域为A,则有如下sitesite2,n,条件成立:
(),:1iisitesite=;≠α(∩α(j(j)i)j)()2site∪i=A.
i=1n
”图5 “属性值在各叶结点之间的分割Samlinspg
()对于静止监控对象s如果其采样地点2obj,
,则sloc∈Point且loc∈α(siteobj仅对应于一个i)
元组,该元组存放在叶结点sitei中;()对于静止监控对象s如果其采样地点3obj,
(是管辖区域与lloc∈Reion且sitessoboc相交的gj)(叶结点集合,则s中的每个叶结点存放sitessobobj)j的一个元组,这些元组是彼此复制关系,且每个元组”属性均包含完整的采样数据序列.的“Samlinspg
在I所有新的采样值均被发oT-ClusterDB中,,送给采样数据接收服务器(见图4)采样数据接收服务器根据SAPable将采样数据值发送给不同-T的叶结点进行存储.如果新的采样值属于移动监控对象且与上次采样值相比跨越了不同叶结点的管辖区域,则采样数据接收服务器需要通过插值计算得到边界处的采样值,并将插值点也发送给相应的叶结点进行存储(详见第5.3节).
5.2 全局索引及全局查询处理
为了支持全局查询处理,在IoT-ClusterDB中需要建立分布式的全局关键字索引和全局时空索引.
在I数据是按照地理区域进行oT-ClusterDB中,分布的.各采样值根据其采样地点所属的管辖区域被
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1185
5.2.1 分布式全局关键字索引及全局关键字查询
为了在I需oT-ClusterDB中支持关键字查询,要建立一个全局关键字B+树索引(GlobalFull -
,),图6给TextKewordB+-TreeGFTKB+-Tree y出了GFTKB+-Tree的结构
.
(是所有包含该关键字的所有元组的标识settuID)p集合.
让我们结合第4.2.4小节中的查询Q1和Q2来在I讨论对全局关键字查询的处理.oT-ClusterDB中,所有的查询均发送给根结点进行处理.当根结点接收到一个关键字查询时,将首先查询GKR-
,从而判断应该进一步查询哪个叶结点的Table;然后,根据对应叶结点的KKSMB+-TreeSMB+-,可以得到一组叶结点的s这些叶结点均TreeiteID,包含被查询的关键字;最后,根结点将查询广播给这些叶结点并行执行,执行结果由根结点汇总并返回给查询用户.各叶结点在执行来自于根结点的关键字查询时,将调用本地的LFTKB+-Tree快速地得到查询结果.
算法1给出了全局关键字查询的处理过程.算法1. 全局关键字查询处理算法.
输入:全局关键字索引 GFTKB+-Tree
关键字查询
输出:查询结果
图6 GFTKB+-Tree的结构
如图6所示,GFTKB-Tree是一个分布式的
索引,采用3层结构,其中:
+
QR
第1层是存放在IoT-ClusterDB根结点中的全,局关键字分区表(GlobalKewordRaneTable yg)GKR-Table.GKR-Table的记录格式为(keR-y
,其中kane,siteID)eRane是关键字值域中的一gyg个区域范围,siteID是与该范围相对应的叶结点的该叶结点中的K标识,SMB+-Tree索引该范围内的关键字.
第2层是一组存放在IoT-ClusterDB各叶结点中的keword到SiteID的映射B+树(kewordto--yy
,)SiteID MainB+-TreeKSMB+-Tree.KSMB+-ppg (),Tree的叶结点记录格式为(keword,setsiteID)y(其中k是所有包含该eword是关键字,setsiteID)y关键字的叶结点的标识的集合.在创建KSMB+-
每个叶结点从自己的本地元组中提取关键Tree时,字,并对每个关键字生成一个(偶keword,siteID)y;对(其中s随后,iteID即为该叶结点自己的标识)该叶结点根据GKR-Table将各个偶对发送给相应的叶结点,这样每个叶结点可以收到一组来自于整个系统中其它各个叶结点的(集keword,siteID)y合,并在此基础上构建KSMB+-Tree.
第3层是一组存放在IoT-ClusterDB叶结点中的本地全文关键字B+树索引(LocalFullext -T++
,)KewordBreeIndexLFTKBree.LFTKB+- -T -TyTree是IoT-NodeDB针对本地数据建立的全文关
键字索引,其叶结点的记录格式为(keword,y(),其中ksettuID)eword是一个关键字,py
;1.keQ)etkey=gy(
+
_();2.ksmbsite=retrievekeGFTKBree.GKRable-T-Ty,__(_);et3.ksmbtree=gtreeksmbsite,KSMB+-Tree_(_);4.ltkbsites=retrievekeksmbtreefy,_)5.FOREACHsiteltkbsitesDO(INPARALLEL ∈ f__();6. ltkbtree=gtreesite,LFTKB+-Treeetf(_);7. tuleids=retrivekeltkbtreepy,f
();8. res=evaluateQ,tuleidsp();9. sendMasterres
10.ENDFOR;
根结点收集各叶结点发来的查询结果并存入R;11.
(12.ReturnR).
在算法1中,函数返回查询Q要检etkeQ)gy(
(()函数根据关键字k索的关键字;retrievekedsey,y在数据结构d并返回相应的结果;s中进行检索,_(函数返回指定叶结点settreesite,treeName)iteg
中的t函reeName索引子树,evaluate(Q,tuleids)p数在tuleids元组集合的基础上执行查询并返回结p
)果,将结果rsendMaster(reses发送给根结点.5.2.2 分布式全局时空索引及全局时空查询处理
物联网系统中的另一类重除了关键字查询之外,要的查询类型是带有时空约束条件的查询,如第4.2.4小节中的查询Q为了支持这类查询,我们需4和Q5.要建立全局时空R树索引(GlobalSatialemoral -Tpp,)由于在IreeGSTR-Tree.oT-ClusterDB中数R-T
据是根据其空间属性进行分布的,因此GSTR-Tree的构建可以得到简化,图7给出了其总体结构.
1186
计 算 机 学 报2012年
从图8可以看出,移动监控对象时空轨迹的变化十分频繁,因为每一次新采样值的到来均会导致向轨迹中插入新的轨迹单元(轨迹单元是轨迹时空如果直曲线中相邻两个采样点构成的一条直线段).接以轨迹单元作为索引记录的基本单位,则索引的更新频率将等同于采样数据插入数据库的频率,从而导致索引更新代价升高.
为了解决上述问题,我们首先将X×Y×T空间划分成粒度较粗的等距格栅.然后,将每个移动监概略化”轨迹,概略化控对象的轨迹映射成对应的“
图7 GSTR-Tree的结构
轨迹单元是原始轨迹所穿过的格栅单元的中心点连线,因此其粒度比原始轨迹要大得多.最后对概略化轨迹单元进行索引并建立GSSTR-Tree.
GSSTR-Tree的叶结点记录的格式为(stu,
(),其中ssettuleID)tu是概略化轨迹单元,p(是其概略化轨迹包含ssettuleID)tu的所有移动p监控对象元组标识的集合(注意,多个移动监控对象概略化轨的概略化轨迹可以共享同一个轨迹单元).迹的变化频率比原始轨迹低得多,因此GSSTR-Tree有效地降低了索引更新的频率.在进行时空查询处理时,根结点首先检查SAP-,看看哪些叶结点的管辖区域与查询地理区域Table相交,然后将查询发送给这些叶结点并行执行;叶结可以通过本点在处理来自于根结点的查询请求时,
4 地的S如果查询是针T-Tree快速地得到查询结果:4
,对静态监控对象的(如Q则仅需查询S4)T-Tree
如图7所示,GSTR-Tree是一个两层的分布式其中:全局索引,
第1层是IoT-ClusterDB根结点中的管辖区域)分区表(SAPable.SAPable中的记录的格式-T-T,其中a为(area,siteID)rea为一个管辖区域,
siteID是与该管辖区域对应的叶数据库结点的标识;
第2层是IoT-ClusterDB各叶结点中的针对本地数据的传感器采样数据序列时空索引树(Sensor-,SamlinSeuenceatialemoralreeST- S-T T-pgqpp
4
),用以对本地数据中采样数据序列的时空属性Tree
4
进行索引.一个空ST-Tree实际上包括两个子树:,)间R树(用以对静止监控SatialR-TreeSR-Tree p对象的空间位置(包括loc∈Point和loc∈Reiong两种情况)进行索引,一个格栅概略化时空R树(,GridSketchedSatialemoralR-TreeGSSTR- -T -pp)用于对移动监控对象的随时间动态变化的位Tree
”)置(亦称为“时空轨迹-进行索引.图8给traectorjy出了GSSTR-Tree的结构
.
的空间R树部分;如果查询针对移动监控对象(如
4
),则需要根据时空约束条件对SQ5T-Tree的
根结点收到各叶结点GSSTR-Tree部分进行搜索;
返回的结果之后,还需要进行必要的合并操作,并将最后的结果返回给查询用户.
全局时空查询处理算法如算法2所示.算法2. 全局时空查询处理算法.
输入:全局时空索引 GSSTR-Tree
时空查询
输出:查询结果
Q
R;1.Q)eorane=geteo(ggg
;2.timerane=geteriod(Q)gp
(,);3.sites=retrieveeoeoraneGSSTRree.SAPable-T-Tggg4.FOREACHsite∈sitesDO(INPARALLEL)
(;5.taticMov=getobteQ) Sjyp/6.IFStaticMov=Staticstaticobects / j
__();7.srtree=gettreesite,SR-Tree _);8.tuleids=retriveeo(eorane,srtree pggg
//9.LSEmovinobects Egj
)图8 格栅概略化时空R树(GSSTR-Tree
__();10. gsstrtree=gettreesite,GSSTR-Tree
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1187
11. tuleids=retriveeotemo(eorane,pgpgg
_);sstrtimerane,treegg12.ENDIF;
();13.res=evaluateQ,tuleidsp
();14.sendMasterres
15.ENDFOR;
根节点收集各叶结点发来的查询结果并存入R;16.
根节点对R中的结果按照O17.bID进行合并;j(18.ReturnR).
为此,采样数据接插值结果也发送给相应的叶结点.
收服务器需要保存各移动监控对象上一次提交的采样数据值.
叶结点接收到新的采样数据之后,直接通过samlinAend操作将之附加到相应监控对象的pgpp
“”属性值中.Samlinspg
在算法2中,函数g和g分eteo(Q)eteriod(Q)gp别返回Q的查询地理区域和时间区域;etobte(Q)gjyp
,返回Q所查询的监控对象类型,eoraneretrieveeo(ggg和rds)etrieveeotemo(eorane,timerane,ds)gpggg
分别根据地理区域georane和时空区域在相关数g据结构d得到的结果为一组指针.s中查询,5.2.3 其它查询类型的处理
),对于属性约束条件查询(如查询Q尽管不是3但是I关键字查询,oT-ClusterDB仍然可以通过GFTKB-Tree中的GKR-Table和KSMB-Tree
来缩小需要查询的叶结点范围,然后再在各相关叶
+
+
6 系统实现及性能分析
本文提出的IoT-ClusterDB系统框架已经在带有空间数据扩展模块PPostreSQL8.2.4(ost -g
)的基础上进行了编码实现.GIS1.3.1PostreSQL g是一个开源的对象关系型数据库系统,支持数据库内核一级的数据类型、查询操作以及索引的扩充.此外,我们还在PostreSQL的基础上实现了相应的g全局索引机制,并在此基础上实现了一个全局查询使得多个P处理器,ostreSQL服务器可以组合在一g起,形成一个协同工作的IoT-ClusterDB集群系统.
为了对IoT-ClusterDB的性能进行比较与分析,我们在上述原型系统的基础上进行了实验.实验中的传感器数据采用第3.1节中描述的数据库模式数据包括两个部分:进行组织,
()移动传感器数据是在北京1万个出租车所1
采集的真实G通过一个数据模拟PS数据的基础上,程序生成的,该模拟程序通过对原始GPS采样数据的插值和倍增,可以动态模拟12800~32000个移 动传感器的数据采样;
)(静止传感器数据是通过一个模拟程序随机2
生成的,该模拟程序可以模拟出128000~320000 个静止传感器的动态数据采样.
将上述两部分数据按照一定的比例(如移动传感器与静止传感器的比例为1进行合成,从而∶10)可以得到实验中所需要的总体数据集.表2列出了实验中的主要参数.
表2 模拟实验的主要参数
参数名
参数值(单位)12800~32000
参数含义
移动传感器的数目静止传感器的数目
传感器的总数目(其中移动传感
)器与静止传感器的比例为1∶10每个传感器进行原始数据采样
的平均时间间隔
SCP结点抽取的关键采样数据的平均时间间隔根结点服务器的数目叶结点服务器的数目
结点上执行对应的S在执行SQL语句.QL语句时,,叶结点不能调用本地的L但通过属FTKB-Tree性B+树仍然可以获得较快的查询速度.
+
对于更加复杂的查询(如多个约束条件通过,AND或者OR连接)IoT-ClusterDB可以通过相应的全局索引,针对每个约束条件获得一个叶结点集然后根据连接条件对这些集合进行相应的交集合,
或并集计算,最终获得真正需要执行查询的叶结点范围,并在这些叶结点上执行查询从而得到最后的查询结果.
5.3 新采样数据触发的数据更新处理
在IoT-ClusterDB中包含多个采样数据接收服务器,这些服务器组成一个集群,共同对传感器接入处理器上传的新采样值进行处理.
新采样值的数据格式为(obID,staticMov,j),其中osvaluebID是监控对象的标识,staticMovj
标明监控对象是静止的还是移动的,svalue=(,,是一个stloc,nosschema,value)amlinValueppg类型的值.采样数据接收服务器接收到上述数据之后,首先判断s如果是静止监控对象,则可taticMov,通过SAPable找到管辖区域与loc相交的叶结点-T(,然loc∈Reion时可以有多个叶结点与loc相交)g
后将采样数据转发给相应的叶结点进行存储处理;如果是移动监控对象,则需要进一步判断上次提交了采样值之后该监控对象是否跨越了叶结点的管辖区域边界,若是,则需要进行相应的插值计算,并将
NMovSensors
NS28000~320000taticSensors1NSensors
amlinpgξS
140800~352000
5s300s1
2~32
eSamlinypgξK
NMasterNodes
NLeafNodes
1188
计 算 机 学 报2012年
在实验中,我们重点针对IoT-ClusterDB的查询响应时间及加速比进行了分析.由于在海量传感目前器采样数据的云存储以及时空数据处理方面,尚没有系统性的相关工作,我们将IoT-ClusterDB与单数据库结点处理机制(SinleNodeQuerPro -gy ,进行了比较.此外,为了分析传感器cessinSNQP)g数据动态采集对查询性能所造成的影响,在实验的过程中,由数据模拟生成程序根据实验数据集,持续向IoT-ClusterDB发送并插入传感器采样数据.
实验的测试用例分别采用第3.2.4节中介绍的关键字查询Q属性约束条件查询Q1、3和时空约束条件Q图9给出了I5.oT-ClusterDB处理各个查询的响应时间(为了更好地分析属性约束条件查询Q3的性能,我们在各叶结点中没有对相关属性建立局部索引)
.
的,根结点上的SAPable和各叶结点上的时空索-T
4
引S加快了T-Tree共同构成了一个全局时空索引,
时空查询处理的速度,并降低了叶结点数据量对查询性能的影响.
为了进一步分析IoT-ClusterDB中叶结点规模对非关键字查询处理性能的影响,我们在表3和表4中分别给出IoT-ClusterDB在处理Q3和Q5时的加速比实验结果.加速比Seedupp定义为
,Seedupp=IoTClusterDBξ
其中ξNQP和IoTClusterDB-SNQP和ξIoTClusterDB分别是S
SNQP
的查询响应时间.
表3 IoTlusterDB在执行Q3时的加速比-C
NLeafNodes
2
4 8 16 32
加速比
NS64×1000 ensors=
1.57
3.25 6.27 11.83 20.19
NS160×1000ensors=
1.62
3.266.3213.5224.86
表4 IoTlusterDB在执行Q5时的加速比-C
NLeafNodes
2
4 8 16 32加速比
NS64×1000 ensors=
1.62
1.95 2.89 3.68 6.11NS160×1000ensors=
1.87
2.453.924.776.12
图9 IoT-ClusterDB的查询响应时间
从图9可以看出,IoT-ClusterDB可以有效地支持关键字查询Q且在不同的数据量及不同的叶1,结点规模的情况下,关键字查询的响应时间基本保持稳定.这是因为IoT-ClusterDB通过GFTKB-
+
从表3可以看出,IoT-ClusterDB在处理属性约束条件查询Q加速比随着叶结点个数的增3时,而且数据量越大,加速比增加得加几乎呈线性增长,
也越明显.这是因为在IoT-ClusterDB中所有的数据均是统一存放在单个关系表中的,不牵涉到连接因此查询的响应时间基本上取决于各叶结点运算,
的平均数据量.此外,多个数据库结点的协同工作也分担了传感器数据更新所带来的繁重通信与计算开销.
从表4可以看出,IoT-ClusterDB在处理时空约束条件查询Q加速比也随着叶结点个数的5时,增加而随之增大,但与Q3相比,Q5的加速比变化这是由于全局时空索引的影响不如Q3变化明显,而导致的.另外,轨迹的分割与合并也给全局查询处理带来了额外的计算开销.
系统的查询处理性能通常受到数据更新的影响.为了测试传感器数据上传对系统查询处理性能
Tree和KSMB-Tree对关键字进行了全局索引,
+
因此数据量及结点规模的变化对查询响应时间的影响很小.
对于属性约束条件查询Q查询响应时间明显3,——数据量越大则查地依赖于数据量及结点的规模—
询响应时间越长,且在同等数据量的情况下,查询响应时间随着结点规模的增大而减少.这是因为在各叶结点上没有建立属性索引,因此查询的响应时间主要取决于各叶结点的平均数据量.
对于时空约束条件查询Q其查询响应时间的5,总体变化趋势与Q但其变化幅度不如Q3相似,3明显,且查询性能总体上优于Q这是因为在I3.oT-ClusterDB中数据是按照地理空间属性进行分布
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1189
的影响,我们比较了打开数据更新和没有数据更新两种情况下的查询响应时间(每一轮实验均取Q1~由于和静态传感器Q5五个查询的平均响应时间).
移动传感器的数据更新代价更大(因为需要动相比,
),态维护G因此我们选择移动对象来进SSTR-Tree同时,为了增加每个叶结点服务器的压力,行测试.
在实验中我们选择相对较少的服务器数量(4~16个)图1.0给出了相关的实验结果
.
系数据库集群的基础上建立分布式的全局关键字索引及全局关键字查询处理机制,使得IoT-ClusterDB可以兼容多种查询类型的快速处理,突破了目前云数据管理技术主要针对“键-值”查询、并行数据库技术主要针对SQL查询的局限.
()提出了一种能够应对传感器采样数据的异2
时空相关性和动态流式特性的传感器时空数构性、
据库模型.通过采样数据序列等数据类型和相应的查询操作,在数据库内核一级实现了传感器采样数存储、计算和查询,突破了目前时空据的统一表示、
数据库主要针对静态的空间数据或相对单一的时空数据、缺乏有效的异构数据流表示方法的局限.
()提出了一种地理区域敏感的传感器采样数3
据分布策略,并在此基础上提出了一种分布式的全局时空索引和全局时空查询处理方法,突破了目前时空数据库主要针对单机环境、缺乏时空数据库集群相关方法的局限.
物联网海量数据处理技术具有广阔的应用前景.例如,通过电网中的传感器结点,可以获知电网中的电力变化及用户的用电规律,并进一步实现智能化的电力传输;通过湖泊中布设的传感器,可以对污染数据进行采样并进行异常情况的报警;通过在交通系统中设置的大量传感器,可以实现车联网和先进的智能交通控制与管理等.
随着研究的不断深入及技术的不断发展,可以想见,物联网必将在国民经济和人民生活中扮演重要的角色,并给人们的生活和工作方式带来深刻的变革.
致 谢 感谢中国科学院软件研究所的郭黎敏,她在本文实验中做了大量工作!
参
考
文
献
图10 IoT-ClusterDB中数据更新对查询响应时间的影响
从图10可以看出,IoT-ClusterDB在叶结点数目一定的情况下,所接入的传感器数目越多,则采样此外,当传感器的数据更新对查询性能的影响越大.
数目一定时,随着叶结点数目的增长,采样数据更新对查询性能的影响也随之降低.当叶结点的个数为所接入的传感器数目为9系统的查16,1200个时, 询响应时间仅为没有数据更新时的1仍然表.5倍,现了良好的查询处理性能.
综合以上分析,IoT-ClusterDB在海量传感器采样数据管理方面提供了良好的数据接入与查询处理性能,为物联网海量数据管理提供了一种可行的解决方案.
7 结 论
物联网打破了物理世界和数字世界的界限,将信息技术延伸到了物理世界和人类社会,是促使未本文从物联网来信息技术产业变革的关键性技术.
海量数据处理技术的角度出发,对物联网所提出的挑战及相关对策进行了分析,并提出了一种面向物联网海量传感器采样数据管理的数据库集群系统框本文的的主要创新点如下:架IoT-ClusterDB.
()提出了一种能够同时支持“键-值”查询和1
普通S通过在关QL查询的物联网数据库集群框架.
[]S1armaS,BrockDL,AshtonK.MIT AutoID WH-001:
TheNetworkedPhsicalWorldProosalsforEnineerin - ypgg,theNextGenerationofComutinCommerce&Automatic -pg:M,Identification.MassachusettsITPress2000
[]Y,H,W2eTianhunuanXiaoananWenShenetal. -C-G- ggg g
’TheAnnualBlueBookonChinasDevelomentofInternet p(ofThinsIndustr.PublishedbCIT-CHINA,2010inChi -gyy )nese
(叶甜春,黄晓刚,王文升等主编.中国物联网产业发展年度))蓝皮书(2010.中国物联网研究发展中心,2010
1190
计 算 机 学 报2012年
[]S3undmaekerH,GuilleminPetal.VisionandChallenesfor g
:PRealizintheInternetofThins.Luxemborublications ggg ,OfficeoftheEuroeanUnion2010 p
[]N,N4inHuanSheninNaetal.Laeredstructureand- gggy
//manaementinInternetofThinsProceedinsoftheFu -gggtureGenerationCommunicationandNetwork(FGCN).Jeu j,K,Islandorea2007:386389-
[]Y5anLu,ZhanYan,YanLaurenceT,NinHuanShen. -ggg
:InternetofThinsFrom RFIDtotheNextenerationThe -Gg:APervasiveNetworkSstems.New YorkuerbachPublica -y,tions2008
[]G6iustoD,IeraA,MorabitoG,AtzoriLeds.TheInternet
:ofThins20thTrrhenian WorkshoonDiitalCommuni -gypg :,cations.GermanSriner2010ypg
[]A:A7tzoriL,IeraA,MorabitoG.TheInternetofThins g
,():Networks2010,5415119surve.Comuter -yp
[]T//8siftesN,DunkelsA.AdatabaseineversensorProceed -y
insofthe9thACM ConferenceonEmbeddedNetworked g
,USensorSstems.SeattleSA,2011:316329 -y
[]Wu,Z,A,T9JihouYonuanbererKarlanKianee. -L -Lg
Towardsinteratedandefficientscientificsensordataro -gp:A//cessindatabasearoachProceedinsofthe12thIn -gppg:ternationalConferenceonExtendinDatabaseTechnolo ggy ,R,AdvancesinDatabaseTechnolo.St.Petersburussia gyg2009:922933-
[]M,,10addenSFranklinMJHellersteinJM,HonW.TinDB: g y
Anacuisitionaluerrocessinsstemforsensornet -qqypgy ,works.ACM TransactionsonDatabaseSstems2005,30 y():1122173-
[]G:A11urenL,RoncancioC,LabbéCetal.SStreaMWare g
orientedmiddlewareforheteroeneoussensordataservice g//manaementProceedinsofthe5thInternationalConfer -gg,I,enceonPervasiveServices(ICPS’08).Sorrentotal y2008:121130-
[]K:A 12im M,LeeJW,RouJC.COSMOSmiddlewarefor y
interateddatarocessinoverheteroeneoussensornet -gpgg ,():works.ETRIJournal2008,305696706 -
[]Y:13uriamaushidaensorloudnfrastructure M,K T.S-C iy
Phsicalsensormanaementwithvirtualizedsensorsoncloud yg//comutinProceedinsofthe13thInternationalConference pgg),onNetworkasedInformationSstems(NBiS.Takaama -B yyJaan,2010:18-p
[]B14aldoniR,CerocchiA,LodiGetal.Desininhihlavail -gggy
ablereositoriesforheteroeneoussensordatainoenhome pgp//automationsstemsProceedinsofthe7thIFIP WG10.2 ygInternationalWorkshoonSoftwareTechnoloiesforEm- pg ,beddedandUbiuitousSstems(SEUS’09).Sriner qypg,UNewortBeachSA,2009:112 -p
[]A:L15badiDJ.Datamanaementinthecloudimitationsand g
,2oortunities.IEEEDataEnineerinBulletin009,32 ppgg ():1110-
[]S,,L:A16unNinuiXuZhieiiGuoJie.Seaomutin -H -W --Cgpg
novelcomutationmodelfortheInternetofThins.Commu -pg
,():nicationsoftheChinaComuterFederation2010,6752 -p()56inChinese
(孙凝晖,徐志伟,李国杰.海计算:物联网的新型计算模():)型.中国计算机学会通讯,2010,675256-
]C,:[17hanF,DeanJGhemawatSetal.BitableAdistributed gg
//storaesstemforstructureddataProceedinsofthe7th gygonOeratinSstemsDesinandImlementationSmosium pgygpyp (’),UOSDI06.SeattleSA,2006:205208-
[]D:18eCandiaG,HastorunD,JamaniMetal.Dnamo py
’//AmazonshihlavailablekevaluestoreProceedinsof - gyyg the21stACM SmosiumonOeratinSstemsPrinciles yppgyp ()SOSP’2007.Washinton,USA,2007:205220-g
[]C:19arstoiuD,LeadatuE,GasarM.HbaseNonSQLdata -pp
,baseevaluation.InternationalJournalofAderformances -p,():vancementsinComutinTechnolo2010,254252 -pggy
[]C:20ooerBF,RamakrishnanR,SrivastavaUetal.PNUTS p
!’//YahooshosteddataservinlatformProceedinsofthe gpg InternationalConferenceonVerLareDataBases34th yg (),N,VLDB’2008.AucklandewZealand2008:12771288 -
[]T:A 21husooA,SarmaJS,JainNetal.Hivewarehousin g
//overamareduceframeworkProceedinsofthesolution - pg35thInternationalConferenceonVerLareDataBases yg (),VLDB’2009.Lon,France2009y
[]C22ambellDG,KakivaaG,EllisN.Extremescalewithfull py
//SQLlanuaesuortinmicrosoftSQLAzureProceedins ggppgofthe29thACM SIGMODInternationalConferenceonMan -,UaementofData(SIGMOD’2010).IndianaSA,2010: g10211023-
[]W:23aasFlorianM.Beondconventionaldatawarehousin yg
MassivelaralleldatarocessinwithGreenlum Data -ypppg //baseProceedinsofthe2ndInternationalWorkshoon gp Businessntellienceorheealimenterrise I f t R-T Egp(),N,BIRTE’2008.AucklandewZealand2008:8996 -
[]P24oessM,NambiarRO.Larescaledatawarehouseson g
:O//ridroLiantracledatabase10gandHPsstemsPro -gpy ceedinsofthe31stInternationalConferenceonVerLare gyg ,2Bases(VLDB’2005).Trondheim,Norwa005:Data y10551066-
[]Y25uXu,KostamaaP.Anewalorithmforsmalllaretable - gg
//oinsinarallelDBMSProceedinsoftheIEEE26thouter jpgInternationalConferenceonDataEnineerinICDE’2010). gg(,UBeachSA,2010:10181024Lon-g
[]K26anKD,BasaranC.Adativedatarelicationforloadsha -gpp
//rininasensordatacenterProceedinsofthe29thIEEE gg InternationalConferenceonDistributedComutinSstems pgy ,C,ICDCS Workshos’09).MontrealanadaWorkshos(pp2009:2025-
[]G27ütinR H,BhlenM H,ErwiM,JensenCSetal.A gg
foundationforreresentinanduerinmovinobects. pgqyggj ,():ACM TransactionsonDatabaseSstems2000,251142 -y
[]G28ütinR H,AlmeidaV T,DinZ.Modelinanduerin gggqyg
,:movinobectsinnetworks.VLDBJournal2006,15(2) gj 165190-
6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1191
[]C29handrasekaranooereshandetl. S,C O,D A e app
ContinuousdataflowrocessinforanuncerTelerahCQ: -pggp //tainworldProceedinsofthe1stBiennialConferenceonIn -g,novativeDataSstemsResearch(CIDR’2003).Asilomar yUSA,2003:276285-
[]C30ranorCD,JohnsonT,SatscheckO,ShkaenukV. ppy
:A//Giascoestreamdatabasefornetworkalications gpppProceedinsofthe22thACMSIGMODInternationalConfer -g,enceonManaementofData(SIGMOD’2003).SanDieo ggUSA,2003:647651-
[]A31ndradeH,GedikB,WuK-L,YuPS.Scalestrateies -Upg
//rocessinhihratedatastreamsinSstemSProceedinsfor - pggyg oftheIEEE25thInternationalConferenceonDataEnineer -g),,inICDE’2009.ShanhaiChina2009:13751378-g(g[]F:O32uscoF,StoecklinM P,VlachosM.Netlinthefl -F--y
,comressionarchivinandindexinofstreaminnetwork pggg //trafficProceedinsofthe36thInternationalConferenceon g,2VerLareDataBases(VLDB’2010).Sinaore010: yggp 1382139
3-
,bDINGZhiinornin1966, -M g,p,ProfessorPh.D.h.D.suervisor.pHisresearchinterestsincludedatabase ,sknowledebasesstemsatialand -gyp,,temoraldatabasesInternetofThins pg,acloudomutinndnformation c ipgretrieval.
,,GAOXubornin1980,Ph.D.candidatelecturer.His researchinterestsincludedatabaseandknowledebasemain g,sstemsandsatialtemoraldatabases. - ypp
Backroundg
,owadastheInternetofThins(IoT)hasbecomea N yg,hotresearchissue.HoweverthemassiveIoTdatamanae -g,wroblemmenthasnotbeenthorouhlstudiedhichbe -pgy comesabottleneckforthedevelomentoftheIoTindustr. py,w,earsInrecentehaveconductedcontinuousresearch y,softwaredevelomentandindustrializationonIoTdataman -paement.g
TheworkofthisaerissuortedbtheNational ppppy
’ScienceFoundationofChina(NSFC)skeNaturalroect ypj “InternetofhinsTechnoloandSstemforSensinUn--T -ggyyg conventionalEmerenciesandforEmerencCommandin ggyg” (roectGrantNo.91124001)andthekedirectionofChi -pjy neseAcademofSciences“ResearchandDevelomentof yp ”aerCloudStoraeandRetrievalSstems.Thisincludes ppgyroects.researchresultsoftheabovethe pj
正在阅读:
面向物联网海量传感器采样数据管理的数据库集群系统框架07-26
大型企业企业文化调查问卷08-25
临沂招聘会网:2016临沂招聘会信息02-08
综采工作面设备回撤期间的瓦斯防治措施04-06
2022年小学教师年度考核个人工作总结08-01
高压电工实操题03-28
英语教参1-706-30
红楼梦大揭密之二十九12-30
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数据管理
- 采样
- 集群
- 海量
- 联网
- 传感器
- 框架
- 面向
- 数据库
- 系统
- 人教版八年级物理 上册 第三章 3.3 汽化和液化 教案
- P2P模式下协同工作安全群组通信模型的探索
- 中小学校建筑设计规范GBJ99
- 高效液相色谱法测定人血清中格列吡嗪浓度
- 2006中国企业境外上市情况
- 网站运营分析:99click通过案例告诉你如何实现高转化率
- 企业所得税汇算清缴审核流程
- 污染物总量排放晋环发【2015】25号
- 2014年湖南事业单位公共基础知识试题(三十七)
- 注册安全工程师执业资格考试大纲(2008年版)
- 浙江工商大学关于教职工申请
- 建设工程技术与计量(安装)
- 汣味瞳仁茶—青光眼形成的八大因素
- 钢筋混凝土结构设计原理试题库及其参考答案(完美版)
- 香豆素的结构类型
- 职业规划复习资料(带答案)
- 城市道路工程复习资料
- 2014高考英语总复习 语法专题复习:第八讲 情态动词
- 《影之刃》新版本精炼装备技巧之垫刀法
- 1.初中数学选择题解法的探讨