一种基于Spark的空间矢量数据内存存储查询方法及系统技术方案

技术编号:28785111 阅读:29 留言:0更新日期:2021-06-09 11:19
本发明专利技术提出一种基于Spark的空间矢量数据内存存储查询方法及系统,所述方法及系统为海量空间矢量数据在Spark内存中的存储结构和空间查询操作提供了新的解决方案,针对数据空间分布不均衡以及跨分区存储的现象,提出了一种带有buffer分区的非均匀网格分区方法。在每个分区中引入四叉网格树的结构进行数据的局部索引,通过合理剪枝,其有效提高每个分区的本地查询效率。基于本发明专利技术提出的空间数据内存结构,可以将Spark扩展为支持KNN和范围查询的分布式系统。通过对存储和查询过程进行封装,该执行过程对用户透明,用户可以通过传递参数直接调用对应的算子。接调用对应的算子。接调用对应的算子。

【技术实现步骤摘要】
一种基于Spark的空间矢量数据内存存储查询方法及系统


[0001]本专利技术涉及空间数据存储查询,特别涉及一种基于Spark的空间矢量数据内存存储查询方法及系统,属于GIS领域。

技术介绍

[0002]广义上的空间数据是指所有具有空间特征的数据,当前广泛应用于森林调查、国土资源调查以及导航等领域。但是,近年来随着遥感以及移动互联网等技术的迅猛发展,空间数据的规模空前增长,如果继续按照传统的地理信息系统(GIS)的方式进行数据存储与查询,行业会面临海量数据带来的巨大处理压力。随着大数据概念的产生以及相关技术的迅猛发展,GIS领域迎来了新的曙光。Hadoop作为大数据时代具有代表性的成果被广泛应用于空间数据的存储与处理,其中包括Hadoop

GIS、SpatialHadoop等分布式框架。但是Hadoop本身的特点导致在计算过程中系统会多次访盘以及中间结果的落盘。而Spark作为内存计算计算引擎在数据分析领域备受青睐,因此其Spark一经推出便涌现出GeoSpark、Simba等空间数据处理框架,但是这些工作更多的是将传统的空本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Spark的空间矢量数据内存存储查询系统,其特征在于:该系统包括底层基础设施层、数据处理层和用户接口层;其中,底层基础设施层包括矢量数据读取模块,数据处理层包括数据网格索引模块、网格分区模块和封装模块,用户接口层包括查询模块;其中矢量数据读取模块负责将空间矢量数据提取出来;数据网格索引模块负责根据空间对象的特征进行网格索引;网格分区模块基于所述的数据网格索引模块索引后的数据进行网格分区;封装模块负责将数据包按类别封装为算子;查询模块进行空间数据的剪枝操作完成Spark的空间矢量数据内存存储查询。2.根据权利要求1所述的一种基于Spark的空间矢量数据内存存储查询系统,其特征在于:所述的网格分区模块通过判断空间对象是否与多个网格单元相交,从而进行空间对象分配功能。3.根据权利要求2所述的一种基于Spark的空间矢量数据内存存储查询系统,其特征在于:所述的空间对象分配功能,具体包括网格单元相交情况下的分配buffer分区后聚类并存储功能,以及网格单元不相交情况下的四叉树索引后按类别聚类并存储功能。4.一种基于Spark的空间矢量数据内存存储查询方法,是基于权利要求1

3中任一一项所述的系统为基础而实现的,其特征在于:具体方法步骤如下:步骤S101,利用所述的数据读取模块将空间矢量数据从文件系统或数据库中读取到Spark RDD中;步骤S102,在所述的数据网格索引模块对所有数据进行抽样,并判断数据集中空间对象的分布,根据分布特征构建非均匀网格索引;步骤S103,根据步骤S102得到的非均匀网格索引,对原始的RDD基于该索引进行重分区操作,在分区过程中判断空间对象是否与多个网格单元相交;步骤S104,所述的网格分区模块根据所述的数据网格索引模块索引后的数据,判断是否相交从而进行分支,如果“是”则执行S105和S106,否则执行S107和S108.;步骤S105,将空间对象分配到buffer分区,并根据同时跨越的两个分区号为该对象分配Key值;步骤S106,对分区内的空间对象按照Key值划分为Bundle,在每个Bundle中按照其所属类别进行聚类并存储;步骤S107,将空间对象分配到该格网单元所对应的分区中;步骤S108,基于空间属性对空间对象按照自自定义的四叉网格树进行索引,叶子节点按照类别聚类并存储;步骤S109,利用所述的封装模块将该结构存储为一个新的RDD,基于该存储结构的空间数据设计了新的空间查询算法并封装为算子;步骤S110,最终用户通过所述的查询模块调用对应的查询算子可以实现范围查询和KNN查询操作。5.根据权利要求4所述的一种基于Spark的空间矢量数据内存存储查询方法,其特征在于:在步骤S101中,Spark集群在计算过程中直接对该文件系统进行读写操作;对于读取到内存中的数据,Spark集群通过map操作调用GeoTools工具和JTS库,将读取到的条目或者空间数据流解析为Geometry空间对象并以原始RDD的形式存储到Spark集群内存中。
6.根据权利要求5所述的一种基于Spark的空间矢量数据内存存储查询方法,其特征在于:在步骤S102中对空间数据抽样并根据数据的空间分布特征构建非均匀网格索引具体过程为:首先计调用Spark RDD的sample算子对数据进行抽样操作,将抽样的结果拉取到客户端,在客户端通过递归的方式将整个区域划分为非均匀大小的格网,最后对所有的格网使用Z曲线进行编码。最终得到的是一个非均匀网格索引。7.根据权利要求4所述的一种基于Spark的空间矢量数据内存存储查询方法,其特征在于:在步骤S103中,所述的网格分区模块的网格重分区过程细化为:a.网格单元相交情况下的...

【专利技术属性】
技术研发人员:陈广胜景维鹏邹为涛李林辉徐泽堃
申请(专利权)人:东北林业大学
类型:发明
国别省市:

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

1