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个移 动传感器的数据采样;