在超图发布的SuperMap GIS 10i 版本中,大数据GIS 技术又有新进展,今天我们重点介绍分布式空间文件引擎(DSF,Distributed Spatial File),它更加适合全量空间数据的高性能分布式计算,能够进一步强化海量经典空间数据的分布式存储和管理能力。
DSF的设计目的
空间数据文件作为空间数据存储的载体之一,相比空间数据库具有占用资源少,应用便捷和利于归档的优势,在GIS行业应用中一直广泛使用,并不断地优化和升级。
由于经典空间数据的分析具有很强的空间位置相关性,将空间数据文件直接存入HDFS的简单分布式存储方案无法解决这种海量数据分析慢的问题,为此, 我们通过基于空间格网建立空间索引的方式,有针对性地优化读写存储在HDFS上的经典空间数据的性能,使得接入Spark分布式计算的大体量经典空间数据分析性能显著提升。
“HDFS+空间索引”的空间数据文件存储模式虽然可以满足空间分析性能要求,但它不支持对存入HDFS中的空间数据进行追加和更新,也不支持查看数据、查询数据以及数据制图等数据管理操作。因此,它不利于大规模空间数据贯穿整个GIS的应用流程,迫切地需要新的技术予以支撑。
图 1 空间数据文件管理发展历程
超图创造性地研发了分布式空间文件引擎(Distributed Spatial File,以下简称DSF),能够管理矢量、栅格和影像数据,兼备大体量空间数据的高性能分布式存取、空间查询、统计、分布式分析、空间可视化及数据管理能力,相比“HDFS+CVS/GeoJSON文件”与“HDFS+空间索引”,DSF更胜一筹。
DSF的技术支撑
DSF的诞生并非重新发明轮子,它依旧依托先进和较为成熟的通用IT大数据技术。
DSF仍将HDFS作为分布式存储系统,HDFS被设计的初衷就是适合运行在通用硬件上的分布式文件系统,具有高度容错性,适合部署在廉价机器上,并能提供高吞吐量的数据访问,也能和Spark分布式计算进行理想结合,因此,HDFS无疑是大规模数据集存储载体的首选。
敲定了文件存储系统,下一步的问题就是如何存空间数据,才能克服“HDFS+空间索引”旧模式的短板。DSF引入了Parguet文件格式作为矢量数据存储方案,它是一种面向分析的、通用的列式存储格式,兼容Spark数据处理框架。使用Parquet存储数据能够压缩数据且不失真,能够减少IO吞吐量,具有高效的查询能力,更重要的是Spark能够高效读取Parquet中的数据到RDD中,保证分析时的数据读取效率。与此同时,引入Parquet还能实现大规模矢量数据的单机访问,使得可视化问题迎刃而解。
为使DSF结合Spark分布式计算框架获得更高的分析性能,超图本着“大任务化小,小任务并行执行”的思想,基于地理分区构建格网索引,数据按照地理分区索引分文件夹存储,在分布式计算时,也将基于格网单元拆分任务为独立的子任务,进一步提升分析的并行度;另外,为使DSF具有更高效的数据可视化能力,超图提出在一级空间索引的基础上构建二级索引的技术方案,满足了海量空间数据在小比例尺下的显示性能需求以及属性查询等数据管理效率需求。
图 2 DSF矢量数据存储方案
DSF的能力及应用价值
DSF的重要能力之一是空间数据的分布式存储,且同时支持矢量、栅格和影像数据;数据不仅可以存储在HDFS分布式文件系统,还可以存储在普通文件系统和云储存中,这使得空间数据文件的共享、分发和归档更加便捷。
图 3 DSF分布式存储能力
另外,考虑到在国家级或省级的行业大数据GIS平台建设中,数据汇交建库不可能一次完成,DSF还提供了数据的追加以及更新能力。
DSF的另一个重要能力是高性能的空间数据分布式分析,它提供了超越其他数据存储的全量数据叠加分析能力。
全量数据叠加分析使得行业应用中的大规模空间数据的存储和管理不用再采用分库分表的“分而治之”方案,也使得自然资源管理、城市规划、城市综合管理等领域的决策不再单纯地依赖粗粒度的抽样数据进行分析和推测,而有能力基于数据总量获得更加客观、科学的分析结果,并且越来越多地综合用地、人口、就业、公共服务等多源空间大数据进行空间分析、关联分析、数据挖掘,以数据为依据,呈现真实世界的运行面貌,更好地服务行业决策乃至国家战略决策,而DSF的面向分析的高性能优势能够保障全量数据分析结果的时效性。
例如,某行业的大数据基础平台,需要具备高性能分析能力,项目组经过实测,2802万地类图斑与1.2亿承包地块进行叠加分析,若采用传统模式,将数据拆分后分别进行叠加分析,再将结果合并,多人、多机也要费时数周。而在DSF高性能分布式分析支撑下,全量数据叠加分析耗时只有64分钟,并且,分析耗时还能随着计算节点的增加呈线性减少。除此之外,项目组还进行了其他多组实际应用场景的分析性能测试,充分肯定DSF能够满足平台日常的空间大数据叠加分析效率需求。
图 4:针对亿级数据的叠加分析,传统计算模式与分布式计算模式性能对比
图 5:分析耗时与分析节点数关系
除了矢量数据,栅格数据也是行业空间数据分析的重要数据来源,且栅格数据的体量更大,采用DSF存储的栅格数据在叠加分析、空间统计方面也具备高性能的特点。在栅格区域统计中,经常要汇总多边形区域内的多种栅格统计值,例如,某测试场景中,基于全球降雨量指标的栅格数据(329GB数据量),获得北美不同集水区的汇水情况,在DSF全量数据高性能分析支撑下,分析耗时仅95分钟。
图 6:北美汇水量分析性能统计
上述的性能统计数据用客观事实证明了DSF在大数据量空间分析性能方面的优势,超图还提供了百余种分布式分析算子,助力GIS应用分析的全面提速。
从上图还可以窥见DSF在数据入库方面也具备高效性,DSF能够基于Spark实现数据的分布式导入,导入的数据可以来自Oracle Spatial、PostGIS、GoePackage、UDB/UDBX、Shapefile、GDB、Tiff等多种来源,支持多种地理坐标系和投影坐标系,极大地方便了行业应用中多源空间数据抽取到DSF中。
表格 1 大规模数据导入DSF的耗时情况
数据 | Spark集群环境配置 | 耗时 |
全球67年降雨量指标栅格数据,数据量329GB | 4 cores,16G*6节点 | 162分钟 |
确权图斑数据,数据量1亿个对象 | 4 cores,16G*6节点 | 29分钟 |
DSF作为分布式空间文件引擎,除了超强的分布式计算性能,还能直接用于地图可视化,包括在SuperMap iDesktopX中配置各类地图风格,在SuperMap iServer中发布为地图服务等。
图 7:千万级地类图斑可视化 图 8:全球30米分辨率DEM山体阴影显示
图 9:亿级路网数据可视化 图 10:数字正射影像显示
总结
DSF从最根本的数据存储开始,逐步突破全量空间大数据分析和管理的壁垒,最终实现了全量空间大数据的高性能分布式存取、高性能分析、高性能显示以及高效管理,而且已经在行业应用中启用,并收获良好口碑。
超图在10i版本中,优化和升级了大数据GIS操作流程,提供更加便捷的空间大数据(包括DSF)的数据入库、数据管理、可视化和服务发布方式,这也有效支撑了DSF的广泛应用。欲知详情,请您关注超图官方微信的后续发布内容。