大数据GIS技术篇——SuperMap iObjects for Spark新架构三大升级

发布时间:2020 年 01 月 14 日   文/大数据与AI研发中心 徐韵
导读:SuperMap iObjects for Spark 10i采用全新产品架构,在数据存储、基础核心、数据分析处理三个层面进行了调整升级,为大数据GIS技术带来更多能力。

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

  在SuperMap GIS 10i中,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种分布式空间分析算子,能够更好地在地理大数据的汇总计算、插值计算、预测分析等方面提供分布式能力,为地理大数据的“金矿”挖掘提供了强有力的支撑。

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

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

  

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

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

版权所有© 1997-2019 中国科学院地理信息产业发展中心 《超图通讯》编辑部