一种海量轨迹数据的读写方法及系统技术方案

技术编号:30232717 阅读:24 留言:0更新日期:2021-09-29 10:08
本发明专利技术公开一种海量轨迹数据的读写方法及系统,涉及数据检索技术领域;基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示;本发明专利技术采用分布式架构,将数据持久化过程中的频繁随机写入改为批量顺序写入,以减少寻址操作,进而提升写入效率。并且本发明专利技术建立时空索引,并先从时间范围过滤,能大幅缩小搜索范围,再从空间范围进行过滤,以提升搜索速度。同时利用时空索引进行轨迹数据的查询及展示,便于使用及提高用户体验。验。验。

【技术实现步骤摘要】
一种海量轨迹数据的读写方法及系统


[0001]本专利技术公开一种方法及系统,涉及数据检索
,具体地说是一种海量轨迹数据的读写方法及系统。

技术介绍

[0002]随着科学技术的发展,人们产生的轨迹数据种类越来越丰富,数量越来越多。传统的集中式存储方式受限于单机性能,不能满足海量数据的并发写入及查询;而现有的分布式存储方式采用多节点的设计,拥有良好的并发读写特性,适合海量数据的存储、查询。但现有的分布式存储写入方式及写入速度还有待提高。

技术实现思路

[0003]本专利技术针对现有技术的问题,提供一种海量轨迹数据的读写方法及系统,能以毫秒级速度精确完成海量轨迹数据的写入与查询。
[0004]本专利技术提出的具体方案是:
[0005]一种海量轨迹数据的读写方法,基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,
[0006]构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
[0007]进一步,所述的一种海量轨迹数据的读写方法中进行轨迹数据批量写入:
[0008]根据分布式集群节点接收并暂存在缓冲池的轨迹数据,
[0009]满足缓存池批量写入条件时,进行轨迹数据的批量写入。
[0010]进一步,所述的一种海量轨迹数据的读写方法中构建时空索引:
[0011]分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z

Order方法,并使用GeoHash编码构建空间索引。
[0012]进一步,所述的一种海量轨迹数据的读写方法中利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。
[0013]一种海量轨迹数据的读写系统,包括缓存模块、批量写入模块、索引模块及查询模块,
[0014]缓存模块基于分布式存储方式,增加缓冲池暂存写入轨迹数据,批量写入模块利用缓冲池进行轨迹数据批量写入,
[0015]索引模块构建时空索引,查询模块利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
[0016]进一步,所述的一种海量轨迹数据的读写系统中批量写入模块进行轨迹数据批量写入:
[0017]根据分布式集群节点接收并暂存在缓冲池中的轨迹数据,
[0018]当满足缓存池批量写入条件时,进行轨迹数据的批量写入。
[0019]进一步,所述的一种海量轨迹数据的读写系统中索引模块构建时空索引:
[0020]分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z

Order方法,并使用GeoHash编码构建空间索引。
[0021]进一步,所述的一种海量轨迹数据的读写系统中查询模块利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者查询模块利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。
[0022]本专利技术的有益之处是:
[0023]本专利技术提供一种海量轨迹数据的读写方法,采用分布式架构,将数据持久化过程中的频繁随机写入改为批量顺序写入,以减少寻址操作,进而提升写入效率。并且本专利技术建立时空索引,并先从时间范围过滤,能大幅缩小搜索范围,再从空间范围进行过滤,以提升搜索速度。同时利用时空索引进行轨迹数据的查询及展示,便于使用及提高用户体验。
附图说明
[0024]图1是本专利技术方法批量写入流程示意图。
[0025]图2是本专利技术方法构建时空索引流程示意图。
[0026]图3是本专利技术方法与现有集中存储工具方法中的写入速度对比示意图。
[0027]图4是本专利技术方法与现有集中存储工具方法中的查询响应时间对比示意图。
具体实施方式
[0028]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0029]本专利技术提供一种海量轨迹数据的读写方法,基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,
[0030]构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
[0031]通过该方法,能以毫秒级速度精确完成海量轨迹数据的写入与查询。本专利技术方法采用分布式架构、批量顺序写入等设计来优化海量数据的写入速度;通过构建时空索引来避免全表扫描、缩小查找范围,通过多节点架构进行并发读取,并增加缓存池,进而大幅提升写入与查询速度。
[0032]具体应用中,在本专利技术的一些实施例中,具体说明了本专利技术方法的实现过程。
[0033]其中本专利技术方法采用分布式架构,可以把集群中的节点分为两类,管理节点与数据节点。管理节点负责管理集群、协调数据的分配,数据节点负责数据的存储、查询。在数据节点中增加缓冲池来实现批量写入,同时禁止修改旧数据,以追加的方式来顺序写入数据。
[0034]批量写入的过程为:当数据节点接收到数据后,先将数据暂存在内存中的缓冲池,而非直接持久化到硬盘中,当缓冲池满足批量写入条件,比如缓冲池满后,进行数据的批量写入。由于刚写入的数据往往也是热点数据,提升对热点数据的查询效率能大幅提升系统的查询速度,因此,本专利技术对缓冲池的功能进行增强:比如查询数据时先在缓冲池中查询,如命中则直接返回数据;如未命中,再从硬盘中查询。
[0035]除此之外,为解决缓冲池的引入有可能会带来了数据不一致的风险,在本专利技术的另一些实施例中采用了预写式日志的设计。利用预写式日志在数据写入内存后、持久化到硬盘前,先将数据以日志的形式持久化到硬盘,日志的持久化以批量顺序写的形式周期性进行。
[0036]除此之外,如果只是将数据积累,批量写入硬盘有时无法有效减少随机写入,还需要配合顺序写入才可以,即以追加的方式将数据写入到文件,但会引起数据的重复,对此,本专利技术方法利用写入的数据的主键以及时间戳区分数据记录。先利用主键用于区分记录,对于主键相同的记录,再用时间戳进行区分,即在查询时返回带有最新时间戳的数据。另外对于主键重复的记录,本专利技术还可以设置清理线程,在系统空闲时对其进行清理,只保留最新的数据记录。
[0037]进一步说明本专利技术方法,在本专利技术方法的另一些实施例中,为及时查询数据,构建时空索引。本专利技术方法将时间、平面空间区分看待,分别对时间、平面空间分别建立索引,并先从时间范围过滤,这样能大幅缩小搜索范围,再从空间范围进行过滤,以提升搜索速度。
[0038]其中对于时间索引的构建,本专利技术采用B+Tree对其索引,并在此基础上可增加二级索引,从而实现海量数据的快速定位。
[0039]空间索引出于对并发写入、距离保留度、编码复杂度等方面的考量,本专利技术方法选择使用SpaceFillingCurve中的Z

Order方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种海量轨迹数据的读写方法,其特征是基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。2.根据权利要求1所述的一种海量轨迹数据的读写方法,其特征是进行轨迹数据批量写入:根据分布式集群节点接收并暂存在缓冲池的轨迹数据,满足缓存池批量写入条件时,进行轨迹数据的批量写入。3.根据权利要求1或2所述的一种海量轨迹数据的读写方法,其特征是构建时空索引:分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z

Order方法,并使用GeoHash编码构建空间索引。4.根据权利要求1所述的一种海量轨迹数据的读写方法,其特征是利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。5.一种海量轨迹数据的读写系统,其特征是包括缓存模块、批量写入模块、索引模...

【专利技术属性】
技术研发人员:陈晏鹏李晓辉
申请(专利权)人:浪潮软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1