CN113448968A - 一种海量轨迹数据的读写方法及系统 - Google Patents
一种海量轨迹数据的读写方法及系统 Download PDFInfo
- Publication number
- CN113448968A CN113448968A CN202110822979.0A CN202110822979A CN113448968A CN 113448968 A CN113448968 A CN 113448968A CN 202110822979 A CN202110822979 A CN 202110822979A CN 113448968 A CN113448968 A CN 113448968A
- Authority
- CN
- China
- Prior art keywords
- index
- track data
- writing
- space
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 abstract description 8
- 230000002688 persistence Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种海量轨迹数据的读写方法及系统,涉及数据检索技术领域;基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示;本发明采用分布式架构,将数据持久化过程中的频繁随机写入改为批量顺序写入,以减少寻址操作,进而提升写入效率。并且本发明建立时空索引,并先从时间范围过滤,能大幅缩小搜索范围,再从空间范围进行过滤,以提升搜索速度。同时利用时空索引进行轨迹数据的查询及展示,便于使用及提高用户体验。
Description
技术领域
本发明公开一种方法及系统,涉及数据检索技术领域,具体地说是一种海量轨迹数据的读写方法及系统。
背景技术
随着科学技术的发展,人们产生的轨迹数据种类越来越丰富,数量越来越多。传统的集中式存储方式受限于单机性能,不能满足海量数据的并发写入及查询;而现有的分布式存储方式采用多节点的设计,拥有良好的并发读写特性,适合海量数据的存储、查询。但现有的分布式存储写入方式及写入速度还有待提高。
发明内容
本发明针对现有技术的问题,提供一种海量轨迹数据的读写方法及系统,能以毫秒级速度精确完成海量轨迹数据的写入与查询。
本发明提出的具体方案是:
一种海量轨迹数据的读写方法,基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,
构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
进一步,所述的一种海量轨迹数据的读写方法中进行轨迹数据批量写入:
根据分布式集群节点接收并暂存在缓冲池的轨迹数据,
满足缓存池批量写入条件时,进行轨迹数据的批量写入。
进一步,所述的一种海量轨迹数据的读写方法中构建时空索引:
分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z-Order方法,并使用GeoHash编码构建空间索引。
进一步,所述的一种海量轨迹数据的读写方法中利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。
一种海量轨迹数据的读写系统,包括缓存模块、批量写入模块、索引模块及查询模块,
缓存模块基于分布式存储方式,增加缓冲池暂存写入轨迹数据,批量写入模块利用缓冲池进行轨迹数据批量写入,
索引模块构建时空索引,查询模块利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
进一步,所述的一种海量轨迹数据的读写系统中批量写入模块进行轨迹数据批量写入:
根据分布式集群节点接收并暂存在缓冲池中的轨迹数据,
当满足缓存池批量写入条件时,进行轨迹数据的批量写入。
进一步,所述的一种海量轨迹数据的读写系统中索引模块构建时空索引:
分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z-Order方法,并使用GeoHash编码构建空间索引。
进一步,所述的一种海量轨迹数据的读写系统中查询模块利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者查询模块利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。
本发明的有益之处是:
本发明提供一种海量轨迹数据的读写方法,采用分布式架构,将数据持久化过程中的频繁随机写入改为批量顺序写入,以减少寻址操作,进而提升写入效率。并且本发明建立时空索引,并先从时间范围过滤,能大幅缩小搜索范围,再从空间范围进行过滤,以提升搜索速度。同时利用时空索引进行轨迹数据的查询及展示,便于使用及提高用户体验。
附图说明
图1是本发明方法批量写入流程示意图。
图2是本发明方法构建时空索引流程示意图。
图3是本发明方法与现有集中存储工具方法中的写入速度对比示意图。
图4是本发明方法与现有集中存储工具方法中的查询响应时间对比示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种海量轨迹数据的读写方法,基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,
构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
通过该方法,能以毫秒级速度精确完成海量轨迹数据的写入与查询。本发明方法采用分布式架构、批量顺序写入等设计来优化海量数据的写入速度;通过构建时空索引来避免全表扫描、缩小查找范围,通过多节点架构进行并发读取,并增加缓存池,进而大幅提升写入与查询速度。
具体应用中,在本发明的一些实施例中,具体说明了本发明方法的实现过程。
其中本发明方法采用分布式架构,可以把集群中的节点分为两类,管理节点与数据节点。管理节点负责管理集群、协调数据的分配,数据节点负责数据的存储、查询。在数据节点中增加缓冲池来实现批量写入,同时禁止修改旧数据,以追加的方式来顺序写入数据。
批量写入的过程为:当数据节点接收到数据后,先将数据暂存在内存中的缓冲池,而非直接持久化到硬盘中,当缓冲池满足批量写入条件,比如缓冲池满后,进行数据的批量写入。由于刚写入的数据往往也是热点数据,提升对热点数据的查询效率能大幅提升系统的查询速度,因此,本发明对缓冲池的功能进行增强:比如查询数据时先在缓冲池中查询,如命中则直接返回数据;如未命中,再从硬盘中查询。
除此之外,为解决缓冲池的引入有可能会带来了数据不一致的风险,在本发明的另一些实施例中采用了预写式日志的设计。利用预写式日志在数据写入内存后、持久化到硬盘前,先将数据以日志的形式持久化到硬盘,日志的持久化以批量顺序写的形式周期性进行。
除此之外,如果只是将数据积累,批量写入硬盘有时无法有效减少随机写入,还需要配合顺序写入才可以,即以追加的方式将数据写入到文件,但会引起数据的重复,对此,本发明方法利用写入的数据的主键以及时间戳区分数据记录。先利用主键用于区分记录,对于主键相同的记录,再用时间戳进行区分,即在查询时返回带有最新时间戳的数据。另外对于主键重复的记录,本发明还可以设置清理线程,在系统空闲时对其进行清理,只保留最新的数据记录。
进一步说明本发明方法,在本发明方法的另一些实施例中,为及时查询数据,构建时空索引。本发明方法将时间、平面空间区分看待,分别对时间、平面空间分别建立索引,并先从时间范围过滤,这样能大幅缩小搜索范围,再从空间范围进行过滤,以提升搜索速度。
其中对于时间索引的构建,本发明采用B+Tree对其索引,并在此基础上可增加二级索引,从而实现海量数据的快速定位。
空间索引出于对并发写入、距离保留度、编码复杂度等方面的考量,本发明方法选择使用SpaceFillingCurve中的Z-Order方案,并使用GeoHash来实现编码。
利用本发明方法实现数据查询时,可进行轨迹数据的多维度查询,其中主要包括对指定对象的轨迹进行时空过滤的查询和对指定时空区域内的轨迹数据的查询。
进行指定对象的轨迹数据时空过滤的查询时,指定对象一般指人、车、包裹等物体,根据传入指定对象的唯一标识、时间范围、空间区域等条件,其中空间区域由经纬度表示,将经纬度转换为GeoHash编码,并将这些查询条件转发至数据节点每个计算单元并发执行;计算单元收到查询条件后会先根据对象唯一标识符、时间组成的联合索引查询出相应的轨迹数据,然后利用前缀匹配规则过滤出指定空间区域内的轨迹记录,将各个计算单元返回的结果进行汇总排序,并向用户展示。
进行指定时空区域内的轨迹数据的查询时,查询过程与指定对象的轨迹数据的查询过程基本相似,需要经过转码、匹配、过滤、汇总等步骤,不同之处在于无需查找联合索引,而是直接查找时间单一索引,完成查询。
在实际应用中,比如针对不同规模数据量的车辆轨迹数据,对传统集中式存储方式与本发明所述方法进行读写性能试验,过程如下:
S1:分别在集中式存储实例与本发明实例中创建车辆轨迹表,并创建时空索引。
S2:分别向集中式存储实例与本发明实例中写入测试数据,并统计写入速度。
S3:分别对集中式存储实例与本发明实例执行相同查询条件的查询请求,并统计响应时间。
S4:不断增大数据的规模,逐一重复第2、3步。
得到的试验结果参考图3、图4所示,对比可见,本发明所述方法能大幅优化海量轨迹数据的存储、查询速度,且速度受数据量变化影响小。
同时本发明还提供一种海量轨迹数据的读写系统,包括缓存模块、批量写入模块、索引模块及查询模块,
缓存模块基于分布式存储方式,增加缓冲池暂存写入轨迹数据,批量写入模块利用缓冲池进行轨迹数据批量写入,
索引模块构建时空索引,查询模块利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地本发明系统能以毫秒级速度精确完成海量轨迹数据的写入与查询。本发明系统应用于分布式架构、批量顺序写入等设计来优化海量数据的写入速度;通过构建时空索引来避免全表扫描、缩小查找范围,通过多节点架构进行并发读取,并增加缓存池,进而大幅提升写入与查询速度。
需要说明的是,上述较佳实施例的各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种海量轨迹数据的读写方法,其特征是基于分布式存储方式,增加缓冲池暂存写入轨迹数据并进行轨迹数据批量写入,
构建时空索引,利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
2.根据权利要求1所述的一种海量轨迹数据的读写方法,其特征是进行轨迹数据批量写入:
根据分布式集群节点接收并暂存在缓冲池的轨迹数据,
满足缓存池批量写入条件时,进行轨迹数据的批量写入。
3.根据权利要求1或2所述的一种海量轨迹数据的读写方法,其特征是构建时空索引:
分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z-Order方法,并使用GeoHash编码构建空间索引。
4.根据权利要求1所述的一种海量轨迹数据的读写方法,其特征是利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。
5.一种海量轨迹数据的读写系统,其特征是包括缓存模块、批量写入模块、索引模块及查询模块,
缓存模块基于分布式存储方式,增加缓冲池暂存写入轨迹数据,批量写入模块利用缓冲池进行轨迹数据批量写入,
索引模块构建时空索引,查询模块利用时空索引依次通过时间范围和空间范围查询轨迹数据的读写记录并用于展示。
6.根据权利要求5所述的一种海量轨迹数据的读写系统,其特征是批量写入模块进行轨迹数据批量写入:
根据分布式集群节点接收并暂存在缓冲池中的轨迹数据,
当满足缓存池批量写入条件时,进行轨迹数据的批量写入。
7.根据权利要求5或6所述的一种海量轨迹数据的读写系统,其特征是索引模块构建时空索引:
分别构建时间索引和空间索引,其中采用B+Tree构建时间索引,采用Z-Order方法,并使用GeoHash编码构建空间索引。
8.根据权利要求5所述的一种海量轨迹数据的读写系统,其特征是查询模块利用时空索引依次通过时间范围和空间范围查询指定对象的轨迹数据的读写记录或者查询模块利用时空索引依次通过时间范围和空间范围查询指定时空区域内的轨迹数据的读写记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110822979.0A CN113448968A (zh) | 2021-07-21 | 2021-07-21 | 一种海量轨迹数据的读写方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110822979.0A CN113448968A (zh) | 2021-07-21 | 2021-07-21 | 一种海量轨迹数据的读写方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113448968A true CN113448968A (zh) | 2021-09-28 |
Family
ID=77816889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110822979.0A Pending CN113448968A (zh) | 2021-07-21 | 2021-07-21 | 一种海量轨迹数据的读写方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448968A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648391A (zh) * | 2023-11-28 | 2024-03-05 | 开普勒卫星科技(武汉)有限公司 | 一种gnss轨迹数据存储、查询方法及数据库系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184229A (zh) * | 2011-05-11 | 2011-09-14 | 中国科学院软件研究所 | 一种海量rfid标签信息的内存数据存储方法 |
US8694503B1 (en) * | 2013-07-31 | 2014-04-08 | Linkedin Corporation | Real-time indexing of data for analytics |
CN104008212A (zh) * | 2014-06-23 | 2014-08-27 | 中国科学院重庆绿色智能技术研究院 | 一种地理位置信息相关联的物联网时间序列数据存取方法 |
CN112181902A (zh) * | 2020-11-30 | 2021-01-05 | 阿里云计算有限公司 | 数据库的存储方法、装置及电子设备 |
CN113076334A (zh) * | 2020-01-06 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 数据查询方法、索引生成方法、装置及电子设备 |
-
2021
- 2021-07-21 CN CN202110822979.0A patent/CN113448968A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184229A (zh) * | 2011-05-11 | 2011-09-14 | 中国科学院软件研究所 | 一种海量rfid标签信息的内存数据存储方法 |
US8694503B1 (en) * | 2013-07-31 | 2014-04-08 | Linkedin Corporation | Real-time indexing of data for analytics |
CN104008212A (zh) * | 2014-06-23 | 2014-08-27 | 中国科学院重庆绿色智能技术研究院 | 一种地理位置信息相关联的物联网时间序列数据存取方法 |
CN113076334A (zh) * | 2020-01-06 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 数据查询方法、索引生成方法、装置及电子设备 |
CN112181902A (zh) * | 2020-11-30 | 2021-01-05 | 阿里云计算有限公司 | 数据库的存储方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
《数据库百科全书》编委会, 上海:上海交通大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648391A (zh) * | 2023-11-28 | 2024-03-05 | 开普勒卫星科技(武汉)有限公司 | 一种gnss轨迹数据存储、查询方法及数据库系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其系统 | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
US8700674B2 (en) | Database storage architecture | |
US9047333B2 (en) | Dynamic updates to a semantic database using fine-grain locking | |
US10037355B2 (en) | Mechanisms for merging index structures in MOLAP while preserving query consistency | |
US20170109386A1 (en) | Create table for exchange | |
CN110990402B (zh) | 由行存储到列存储的格式转化方法、查询方法及装置 | |
CN104156380A (zh) | 一种分布式存储器哈希索引方法及系统 | |
WO2008140937A2 (en) | Query handling in databases with replicated data | |
CN103631910A (zh) | 一种分布式数据库多列复合查询的系统及方法 | |
CN104536904A (zh) | 一种数据管理的方法、设备与系统 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
Schaffner et al. | A hybrid row-column OLTP database architecture for operational reporting | |
CN102222099A (zh) | 一种数据存储、查找方法及装置 | |
US20150234898A1 (en) | Apparatus and method for processing query in database with hybrid storage | |
CN112445889A (zh) | 存储数据、检索数据的方法及相关设备 | |
CN111639075A (zh) | 一种基于扁平化r树的非关系数据库矢量数据管理方法 | |
CN114610708A (zh) | 一种向量数据处理方法及装置、电子设备及存储介质 | |
CN113448968A (zh) | 一种海量轨迹数据的读写方法及系统 | |
Rotem et al. | Extendible arrays for statistical databases and OLAP applications | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
US7890456B2 (en) | Sharing of database objects | |
CN116881243A (zh) | 基于时间序列数据特征的学习型索引方法及系统 | |
CN112000666B (zh) | 一种面向列的数据库管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210928 |
|
RJ01 | Rejection of invention patent application after publication |