海量空间数据的分布式存储查询优化分析
2023-09-16张新建杨春
王 云 张新建 杨春
(中国电子科技集团公司第二十八研究所,江苏南京 210028)
0 引言
目前,空间数据逐渐朝着空间大数据的方向发展,且呈现多样化的发展趋势,其中包含地名地址数据、互联网数据、传感器数据等。因此,在空间数据处理的视角下,可通过分布式数据结构设计,利用SQL 数据库进行存储,该方法在实际使用中具有成本低、扩展性强等优点[1]。在对海量空间数据的分布式存储查询研究中,要结合空间数据的处理需求对空间数据进行分类控制,并提高海量空间数据的分类存储查询效果。
1 研究背景
海量空间数据查询是在时空数据查询的基础上,对不随时间变化的空间数据对象进行查询,其中包含范围查询、点查询以及KNN 查询等多种方式。在进行数据查询与信息处理的过程中,利用SQL 数据库对海量空间数据的存储模式、处理方式以及查询过程等方面进行综合分析,在数据查询过程中,需根据存储模型以及数据类型,提高海量空间数据的查询性能。在空间索引中,可根据海量空间数据的特点,结合DBMS 实现空间数据库的搭建与应用[2]。在多维空间对象的索引下,可根据索引特征建立多维特征的空间对象,并通过图计算的方式,利用分布式平台,对海量空间数据进行管理。空间对象的管理与位置服务质量有直接的关系,在建立大数据集合的视角下,海量空间数据查询要从I/O、索引等角度进行综合分析,并建立分布式数据库,进一步提高海量空间数据的分布管控水平。
2 研究方法
2.1 实验环境
在建立分布式平台的基础上,进行海量空间数据的分布存储查询优化,还需要建立统一的数据集,对SQL 数据库与Spark 分布式内存计算平台的联合应用性能展开讨论。创建实验环境,对实验数据进行分析,并对海量空间数据进行存储查询,从而检验分布式内存计算平台的数据存储查询性能。在实验过程中,硬件配置包含Intel W3505 CPU、500G-Disk、4G-Memory、传统关系数据库MySQL 数据库。搭建Spark 计算框架,则是通过Standalone 模式进行部署。创建3 个节点的分布计算集群,包含一个主管理节点以及两个计算节点,对海量空间数据资源进行集中化管理,同时利用分布式文件系统HDFS 为海量空间数据的存储支持,达到检验海量空间数据查询性能的目的[3,4]。
2.2 实验数据
在对海量空间数据进行分析的过程中,实验数据分析是利用TPC-H 数据集进行分析,建立TPC-H 模型后,可对1GB-10000GB 的空间数据进行读取与分析。本次实验分析是选择ORDERS 的O-ORDDERKEY 属性以及LINETEM 中的L-ORDERKEY 属性进行分析,具体数据集如表1 所示。
表1 TPC-H数据集
在进行数据统计与处理中,要对海量空间数据进行查询与分析,并通过数据综合处理与统计分析,建立关系数据库,具体的数据表属性如表2 所示。
表2 TPC-H数据表属性
在海量空间数据存储查询中,对SQL 与Spark 的连接查询性能进行检验,以单位时间内的海量数据查询量为评估标准,并对数据逻辑关系进行统计与计算。具体的计算公式如下。
在上述公式中,公式1 以及公式3 分别是针对SQL以及Spark 组间内的所有元数据进行统计,其中NMySQL以及NSpark是平台对海量空间数据完成查询的平均时间,Num_Result则是海量空间数据查询的数据数量。在进行计算与分析中,TAve-Spark集群计算框架,可以保存节点数据。在数据统计与分析中,可引入Spark 以及MySQL 的性能,并对两者的性能进行对比分析[5,6]。
2.3 实验分析
在实验数据分析中,针对海量空间数据存储查询性能进行测试,将Spark 平台中Map 端与Reduce 端进行连接,并对数据关系进行分析,在创建空间数据后,可以发现随着组数的增加,两大数据表的数据处理也存在一定的差异,在前6 组实验中,两者之间的时间差异并不大,随着组数据越来越多,会出现数据溢出的情况,Spark 平台选择ReduceJoin 算法进行对比分析,连接查询性能的影响结果如表3 所示。
表3 Spark运行内存对海量空间数据查询性能的影响
结合上述信息数据,可以发现A 组的变化波动比较小,这说明随着海量空间数据量的增加,Spark 的内存也需要逐渐提升,这对优化空间数据的查询效果有促进作用。
在Spark 以及MySQL 的应用中,要从索引应用的角度进行分析,其查询结果如图1 所示。
图1 MySQL有索引查询与Spark查询
结合上述结果可以发现,Spark 平台具有性能优势,可实现海量空间数据的统计与分析。在单位时间内,平均完成查询量的变化比较明显,在执行时间分解的基础上,可在单位时间内,实现海量空间数据的存储查询,并提高数据统计与分析的综合水平。
3 研究结果
3.1 内存存储模型设计
应用索引对数据传输过程进行优化,需要从空间数据分布的角度进行优化,并基于融合空间编码技术,利用内存存储模型进行计算,其模型搭建如图2 所示。
图2 分布式存储模型
海量空间数据的内存存储控制要尽可能减少属性输出,降低冗余数据以及查询负载对海量空间数据分析的影响。在数据整合与处理的基础上,可通过分布式存储模型解决查询负载问题。
3.2 TrieTree 索引设计与实现
在建立海量空间数据分布式存储查询优化机制的过程中,已经证明索引的应用可提高海量空间数据的处理效果,基于此,引入TrieTree 索引,对海量空间数据的分布式存储查询过程进行优化,在实现数据整合的同时,可利用海量空间对象数据存储与内存存储分析的方式提高海量空间数据存储与查询的精度。实现TrieTree 索引应用的具体设计步骤如下。
(1)在给定范围内查询输入的坐标点;(2)计算数据覆盖面;(3)访问数据库中所有的MBR;(4)扫描匹配时间戳;(5)数据筛选;(6)实现数据统计与分析。
3.3 分布式存储模型实现与查询优化
在存储模型优化过程中,可通过组合粗粒度定位以及本地扫描的方式对分布式存储模型进行优化,在建立优化模型的基础上,固定海量空间数据的查询半径,对冗余数据进行处理,并根据数据查询过程以及数据分析目的对数据处理过程进行完善,从而降低数据冗余区域。在分布式存储模型的应用下,可通过编码精度以及检索MBR 数量之间的关系控制,提高分布式存储模型对空间数据存储查询的优化效果[7]。
4 启示建议
4.1 明确衡量标准
在海量空间数据分布式存储查询优化过程中,要明确海量空间数据的分类标准,根据海量空间数据的类型,从不同数据统计与分析的角度,提高数据分析与处理的精度。一方面,减小海量空间数据检索面积,并对海量空间数据之间的关系进行整合与处理,提高数据整合处理效果;另一方面,对不同查询半径的编码精度以及检索过程进行优化,并根据海量空间数据类型对数据集进行优化,可利用POI 数据对海量空间数据进行存储与查询,满足实际操作需求。
4.2 重视数据应用
场景不同,海量空间数据也存在一定的差异性,所以,在分布式存储模型的应用中,可在数据环境下,对数据存储过程、数据空间占比进行优化,并利用SQL 数据库,依托数据关系,提高海量空间数据的分析与查询处理效果。在数据分析与处理中,还需要利用不同的编码精度,提高海量空间数据查询的时效性与处理效果。在海量空间数据应用下,可调整编码存储精度与查询时间之间的关系,并对数据进行统计,满足海量空间数据分析的需求。
4.3 更新查询方法
在对海量空间数据的查询方法进行更新的过程中,要结合海量空间数据的操作与处理需求,对查询数据进行整合与分析,并更新查询方式,利用不同的索引对Spark与MySQL 数据库之间的数据处理时间、性能等进行对比优化,从而提高海量空间数据的分布式查询分析效果。
5 结语
海量空间数据的存储与查询性能的优化,要利用融合空间编码技术以及分布式存储模型对海量空间数据进行分类存储,并保证数据操作与控制的综合水平。实现海量空间数据优化,要在数据查询与分析的基础上,对海量空间对象存储以及数据处理等进行融合,最大化提高海量空间数据的检索效率与处理效果,并满足实时性的查询需求。在海量空间数据查询与处理中,可对分布式存储模型的实际应用进行调整,提高数据分析的可扩展性,并满足海量空间数据分类管理与查询分析的综合需求。