走向GIS“大”时代
点击图片上方蓝色字体“慧天地”即可订阅
(点击图片可放大观看,更多精彩请留意文末推荐)
摘要: 软件是大数据的挖掘机和价值提炼的工厂。通过专业的软件能将数据资源变为可以持续盈利的数据资产,并为业务的持续改进提供真正的帮助。虽然各种数据工具已发展多年,但目前的各种大数据平台的地理空间数据存储支持、地理空间分析能力和时空可视化能力仍然还比较欠缺,在用于智慧城市、资源环境等专业领域应用时,迫切需要将大规模集群的处理能力和经典GIS的算法、模型紧密结合起来,让GIS具有时空大数据一体化处理的能力,将GIS融入大数据技术的主流,能在各种大数据平台上高效地使用。
随着信息技术的飞速发展,尤其是手机、摄像头、传感器等等各种智能设备的大量出现,数据量快速增长,数据类型日趋多样,应用需求日新月异,给传统的IT架构带来了巨大的挑战。这也催生了一个全新的大数据产业,使大数据成为近几年来非常热门的一个新词。虽然各种数据工具已发展多年,但目前的各种大数据平台的地理空间数据存储支持、地理空间分析能力和时空可视化能力仍然还比较欠缺,在用于智慧城市、资源环境等专业领域应用时,迫切需要将大规模集群的处理能力和经典GIS的算法、模型紧密结合起来,让GIS具有时空大数据一体化处理的能力,将GIS融入大数据技术的主流,能在各种大数据平台上高效地使用。
大数据时代软件更具价值。大家都一致认为,大数据具有“四V”的特点,即海量(Volume)、多样性(Variety)、高速(Velocity)和Value(价值)。这既是大数据的几个方面,也是解决大数据问题的几个层次:首先要解决大量数据的存储访问的问题,其次要能对多种多样的数据进行存取、处理以及语意解析,第三要满足时效性尤其是对于流式数据的应用,第四要从数据中能挖掘出价值。与采矿一样,原始矿的价值很低,而经过提炼、加工以后就能产生越来越多的附加值。没有好的软件,再多的数据也只是矿山资源,无法产生足够的价值。对于数据的获取、清洗、处理、分析、应用,都需要耗费大量的计算资源和人力成本,只有对数据进行深加工和深度应用,开拓出足够的应用市场,数据才具有用户价值,这就需要相应的软件支持才能完成。软件是大数据的挖掘机和价值提炼的工厂。因此,拥有的数据多固然好,但也可能大幅度增加成本,而软件能力才是大数据时代的决胜法宝。通过专业的软件能将数据资源变为可以持续盈利的数据资产,并为业务的持续改进提供真正的帮助。GIS提供了时空数据管理、空间分析算法和空间可视化能力,是让数据增值、业务增效的强大工具。
如何构建大数据时代的GIS呢?地理空间数据一开始就具有大数据的各个特点,数据量大、结构复杂,在传统的计算技术和架构下,其处理和利用具有很大的挑战,尤其是还要与各种IT环境进行集成应用,计算能力经常捉襟见肘,需要开发各种关键技术解决效能的问题。在发展的过程中,SuperMap研发了SDX(空间数据扩展)技术实现多源数据的无缝集成,组件化GIS技术使地理空间分析功能嵌入各种专业应用系统,网络GIS技术提供REST API实现基于服务的集成。随着多核CPU的发展,进一步研发了基于多线程和OpenMP的并行处理技术,大幅度提升了单机处理的性能。从2012年开始,我们开始进行Hadoop系统研究,并尝试与专业GIS功能进行集成;2016年实现了第一个基于Spark的GIS组件版本-SuperMap Objects for Spark,可以直接在Spark系统上运行GIS专业分析功能;2017年SuperMap平台产品全面走向分布式集群的技术架构,可以充分利用虚拟化存储、大规模集群和分布式内存计算架构的强大处理能力。
随着SuperMap下一代GIS平台的推出,GIS的时空大数据处理的八个关键能力得到了大幅提升,具体包括:1、大规模虚拟存储;2、分布式计算架构;3、云计算及一体化;4、流式数据的处理;5、三维与虚拟现实;6、多终端快速应用;7、开源与社区发展;8、容器与持续交付。从此,GIS不再局限于存储和计算能力的大小,可以实现大规模的数据处理和模型分析,让大尺度的时空间研究成为可能。GIS进入了“大”的时代,开始真正融入IT主流之中,地理空间信息技术和应用正面临前所未有的大发展机遇。
大规模虚拟存储
大数据系统的首要问题是存储问题。随着多种类型低价值含量的数据大量产生,传统的文件系统和数据库方案已经难以满足海量数据低成本存储和高效率处理的要求。近年来,各种虚拟存储技术得到了快速发展,在各种新型的互联网平台中得到广泛的应用。地理空间数据存储方案需要从传统的文件系统和关系数据库向分布式、虚拟化的软件定义存储系统转变,从而建立起大规模的海量时空数据存储和处理能力,适应未来业务发展的需要。
虚拟存储系统可以分为分布式文件系统、集群式关系数据库以及NoSQL/NewSQL存储系统等三种主要类型。其中,虚拟文件系统突破了单机文件系统容量较小和传统磁盘阵列价格昂贵的制约,实现了多份副本的并行IO来增加访问带宽以及具有负载均衡、容错、动态扩容等高级特性,并且可以部署在云计算环境中,支持大文件、内存缓存、空间共享、REST访问等特性,这类系统以Hadoop的HDFS为代表,还有Ceph、IPFS等等;集群式关系数据库主要通过在传统DBMS上增加分布式集群和分布式事务处理来实现,如基于PostgreSQL的集群、基于MySQL的集群,也有基于容器技术重新开发的CrateDB等,这类系统的优点是可以较好地支持SQL和事务处理,因为与原有的数据库基本兼容,便于数据迁移和系统扩容,原有的管理技能和软件也可以重用,系统软件开源免费,使用成本较低,便于多节点集群的安装部署;统称为NoSQL/NewSQL的存储系统通过降低数据库的ACID和事务要求,大幅度提高了数据处理的性能,而且更好地适应多类型非结构化数据的管理,开发维护更为简便,总体成本(TCO)大幅度降低,在各种新兴的互联网服务中得到广泛的使用,典型的系统包括MongoDB、Hbase、Cassandra、Redis等等。
目前各种虚拟存储系统多种多样,面向的主要用途和适应环境也各不相同。如何既能充分利用各种系统的优势,又能很好地实现共享和交换;既能提供一致的数据存取和访问,又能实现数据存储适应多种应用环境,提升数据资产的价值呢?我们在借鉴SDX+(空间数据扩展增强)实现多源数据无缝集成和GDB-CLI(虚拟空间数据接口)设计思路的基础上,设计并开始研发虚拟化时空数据一体化服务系统-DaaS (Data as a Service),实现统一的REST服务框架,可以接入多种数据存储系统,同时兼容已有数据库系统,可以实现分布式、多层级的空间数据存储和服务,支持云与本地数据一体化管理。通过统一的开放接口,逐步接入Hadoop软件生态的存储系统、MongoDB等各种新型大规模存储系统,同时支持PostgreSQL集群、MySQL集群以及其它已有数据库的访问。
现代信息系统中,数据在不断地产生,随着存储量的增加其维护成本不断上升,但其价值却在不断消减。如果对数据充分及时地利用,可能使其成为一项不断增值的资产,而如果不能恰当使用也可能成为负担,在出现数据泄漏等事件时甚至于造成严重的损失。数据的价值在于使用而不是拥有,数据越用越有价值。因此,建立可持续发展的数据资产基础设施,让数据资产满足最多样的应用需求,实现保值增值、持续利用是建设大数据系统的头等大事。
随着摩尔定律的失效,已经很难单纯依赖CPU主频的提升加快运算速度,因此多核多CPU的系统开始大量出现。通过多线程、多进程技术进行任务划分和并行计算,或者通过CUDA和OpenCL等基于显卡机制的并行计算引擎,可以进一步突破单CPU的运算能力,如SuperMap 8C的多线程支持、多进程服务和基于OpenMP、CUDA的高性能空间分析算法大幅度提升了空间数据处理和模型分析的效率,提供了近乎实时的可视化能力。现在随着大数据的出现,计算能力再一次遇到了瓶颈,需要进一步实现从多核系统到大规模集群的全面进化。Hadoop系统的MapReduce模块是新一代集群计算的先行者,但是主要设计用于批量处理,由于其启动慢、部署复杂、缺乏迭代计算能力等不足,正在被基于分布式内存计算模型的Spark以及更加适合流式计算的Flink取代。这一由Apache基金会主导的以Hadoop/Spark为主的开源大数据生态系统已经逐步成为大数据领域事实上的标准,众多的发行版本和商业版本、解决方案都基于该体系架构开发,如大数据服务云Databricks、Amazon以及IBM、Oracle等的大数据软件产品和解决方案等等。
随着各种定位系统、卫星遥感、无人机摄影、智能测量设备的快速发展,空间数据量快速增加、处理要求大幅提高,将GIS核心功能融入Spark体系,从而为用户提供一体化的大规模分布式时空数据处理平台,正生逢其时。最新的SuperMap GIS平台全面支持Spark计算体系,形成了完整的大数据解决方案,包括GIS核心引擎、客户端SDK和各种应用系统三个主要部分。GIS核心引擎可以基于Scala直接支持Spark的运行环境,也可以支持Python从各种大数据分析前端软件中使用,通过将iObjects for Spark服务集成到iServer系列中,可以提供基于REST接口的分布式空间分析模型计算服务,其分析结果可以通过基于iObjects的专业应用以及iDesktop、iDesktop Cross、iMobile、iClient等各种二三维一体化的客户端快速呈现出来。
GIS核心技术体系从单CPU和多核架构发展到分布式架构是一个巨大的飞跃,意味着GIS系统能够充分利用现代计算硬件和数据中心所提供的大规模存储、分布式内存、集群管理与调度的强大能力,传统GIS软件一直面临的存储和计算资源不足的问题将不复存在,有利于开展大规模的应用系统建设和高精度、大尺度的时空过程与空间关系的研究。我们可以看到,新型的应用系统和突破性地理空间模型与算法将会大量地出现,推动地理信息科学、地理学的新认知以及资源、环境利用水平和灾害应对、城市规划等能力的大幅度提升。
云计算及一体化
云计算提供了基于计算基础设施共享化利用的模式和方法,一方面可以动态调用计算资源促进高效率的使用,另一方面也提供了快速集结大规模计算能力的可能。国外的Amazon/Google/Microsoft/IBM等公司都提供了超大规模的数据中心服务,中国的阿里云、百度云、腾讯云等也提供了丰富可用的云计算服务,基于容器技术(Docker)提供容器云的初创公司也大量涌现,如七牛、青云等。在大型云计算数据中心,既能进行资源的集中管理和切分租用,也能实现大规模主机集群的快速构建。过去的数据中心主要以传统的主机租用管理为主,而现在基于Hadoop/Spark的分布式集群已经成为高端数据中心的标配。由于Docker技术的快速发展,基于容器技术的云计算服务能够进一步大幅度降低运维成本、提供更为灵活的调度和快速部署能力,尤其是可以在多个云计算中心以及公有云和私有云中心实现快速的迁移、部署,因此,云计算的核心架构已经从基于虚拟机技术的主机租用向基于容器技术和微服务、基于Hadoop/Spark的分布式集群方向快速发展。
基于容器的云计算技术,可以使业务模块按照微服务方式进行封装,并在需要部署时快速组装。容器实例可以在公有云、专用云、行业云以及私有云上以一致的方式开发、测试和运行,并按照需要进行部署,这将大幅度降低云服务开发的难度和运维的成本。基于云计算的GIS融合架构,也须全面支持Docker容器技术,并按照微服务架构的概念模型进行设计、开发和部署。SuperMap iServer / iExpress / iPortal / iManager已经全面支持容器技术,按照容器技术规范和微服务架构,可以在多种云计算数据中心快速部署,实现与各种计算基础设施的融合服务,并提供系统运维的自动化管理。此外,企业用户和个人用户也可以通过地图慧和online在线平台直接使用。
基于容器技术的微服务架构,使GIS真正实现了基于云计算的模块化部署,实现了“多云”的统一管理和融合服务,让地理空间信息完全融入云计算基础设施之中,成为大型数据中心的核心能力之一,成为智慧城市、资源环境等多种行业领域不可或缺的重要组成,为其提供地理空间数据管理、时空模型分析、时空可视化、共享API服务、多种应用服务等关键功能。
随着地理空间信息技术的快速发展,GIS系统的数据源已经发生了巨大的变化。传统地理空间数据主要来自于传统的存量地图的数字化和通过各种测量手段(平板仪、全站仪等)测绘而来,以静态的矢量地图为主,更新慢、精度低,现势性较弱。新型的测绘作业大量采用了基于摄影测量的方法进行数据制作,来自于卫星、飞机、无人机、测量车等载体产生的大量影像、视频、雷达和定位等数据成为测绘成果数据生产的主要数据源。而最新的设备如全景相机、街景相机、视频卫星、LiDAR等系统已经可以获取全方位的图像和空间信息,部分已经支持以流方式提供动态的信息。传统的固定存储、静态制图、定期更新的作业模式将退居次要地位,从而导致数据的存储、处理、分析和应用的模式、流程也将发生根本性的变化。
以“流”方式提供持续的数据,实时进行处理,动态进行应用的LiveGIS成为大数据时代的GIS的新特征。由于数据类型和处理要求的巨大变化,GIS的体系结构也将发生相应的改变。基于分布式计算架构,采用Spark Stream作为流式数据的基础框架,集成Kafka等多种消息中间件,将实时消息的接收、处理和高性能存储、实时空间分析融为一体,构成时空一体化的满足LiveGIS需求的软件平台,是目前最好的流式数据应用方案,在电子商务、社交媒体、物流配送、交通运输等领域已经有大量的成功应用。最新的SuperMap GIS平台中,我们将这一方案与专业GIS的功能实现了融合,从而将实时流数据与GIS的空间分析与可视化展示能力实现了完美的结合,大幅度提升了GIS的能力,进一步拓展了GIS的应用空间。
强大的后端处理能力与灵活的移动应用结合,可以为物联网、智能设备的构建提供时空数据处理的可靠平台,能够随着业务规模的发展平滑地扩容,在不同的应用环境中进行快速的迁移,成为未来智慧城市建设和运行的基石。
三维与虚拟现实
最近几年,三维相关的信息技术取得了惊人的发展。显卡计算能力突飞猛进,OpenGL/OpenCL/WebGL等软件支持能力和标准规范得到快速发展,尤其是VR/AR技术和智能头盔、混合现实眼镜等硬件取得的突破,使数字化的三维空间应用进入了一个全新的阶段。对于GIS领域来说,得益于通用计算技术的快速发展,取得了倾斜摄影融合和二三维一体化两个最为关键的技术进步,解决了全三维地理数据的快速获取、模型构建到终端应用的全流程问题,为区域规划、城市建设、资源环境管理等应用开启了全新的可能。SuperMap平台的三维GIS技术已经融入到了每一个产品,提供了从数据入库、服务发布、分析应用、Web访问、移动应用的全面解决方案,支持服务器、组件、移动端、Web、桌面的所有软件,与现有的数据库和云计算等IT基础设施完美融合。
通过GIS与BIM(建筑信息模型)的结合,擅长宏观管理和空间分析的GIS应用进一步拓展到了更为细节的领域,可以实现建筑部件、设备级别的对象化管理,为智慧建筑、物联网的发展提供可靠的三维信息支撑平台;将VR/AR技术引入GIS,让城市规划、管理得到身临其境的感受,为国土整治、市政管理、城市规划等公共服务提供更先进的技术手段和全时空的数字化城市基础设施;移动三维GIS不仅方便了数据采集,更提供现场管理的强大功能,也为更广泛的空间规划、利用、优化的公众参与提供了非常好的技术途径。
三维GIS已经成为时空大数据的不可分割的重要组成部分。未来三维GIS将进一步向实体化发展,从而可以直接支持实体模型的布尔操作,将物理引擎、碰撞检测等引入GIS系统,可以更好地实现模型仿真和实时空间模拟,增强规划、设计、管线、交通、建设等行业应用的深度,拓展自动驾驶、高精度导航、场站管理等新兴应用领域。
多终端快速应用
软件是数据价值的放大器。数据用的越多,数据越有价值,这需要多样化的软件平台提供支撑。软件不仅需要具备强大的数据处理能力,更应具有多样化的应用能力,包括与各种IT环境的融合和在多种移动端设备上的应用。客户端可以按照不同设备、操作系统、运行环境、开发语言的区分,需要支持的客户端类型越多,适应的范围越广,意味着同样数据的受众就会越多,数据发挥价值的潜力就越大。
SuperMap GIS平台体系中,具有非常丰富的客户端支持。基于.NET的iDesktop和基于Java的iDesktop Cross桌面软件,可以直接访问大型存储和云计算资源,给专业用户提供工作站级的地理空间数据处理和制图、分析功能;iClient提供适应多种浏览器的WebGIS功能,可以在几乎所有支持的操作系统上运行,无需安装软件就可以共享访问服务端的数据,执行在线分析、实现可视化;iMobile提供iOS和Android的运行和开发,也支持如元心OS等国产嵌入式操作系统,提供随时可用的专业级GIS功能,很多合作伙伴基于此开发了满足专业需求的手持和车载测绘设备。
SuperMap是目前支持终端最多的GIS平台,桌面、Web和移动端都提供了终端SDK,支持云服务API的访问,可以通过SDK、插件框架等来开发丰富多彩的应用。而且,支持飞腾、龙芯等国产CPU芯片,支持麒麟等多种国产操作系统。这必将促进时空大数据的处理、分析和多样化应用,释放出大数据的潜力,充分发挥出各种数据的应用价值。
开源与社区发展
开源和社区是推动现代软件业发展的助推器,尤其是github.com的出现,让全球各地的开发者在同一个代码仓库上协作和交流,极大地加快了软件的发展进程。在中国也有oschina.net等类似的在线软件仓库托管和交流平台。软件开源和代码在线托管模式的出现打破了传统的封闭研发流程,使软件研发的流程外部化,与整个社区、用户都链接为一体,提高了软件研发的效率、质量,使超大规模的软件协作开发成为可能。以Apache Hadoop/Spark为核心的开源软件系统已经成为大数据生态体系的中流砥柱,众多的发行版本和商业版本、解决方案都基于该体系架构开发,如大数据服务云Databricks、Amazon以及IBM、Oracle等的大数据软件产品和解决方案等等。
GIS与Apache大数据软件生态体系的融合,依托开源社区实现可持续发展,一方面可以利用开源大数据软件的分布式计算能力来大幅度增强GIS解决方案的可用性,另一方面为开源大数据方案添加地理空间数据处理支持,促进开源软件社区和用户对空间数据更为广泛的利用。SuperMap GIS平台最新版本基于Spark 2.x的架构,实现GIS的大数据分析引擎和分布式计算能力,大幅度提高了大数据处理、分析的效率和容量规模。同时,开源的iClient、iDesktop Cross和iObjects的Python脚本支持可以完成大数据批量处理、网络发布等大量任务,大家可以方便地使用,也欢迎提交建议和进行改进。
开源软件和闭源软件各有其优缺点,开源软件参与度高、改进较快、创新能力强,但是相对来讲,闭源软件具有测试严谨、版本控制严格、持续性强,有专业的支持队伍等优点。现实的解决方案中,已经很少纯粹的开源或闭源技术栈,将二者相结合来构建最佳的解决方案将是主流的模式。
容器与持续交付
在互联网的推动下,软件工程方法已经实现了全面进化。随着Git/Gitlab/Github的发展和广泛使用,分布式版本管理代替了传统的集中式软件开发方法;社区化开发、开放代码审计,自动化测试、持续集成系统成为互联网模式下软件研发的标配;Docker容器技术是比虚拟化更为底层的软件部署方法,可以在Linux内核上直接运行,可以对软件进行打包和运行环境隔离,便于实现更灵活组装的微服务架构,从而可以快速部署到云计算中心,还可以在不同云计算中心间方便地迁移。为了满足网络在线平台的快速更新要求,持续交付理念和DevOps方法也开始加速发展,并且与Mesos\Kubernetes等集群管理系统实现集成。基于容器技术和持续交付的自动化流程大大加快了软件版本更新和Bug修复的速度,让软件开发实现了快速反应,通过快速迭代大大加快了软件创新的速度,同时有效降低了系统问题导致的风险。
为了实现快速迭代、现场测试、运行验证和可控交付,一般将整个系统分为开发区、验证区和运行区三个部署区域。其中,开发区包含开发工具、源代码、测试数据、构建系统、用例库、测试系统;验证区包括验证数据和验证系统、评估系统;运行区为生产环境,分为当前系统和最新系统两个部分,可以执行灰度发布,即通过AB测试来逐步迁移系统的版本。超图软件研究院为了保障GIS基础平台的研发,解决多版本、多平台GIS研发的复杂性和可靠性问题,构建了完整的持续集成系统,实现了软件构建、集成、测试的自动化流程。为了适应向在线平台发展,地图慧平台和在线服务平台逐步建立了面向持续交付和DevOps的机制。目前,SuperMap iServer / iExpress / iPortal / iManager系列产品已经可以支持容器技术和微服务架构,并集成到用户的持续交付系统之中,成为持续运行的IT基础设施的一个有机组成部分。
时空大数据系统不仅要能够处理动态变化的流式数据,而且软件系统本身也应该像生产流水线一样,能够不断地发展、不断地自我更新。容器和持续交付技术使软件可以像数据一样方便地迁移,从而实现软件和数据按需部署,快速进行规模伸缩,提升大数据系统运行的效率和可用性。借助于云计算架构、虚拟化技术、容器技术,建立持续集成、持续交付支撑下的DevOps工作流程,彻底打通传统软件开发、测试、验证、部署过程与生产系统的运维、管理、更新的通道,实现快速反应、动态修复、即时更新,是未来软件工程发展的主流方向,也是满足未来实时大数据处理和应用的必由之路。
跟随IT时代飞速前进的步伐,GIS的时空大数据处理的关键能力得到大幅提升,将给用户带来巨大的价值。大规模虚拟存储让用户可以永久保存其数据资产,通过高效利用使其不断增值,实现数据价值的最大化;分布式计算架构让大量数据处理无需等待、模型分析唾手可得,节约宝贵的时间;云计算技术有利于提升数据中心的管理和运维能力,公有云和私有云的一体化可以更好地满足专业用户的需求;流式数据的处理能力,让空间化的即时协同成为可能,为社会网络分析、物联网、智慧城市等的发展铺平了道路,再也无需担心高并发、大容量的实时数据的存储和即时处理的问题;三维与虚拟现实技术建立了一个现实空间的“数字镜像”,对于空间管理、城市运维提供了高精度的数字化手段,有利于大幅度提升管理效率和服务质量;多种类型终端的快速应用让时空大数据无处不在,随时可用,充分发挥数据的使用价值;开源软件的融合与社区发展的对接,不仅有利于技术的持续发展和专业人才的成长和培养,还让用户免于供应商锁定,减少系统风险,降低运维成本;容器技术与持续交付模式使一体化DevOps流程成为可能,使软件发行和Bug修复的周期大幅度缩短,有利于应对软件规模的快速增长和系统复杂性日趋严重带来的若干严峻问题,大幅度降低单元运行成本,为业务系统的效率提升提供坚实而灵活的基础架构。
通过将最新的大数据技术、软件工程技术、持续交付技术、三维与虚拟现实技术、云计算技术等与GIS融合,GIS已经翻开了一个新的篇章,真正融入了IT的主流。一方面增强了各种信息系统的时空分析和可视化能力,同时也为资源、环境、能源、城市的发展提供了强大的地理空间信息支撑平台。GIS正在从以静态制图为主的传统应用向动态、实时的空间大数据分析方向快速发展。GIS的“大”时代正在到来,为可持续发展、地球信息科学、地理学的发展提供了全新的可能,为相关产业的深度融合、做大做强提供了前所未有的发展机遇。
来源:开源中国社区openthings 的博客(版权归原作者及刊载媒体所有)
荐读
点击下文标题即可阅读
高端论坛|武汉大学吴华意教授:GIS的未来和自然资源时空大数据
编辑 / 肖紫寒 审核 / 呼慧珊 卞艺潼
指导:万剑华教授(微信号wjh18266613129)