查看原文
其他

SuperMap iObjects for Spark新架构三大升级

超图集团 2020-09-15

SuperMap iObjects for Spark 是超图基于Apache Spark分布式计算框架研发的一款产品,能够用于空间大数据的处理与分析,它既可以作为 Apache Spark分布式计算框架在空间数据领域的扩展模块,为大数据平台增添空间数据处理能力,也可以作为一个分布式的空间数据处理与分析工具集,为传统GIS应用面向海量数据提供高效的处理能力。


SuperMap iObjects for Spark采用了全新的产品架构,从数据存储、数据查询、数据分析处理三个方面对产品结构进行了调整升级,为大数据GIS技术带来了更全面的能力。

 

▲图1 SuperMap iObjects 10i for Spark架构图


数据存储——高效、可扩展存储引擎


全新的SuperMap iObjects for Spark数据访问模块采用了新的统一的数据访问API (FeatureRDDProvider) 来访问不同存储类型中的数据,从而确保应用层的代码可以使用统一的数据访问API编程,提升应用代码的复用性。


在使用时,我们可以通过FeatureRDDProviderFactory来获取FeatureRDDProvider以及FeatureRDD,只需要以参数的方式传入数据源连接信息,就能够标识不同的数据源,执行数据读写操作。例如使用Scala代码访问Oralce数据源:



FeatureRDDProvider目前能够支持的地理空间数据存储类型有空间数据库、文件系统和分布式存储引擎。此外,SuperMap iObjects for Spark对数据访问层还提供插件扩展机制,使得FeatureRDDProvider还具有自定义横向扩展的能力(图2)。我们能够通过派生FeatureRDDProvider类型,快速构建自有的RDDProvider,实现自有数据格式的分布式读取,此后便能利用SuperMap iObjects for Spark所提供的丰富的分布式分析算子对该类型的数据进行分析,挖掘数据的价值。

 

▲图2 SuperMap iObjects for Spark数据访问引擎


在数据读取效率上,SuperMap iObjects for Spark对数据访问模块也做了新的提升。FeatureRDDProvider在读取数据为FeatureRDD的过程中,可通过OGC过滤器编码规范的CQL (Common Query Language) 语言进行过滤操作,让我们能够在数据读取的同时,对数据进行地理范围、时间范围、属性判断等方式的查询过滤,后续分析便只需对过滤后的数据进行计算,大大提升计算的效率。CQL过滤支持相交、包含、距离判断等12种空间操作算子,3种时间查询算子和9种属性过滤算子。


例如,在进行两数据集叠加前,我们可以使用BBox的框选方法对特定地理范围内的数据进行过滤:



▲图3 使用CQL的空间查询方式示意


数据查询——集成Spark SQL


Spark SQL是在Spark框架中提供SQL查询能力的模块,它最大优势就在于,对不太熟悉编程语言的人来说,不需要了解太多的底层分布式技术和编程技术,就能使用简单的SQL语句,对分布式存储的海量数据进行查询和分析。


SuperMap iObjects for Spark集成了Spark SQL模块,并在通用SQL查询的能力之上,支持了地理空间计算能力,为地理分析人员提供了一种快速使用分布式架构的途径。Spark SQL能够支持用户自定义函数(User-defined Function, UDF),SuperMap iObjects for Spark在此基础上提供了一系列满足OGC标准的OpenGIS Simple Feature访问-SQL规范的地理空间数据操作UDF,如空间相交、面积计算、属性判断等75种函数,为满足多种复杂业务逻辑的开发需求提供了坚实基础。


例如,在对地类图斑数据进行范围内查询和汇总计算时,通过使用以下SQL语句和两个UDF (st_area和st_intersects) ,就能够实现查询“江南区”内,统计不同地类名称的图斑面积总和,并进行排序的功能。



数据分析——扩充分布式空间分析算子


SuperMap iObjects 10i for Spark版本对分布式空间分析算子进行了全面扩充,补充了空间大数据、矢量经典空间数据、栅格经典空间数据类别的分布式分析算子,并新增了空间机器学习类别的分析算子,共提供了四大类60种分布式空间分析算子,能够更好地在地理大数据的汇总计算、插值计算、预测分析等方面提供分布式能力,为地理大数据的“金矿”挖掘提供了强有力的支撑。


表1 60种分布式空间分析算子



例如,在进行集水区水文特性分析时,将多年份降雨量栅格数据读取为rasterRDD,集水区矢量数据读取为regionRDD,即可使用ZonalStatistics【栅格区域汇总】算子完成集水区内多个年份的降雨量情况统计,结果可用来分析降雨量与集水区径流量之间的关系等。



图 4 北美集水区降雨量统计结果


总的来说,SuperMap iObjects for Spark在10i版本中进行了存储引擎的升级、Spark SQL的集成和分布式空间分析算子的扩充,在大数据GIS技术的存储、查询、分析方面进行了全面升级,促进了大数据GIS技术的深度进化,为SuperMap的大数据GIS产品带来了更高效、更全面的分布式功能。


撰文 | 大数据与AI研发中心 徐韵


【相关阅读】

01 全面融入AI技术,SuperMap GIS 10i新特性速览

02 GIS技术进化 | 人工智能GIS技术体系来袭

03 GIS技术进化 | 我们为何需要跨平台GIS技术体系?

04 GIS技术进化 | 云原生GIS助力全面上云

05 GIS技术进化 | 大数据GIS技术体系点亮GIS应用新思维

06 GIS技术进化 | 新新新新新新一代三维GIS技术新解读

07 大数据GIS创新出了个DSF引擎,有什么用?

08 GeoAI算子支撑人工智能GIS应用


欢迎转载~

爱看你就点在看!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存