轨迹存储模型
移动对象采集的时空数据点在数据库中存储时,基本采用以下三种模型
点模型:定义点模型各属性字段,每个点为一条记录。
轨迹线模型:整条轨迹为一条记录。
轨迹分段线模型:整条轨迹切分成多段,每个轨迹段为一条记录。
其中,seg_start_time为该轨迹段的起始时间,如果轨迹不分段则与traj_start_time相同,seg_index为该轨迹段的在整条轨迹中的编号,如果轨迹不分段,该字段为-1。
三种模型的优缺点和适用场景:
点模型利用索引进行实时查询的效率最高,但存储成本和二级索引代价高,适用于实时性要求较高的简单查询场景。
轨迹线模型时空索引效率不高,存储成本和二级索引代价低,适用于离线分析型场景。
轨迹分段线模型时空索引效率高于线模型,且存储成本和二级索引代价低,可同时实现低成本存储、实时和复杂分析查询,适用于对实时查询和离线分析都有需求的场景。
Lindorm Ganos同时支持三种模型的存储,批量轨迹点可以直接以点模型写入,也可以构建成线或分段线模型存储,用户可根据适用场景选择适合的模型。对于分段模型,Lindorm Ganos客户端提供基于距离差、角度差、时间间隔和点数的4种分段策略。线/分段线模型目前不支持点的追加和更新。
轨迹索引
轨迹模型引入了新的XZ2T和OTS索引(一般时空索引详见创建索引表),可提高轨迹查询效率。
XZ2T索引:即time bin + XZ2,适用于轨迹线模型和分段线模型(非点类型的时空对象),相比XZ3索引查询效率更高。
OTS索引:即移动对象object id + 轨迹起始时间 + 轨迹段标号,专用于轨迹分段线模型需要返回完整轨迹的查询情况。
轨迹二级索引存储
Lindorm Ganos支持对任意时空几何Schema创建二级索引,轨迹存储模型针对轨迹引入新的索引类型,采用Lindorm Ganos的时空二级索引机制(详见创建索引表),实现轨迹模型的二级索引支持。二级索引可以在保证查询效率的基础上有效降低存储成本,但要注意二级索引创建不宜超过两个。