作者简介:本文作者曾志明博士毕业于中科院地理所GIS(地理信息系统)专业,从事GIS基础软件开发20余年。
两年多前,我加入阿里云之后,就不断有朋友和我打听:你到阿里云是做什么,是不是阿里要自己做一套GIS产品。于是在2021年的云栖大会上,我做了关于“空间数据中台”的报告,系统汇报了我在阿里的工作想法和初步成果。报告的图文版,发表为:《空间数据中台是什么,怎么用》
总体而言,空间数据中台虽然和GIS一样是处理空间类型的数据,但空间数据中台绝对不等同于GIS,两者面临的应用场景是不同的,两者相互之间不可替代。
简单来说,GIS是要建设带有空间数据的应用系统时,需要用到的功能组件。而空间数据中台是在数据资源平台DataQ之中,系统的融合了对空间数据的处理能力,以满足涉及到空间数据的数字化转型的要求。
在数字化转型的整体架构中,空间数据中台是在空间数据库和应用系统之间的位置,即前台是带有空间数据的N个应用系统,中间是空间数据中台,后台是包括空间数据的数据库。如下图所示。
也许是对这个新的IT框架感兴趣,也许是面向的客户已经有了这样的诉求,去年就陆续有在自然资源和规划等行业的朋友联系我,想进一步能上手体验空间数据中台。不过由于DataQ整体部署对服务器有一定要求,整体线下部署的成本较高,若没有看得到的实际项目的经费支撑,对双方的投入都有可能造成不小的负担,故而很多并没有进一步推进。
今年随着DataQ整体在公共云上开通在线使用,空间相关能力也随之做了离岸计算等技术改造,经过一段时间的内部验证,已经达到基本可用的程度。不过为了稳妥起见和公共云产品的开通规则,仍然会按照“邀测”--“公测”--“正式商业化”的节奏逐步推进。当前已经到“邀测”的阶段,请有意向体验的朋友,和我们联系,通过开通白名单,即可以较低的成本在线体验空间数据中台。通过实际的体验和验证,然后再决定是否需要在实际项目中采用空间数据中台。
不得不再唠叨一句:数字化转型和传统项目开发在为客户创造价值、项目运作方式和整体技术框架等多方面都有思维上的差别。故而,若对数字化转型了解不多,再加上会涉及到诸多的概念和术语,需要做的配置项也会比较多,一开始上手时确实会比较费劲。但这些都是后续数字化转型过程中会遇到的必经过程。在此过程中,有遇到任何疑惑和问题,欢迎随时和我们沟通,我们也希望通过不断的反馈来优化体验、改进产品,与合作伙伴共同成长。
说了这么多,还是详细介绍如何开通和使用。过程略微有些复杂,请耐心阅读。
一. 开通账号
1.1 注册阿里云账号
登录阿里云官网(https://www.aliyun.com/),点击右上角的“登录/注册”,即可注册阿里云的账号。这个过程和各网站注册过程无异,就不再累述。
开通之后,即可获得账号名称和主账号ID,如图所示。
1.2 申请开通试用DataQ
申请方式:先下载注册钉钉(https://page.dingtalk.com/wow/z/dingtalk/simple/ddhomedownload#/ ),再用钉钉扫描二维码、或者群链接、或者搜索群号(34560033003)加入专属群。
二维码:
入群后,请提供以下信息:
1) 申请人
2) 账号ID
3) 客户单位
4) 选择开通的地区,目前包括杭州、上海和北京,选择距离自己近的即可
5) 开通时长(1个月、3个月或6个月)
6) 开通用途(公共云测试、线下客户测试、线下项目在公网生产)
由于目前处于“邀测”阶段,因此需要您在群里提供信息后,群里工作人员会在后台操作开通,之后才能使用空间相关能力。不放心的朋友可以在群里和我联系,提供您申请的账号ID,我们会留意处理。
后续到“公测”阶段,就可以直接在DataQ的官网(https://www.aliyun.com/product/drp)中开通使用了。
在申请通过之后,下一步就是准备相关的资源和完成必要的配置。
二. 环境准备
2.1 准备“云计算资源”
“云计算资源”是DataQ中高频会接触到,但一开始又会有些糊涂的概念。可以这么简单理解:DataQ是管理平台,自身并不带有存储和计算能力,因此需要用户预先准备好在云上的存储和计算资源,这些会在DataQ中统一接入和管理,被统称为“云计算资源”。从文章一开始的“整体架构图”中也能够看到,空间数据中台本身是不包括数据库和存储资源的,因此需要先准备好相关的云计算资源。
我们需要准备的云计算资源最基本的包括存储文件的对象存储(OSS),和包括空间数据能力的数据库。
OSS对象存储的官网为:https://www.aliyun.com/product/oss
阿里云的空间数据引擎为ganos,官网地址为: https://www.aliyun.com/database/ganos
ganos是数据库中的空间扩展,阿里云带有ganos的数据库类型主要包括:RDS PG、PolarDB PG和AnalyticDB PG等三个版本。三者的区别是:RDS PG价格最便宜,PolorDB PG的ganos带有三维数据能力,AnalyticDB PG适合做数据仓库,可以根据实际使用的需要来选择。在开通数据库之后,记得在数据库中开通空间扩展。ganos中针对不同空间数据类型有不同的扩展,最常用的几何扩展为“Create extension ganos_geometry cascade;”,其它类型请查阅ganos的在线文档。
2.2 新增工作组和应用
新增工作组和应用的操作是在DataQ中进行的,这之后的操作,基本都是在DataQ的控制台进行,地址为: https://dataq.console.aliyun.com/dqp/home-page
2.2.1 进入“系统设置”
点击右上角的人像中,选择“系统设置”。
2.2.2 新建工作组”
在“工作组管理”中,“新建工作组”,并把自己设置为工作组管理员
模式选择“简单模式”即可,用“专业模式”意味着需要给数据开发和生产上线提供两套不一样的资源,以保证生产的安全可靠。对于一开始试用,就无需这么复杂了。
需要“工作组”的原因是:DataQ是面向多人协同管理数据,要完成的数据处理任务也会很多;在一个“工作组”内,多人面向同一个数据处理领域,能访问到同样的数据和环境。
2.2.3 新建应用
需要“应用管理”的原因是:DataQ是要支持多项应用系统的,因此在发布数据服务时,需要选择该服务是提供给哪个应用的。
2.3 接入云计算资源
在DataQ中接入云计算资源,这里要接入的对象存储和空间数据库,就是在2.1中所购买的资源,由于这些资源有些是存储、有些是计算、有些是存储加计算,故而统称为“云计算资源”。
云计算资源是在同一个“工作组”内共享的,因此得在2.2这一步先把“工作组”创建好。
先进入到“系统”--“工作组管理”--“云计算资源”中。
2.3.1 接入对象存储OSS
在“新建云计算资源”的“云计算资源类型”中,输入和选择OSS。
再填写OSS的相关信息,包括Endpoint、Bucket、Access的ID和Key。这里的关键是Endpoint的地址必须输入https,而非http。
2.3.2 接入空间数据库
根据之前购买的数据库类型,选择PostgreSQL、PolarDB for PostgreSQL或AnalyticDB Postgresql,记得在数据库中已经开通ganos扩展。
“创建方式”选择“连接地址模式”,并一定要勾选“空间特性”,并“测试连通性”。
另外,由于DataQ需要访问数据库,请在数据库的白名单列表中,增加以下地址:47.97.154.53, 100.104.45.64/26。
三. 空间能力体验
3.1 进入主流程
点击左上角的三横,选择“协同”,进入主流程。
和空间相关的能力主要集中在“数据同步”、“数据查询”、“空间数据管理”、“数据开发”和“空间服务发布”上。
3.2 空间数据同步
空间数据同步功能在“数据同步”模块,是把PostGIS、超图SDX和ArcSDE等空间数据引擎中的空间数据同步到Ganos中。
3.3 空间数据查询和浏览
“数据查询”在数据表带有空间字段时,可开启地图模式,实现数据表和地图的联动。
3.4 空间数据管理
“空间数据管理”提供:
1)空间数据文件的本地上传、OSS添加和管理,支持的空间数据类型包括:矢量、栅格、倾斜摄影、模型、瓦片等;
2)通过时间和空间检索空间数据;
3)几个常用的空间数据处理能力,更多的空间计算能力,我们后续会陆续放出。
3.5 空间治理
空间数据的治理能力在“数据开发”模块中。
表面上看,“数据开发”支持通过调用空间数据库的空间SQL(ST_XXX)进行空间数据处理。但“数据开发”结合“数据标准”、“数据建模”能力,即可完成把“数据同步”中汇聚的各类数据进行标准化的梳理,再进行分层分域的维度建模,最后通过SQL语句的开发,完成最终的数据仓库,以及各项指标的计算。之后还可以用“统一服务”发布给各个应用系统使用。因此数据开发是包括空间治理在内的数据治理的核心。
数据开发支持多种节点,分别对应不同的后台数据库和计算类型,还能用户自定义开发(Elastic Job类型),以完成较为复杂的定制化要求。
“数据开发”中另一个和GIS软件很大的区别在于为满足业务系统定期的数据更新和计算得到新的指标数据,因此具备定期调度能力。
3.6 空间服务发布
“空间服务发布”提供:WFS、WMS、WMTS等OGC服务的发布能力,二维瓦片TMS,三维S3M和3D Tiles瓦片的发布能力。
下图为发布的三维倾斜摄影服务效果预览。
3.7 空间数据资产管理
这部分和通用的资产管理区别不大,除了能浏览地图,对用户非常有价值的就是包括空间数据在内、全链路的字段级血缘能力。
其它和空间数据相关的能力还包括:空间数据质量检查、统一服务中注册已有空间服务等。另外常用的还有“运维监控”和“质量评估”等模块,这里就不一一阐述了。更多帮助文档,可访问: https://help.aliyun.com/product/127040.html
一开始使用,大家可能会感觉空间能力的组织有些混乱:有些是和非空间能力在一起的,如数据同步、数据开发、资产管理等;有些又是独立的模块,如空间数据管理和空间服务发布。其实,我们的目标是让空间数据的相关能力和非空间的能力彻底整合融于一体,使得在遇到空间数据时,就能处理好空间数据,在没有遇到空间数据时,也不会有任何多余的负担。
现在距离理想的状态还有一些差距,我们正在持续演进中。后续版本把“空间数据管理”升级为能管理各类文件型数据的通用“数据管理”,而“空间服务发布”会融入到“统一服务”中。
四. 避坑指南
这里面还有几个需要留心的点。
4.1 Spatial Data Source
在进行空间数据同步时,源端的空间数据库需要在“新建云计算资源”中,用“Spatial Data Source”选择对应的GIS引擎再注册一次。原因是要把其他GIS引擎的空间数据库同步到Ganos时,需要对其进行预先的识别。当然,这样的使用体验是不好的,后续我们会通过其他办法来改进过程。
4.2 zip压缩方式
对于Mac OS用户,在上传shape数据前,需要进入到shape文件的目录下,选择整套shape文件进行zip压缩,而不能选择目录整体进行zip压缩。原因是Mac中对目录进行压缩,zip压缩包中会增加一个系统目录,导致后台找不到正确的目录。正确的压缩zip如下图所示。
4.3 “计算集群”配置
对于要使用“空间数据管理”中的几个数据处理任务时,需要预先购买和配置“计算集群”。
这个“计算集群”其实也是一种“云计算资源”。只所以需要单独购买,是DataQ无论是内置还是用户自定义的计算能力,需要在一个k8s的环境下运行,而DataQ为了安全考虑,并没有在自己管理的计算环境下拉取用户数据进行计算,而是把计算代码推送到用户提供的计算集群中。这样就做到了用户的数据是在自己的环境下被访问和计算,避免集中到DataQ的公共环境可能带来的数据安全隐患。
具体的配置过程如下。
4.3.1 购买计算资源
首先购买ack(k8s环境)或ask(弹性k8s环境),购买地址如下:
4.3.2 配置“计算集群”
然后,在DataQ的“弹性计算”--“资源管理”--“集群管理”中,“新建集群”
并拷入集群配置文件中的内容,并记得在“关联镜像仓库”中选中默认配置(如下图)。
根据资源类型选择是否为 ask集群,需要注意的是,如果购买的资源为 ACK Serverless 集群,那么也需要选择“是”。
4.3.3 设置为“云计算资源”
在DataQ的“系统”--“工作组管理”的对应工作组的“云计算资源”中“新建云计算资源”,类型选择“Elastic Job”,group选择上一步创建的集群名称。
4.3.4 设置“云计算资源”
在DataQ的“协同”--“空间数据管理”--“数据处理中”,每个对应的任务,都要选择之前创建的Elastic Job资源,如下图所示。
这个配置过程确实有些复杂,分为:
1)购买计算集群;
2)把购买的计算集群纳入DataQ的集群管理;
3)在设置为DataQ的“Elastic Job”云计算资源;
4)在做空间数据处理时,选择对应的“Elastic Job”云计算资源。
配置过程如果遇到困难,可随时和我们联系。
不得不说,上述使用的整个过程虽然比线下部署的成本已经大大降低了,但掌握和使用起来仍然还是有门槛的,需要有技术投入和足够的耐心才能玩得转。但我们坚信:数字化转型肯定是未来的大势所趋,如何更好的服务空间领域的政府部门和企事业单位,让空间数据更好的产生社会和业务价值,空间数据中台是必然的选择。
我们期待您的使用和反馈,共同促进和服务好空间领域的数字化转型!