主流时空数据库的对比分析¶
摘要:¶
现代的一些问题需要处理大量的时空数据。因此,为了满足应用程序的需求,越来越多的系统正在适应这些数据的特殊性。最突出的例子可能是数据存储系统,它开发了大量的功能,以有效地支持时空数据操作。这项工作的动机在于,这些数据存储系统中哪一种更适合满足工业应用的需求。特别是,所进行的工作,旨在确定在响应时间方面最有效的数据存储系统,比较两类中最具代表性的两种(NoSQL和关系型),即 MongoDB 和 PostgreSQL。评估是基于真实的业务场景和它们的后续查询以及它们的底层基础设施,并最终确认了PostgreSQL在几乎所有情况下的优越性,除了多边形交叉查询。此外,使用索引可以显着缩短平均响应时间,特别是在使用 MongoDB 的情况下。
关键词:时空分析;性能评估;时空数据;PostgreSQL¶
1 引言¶
现代系统⽣成的空间数据量在过去⼏年中出现了惊⼈的增⻓。管理和分析这些数据正变得越来越重要,从⽽实现可能改变科学和社会的新应⽤。分布式数据库系统已被证明有助于处理这种大数据洪流。这些系统有两个关键特征:
a) 系统可扩展性:底层数据库系统必须能够管理和存储⼤量空间数据,并允许应⽤程序有效地检索这些数据;
b) 交互性能:对客⼾请求的响应时间⾮常快。
过多的可⽤系统和基础技术让研究⼈员和从业者都对解决⼿头的⼤空间数据问题的最佳选择感到困惑。查询和数据特征只会增加混乱。研究界必须为澄清⽬的做出贡献,并强调某些分布式数据库平台的优缺点。这项⼯作旨在通过⽐较两个类似平台的特定需求类别(即复杂时空查询中的响应时间⾮常重要的需求)来为这个⽅向做出贡献。
在参考论文中,⽐较了基于可扩展⽂档的 NoSQL 数据存储 - MongoDB和带有 PostGIS 扩展的开源对象关系数据库系统 (ORDBMS) - PostgreSQL 在响应时间⽅⾯的性能。 PostGIS 是⼀个空间扩展器,它增加了对地理对象的⽀持。性能是使⽤⼀组时空查询来衡量的,这些查询模拟了在 MarineTraffic 提供的数据集中执⾏的真实案例场景。在多次的对照结果表明,PostgreSQL 在⼏乎所有查询中都优于 MongoDB。所有查询的平均加速⼤约为 2.1。此外,索引会显着影响响应时间。尽管如此,这种减少在 PostgreSQL 中要低得多。
2 MongoDB 概述¶
MongoDB 是⼀个基于开源⽂档的 NoSQL 数据存储,由 10gen 商业化⽀持。 MongoDB虽然是⾮关系型的,但它实现了关系型数据库的许多特性,如排序、⼆级索引、范围查询和嵌套⽂档查询等。还⽀持创建、插⼊、读取、更新和删除等运算符以及⼿动索引、嵌⼊式⽂档索引和索引基于位置的数据。
在这样的系统中,数据存储在称为⽂档的集合中,⽂档是为托管数据提供某种结构和编码的实体。每个⽂档本质上都是标量值、列表或嵌套数组的关联数组。每个⽂档都有⼀个唯⼀的特殊键“ObjectId”,⽤于显式标识,⽽这个键和对应的⽂档在概念上类似于键值对。
3 PostgreSQL 概述¶
PostgreSQL 是⼀种开源对象关系数据库系统 (ORDBMS)。有⼀个名为 PostGIS 的特殊扩展可⽤,它集成了多个地理函数并⽀持地理对象。 PostGIS 实现基于“轻量级”⼏何图形,索引经过优化以减少磁盘和内存使⽤。 PostgreSQL 数据库的接⼝语⾔是标准的 SQL。 PostGIS 具有最全⾯的地理功能,具有⼀千多个空间功能。它⽀持点、线串、多边形、多点、多线串的⼏何类型,MultipPolygons 和 GeometryCollections。有⼏个⽤于地理空间测量的空间算⼦,如⾯积、距离、⻓度和周⻓。 PostgreSQL ⽀持多种类型的索引,例如:BTree、Hash、⼴义倒排索引 (GIN) 和称为 R-tree-over-GiST 的⼴义搜索树 (GiST)。默认索引类型是 BTree,它可以与所有数据类型⼀起使⽤,并且可以有效地⽤于相等和范围查询。对于⼀般的平衡树结构和⾼速空间查询,PostgreSQL 使⽤可⽤于索引⼏何数据类型的 GiST 索引,以及全⽂搜索。
4 数据库对比¶
在 MongoDB 中,地理表⽰需要遵循 GeoJSON 格式结构,以便能够对地理信息设置地理空间索引。PostgreSQL 中有批量加载数据的复制机制,可以达到很好的吞吐量。数据必须为 CSV 格式,命令可以接受 多个分隔符。数据加载到数据库后的下⼀步是将纬度和经度列转换为 PostGIS 几何点对象。这些列必须转换为随后可以在空间上查询的⼏何数据。我们使⽤定义的 PostGIS 函数创建了⼀个名为geom的列,该列实质上包含 根据每条记录的纬度和经度创建的 POINT 几何图形。针对同一数据集在 MongoDB 中占用的总大小比 PostgreSQL 中几乎大四倍,每行大小约为 96 字节。这种情况的原因是存储在 MongoDB 中的数据是 GeoJson 格式,每条记录都包含许多额外的字符和⼀个 唯⼀的⾃动创建的 ID,称为 ObjectId。因此,每条记录的⼤⼩都⽐其原始 CSV 格式⼤得多。另⼀⽅⾯,在 PostgreSQL 中,数据以 CSV 格式提取到数据库中,并添加了包含每个纬度和经度的 POINT ⼏何形状的 geom 列。
基于参考文献中实验的发现,PostgreSQL 在所有查询中都优于 MongoDB。并且在某些情况下,响应时间快了近 4 倍。随着样本增⻓和减少,PostgreSQL 的优势将会显⽽易⻅。仅仅只是在多个不同多边形组的交集内查找不同数量时间戳的物体时,MongoDB 的平均响应时间更短,与 PostgreSQL 相⽐减少了⼀半。原因是 MongoDB 中通过两个匹配操作的聚合实现的交集⽐ PostgreSQL 中的交集更有效。
使⽤索引⽀持两个系统中的⾼效查询执⾏。 MongoDB 可以使⽤索引来限制它必须检查的⽂档数量,否则 将在集合中的每个⽂档中执⾏扫描操作,以选择与查询语句匹配的⽂档(集合扫描)。在 PostgreSQL 中,索引 允许数据库服务器更快地查找和检索特定⾏,因为它必须“⾛”到搜索树的⼏层深处。对于索引加速,PostgreSQL 与 MongoDB 相⽐的平均加速,在相同的情况下,MongoDB 的性能优于 PostgreSQL,MongoDB 的平均加速⽐为 2.6。
5 结论¶
在本文中,我们分析和⽐较了两种不同数据库系统(基于⽂档的 NoSQL 数据存储 MongoDB 和开源对象关系数据库系统 PostgreSQL 与 PostGIS 扩展)之间在响应时间⽅⾯的性能。每个数据库系统都部署在 Amazon Web Services (AWS) EC2 集群实例上。我们分别为 MongoDB 和 PostgreSQL 系统采⽤了副本集和流复制集群设置。对于两个系统之间的评估,我们采⽤了⼀组时空查询来模拟现实世界场景并呈现时空谓词,并使⽤了由基于社区的 AIS 船舶跟踪系统 (VTS) 提供给我们的数据集) 的海洋交通。
参考文献¶
- 宋关福, 陈勇, 罗强, 等. GIS 基础软件技术体系发展及展望[J]. 地球信息科学学报, 2021, 23(1): 2-15.
- 张楚涵, 张家侨, 冯剑琳. AKNN-Qalsh: PostgreSQL 系统高维空间近似最近邻检索插件[J]. 中山大学学报: 自然科学版, 2019, 58(3): 79-85.
- 刘红超, 缪燕, 郝悍勇, 等. 基于代理重加密的 PostgreSQL 系统访问控制方法[J]. 计算机工程, 2018, 44(8): 192-198.
- 杨鹏, 林俊晖. 一种基于 MongoDB 和 Hadoop 的海量非结构化物联网数据处理方案[J]. 微电子学与计算机, 2018, 35(4): 68-72.
- 许娜, 耿恒高, 徐传鹏, 等. 基于 MongoDB 的地震勘探数据管理系统的设计与实现[J]. 实验室研究与探索, 2022.
- 马志程, 袁海峰, 谷洋, 等. 文档-关系数据查询执行技术研究与实现[J]. 计算机科学与探索, 2019, 14(8): 1315-1326.
- Joshua D Drake.PostgreSQL的发展动态[J].软件和集成电路,2018(07):58-59.DOI:10.19609/j.cnki.cn10-1339/tn.2018.07.024.
- Telescope hubble site. http://hubble.stsci.edu/the telescope/hubble essentials/quick facts.php. Accessed: 2018-7-15
- Makris A, Tserpes K, Spiliopoulos G, et al. Performance Evaluation of MongoDB and PostgreSQL for Spatio-temporal Data[C]//EDBT/ICDT Workshops. 2019.
- Varlamis I, Tserpes K, Sardianos C (2018) Detecting search and rescue missions from ais data. In: 2018 IEEE 34Th international conference on data engineering workshops (ICDEW). IEEE
创建日期: 2022-12-27
作者: