论文部分内容阅读
随着地理信息技术的发展,时空数据的产生速度得到了爆发式增长。时空数据背后的价值正在让人们的生活更加便捷高效,全球交通、民生、科研商业等众多领域均受益于对时空数据的合理应用。与此同时,对海量的时空数据的进行高效索引、存储与查询的管理技术正成为研究的热点。时空数据具有海量、结构复杂、语义丰富以及操作繁琐等特征,传统数据库管理系统并不能为时空数据提供原生支持,而且传统关系型数据库在处理海量的时空数据的时候往往有性能上的瓶颈,基于关系型数据库扩展的时空数据管理系统已经不能满足需求。NoSQL数据库本身对海量数据具有良好的支持,本文基于这类数据库非关系型、开源、水平可扩展的优势,设计并实现了基于可扩展非关系型数据库MapDB的GIS时空数据管理系统。该系统实现了对时空数据的索引、压缩、存储与查询功能,其中查询处理中将多维区域查询分解为多个线性查询范围并减少错误命中率的过程至关重要。本文的主要工作如下:首先,根据地理信息系统时空数据的结构特征与语义特征,设计并实现时空数据在NoSQL数据库中的表示模型。针对时空数据的管理问题,设计并实现时空数据管理系统框架,包括数据的索引、轨迹压缩、存储以及查询模块。其次,基于时空降维方法和UB树性质构建了将时间集成和将时间半集成的时空索引并实现之。对不同索引方式的插入性能、查询性能以及分解阶段的性能差异进行实验与对比分析。再次,研究轨迹压缩的方法,使用预先构建参考数据集表示其它数据的方式对数据进行压缩,通过实验分析研究影响压缩效果的因素,并对压缩效率进行对比,采用基于MessagePack的序列化方法降低数据的持久化占用的空间,优化存储效率。最后,研究了将空间和时空区域查询分解为线性范围扫描的各种现有方法,在研究的基础上,改进了一种成本驱动的方法,根据数据分布对查询区域分解,并平衡分解阶段和精过滤阶段的时间成本。所改进的方法在一个简单的数据库原型中实现,在真实世界的测试数据进行评估,并与一种流行的空间驱动的分解方法进行了比较。本文通过实验仿真对分解算法和轨迹压缩算法进行了性能评估,结果表明改进的分解算法在时空范围查询中的查询效率优于基线方法。该方法的主要优点之一是在分解过程中存在的短路机制能够在处理偏差的数据时使用相对较少的范围扫描来创建精确的分解,平衡了分解阶段与精过滤阶段的耗时,缺点是必须维护额外的数据结构,因此在处理大型数据集时,数据结构的维护成本可能较高,但是可以使用采样等措施显著降低这一成本,同时对性能的影响降到最低。