空间分析服务GeoFaaS函数化

GIS云套件发布数据源为PostgreSQL工作空间Oracle工作空间数据目录服务,选择服务类型为REST-空间分析服务发布服务时(请参见服务管理->服务实例->发布服务->发布PostgreSQL工作空间中的第3步“选择需要发布的服务类型”),可发布具备Serverless GIS空间分析功能的函数计算服务,参照下表。

空间分析维度 空间分析服务操作 说明
二维 overlay 对数据集进行叠加分析
isoline 对数据集进行提取等值线的表面分析
isoregion 对数据集进行提取等值面的表面分析
mathanalyst 对多个栅格数据集进行数学运算以及函数运算
terraincalculation 对栅格数据进行有关地形相关的计算
buffer 对数据集进行缓冲区分析
georelation 对数据集进行空间关系分析
densityanalyst 对数据集进行密度分析
interpolation 对数据集进行插值分析
mindistance 对数据集进行最近距离计算
thiessenpolygon 对几何对象进行邻近分析,生成泰森多边形
三维 buffer3d 对数据集进行三维缓冲区分析
sunlight 对数据集进行日照分析
geobody 对数据集进行构建地质体
terraincalculation 对栅格数据进行有关地形相关的计算(坡度分析Slope、坡向分析Aspect)

上表Serverless GIS函数功能的空间分析服务中,地形计算(terraincalculation)支持的子资源包括:曲率计算(curvature)和填挖方计算(cutfill),密度分析(densityanalyst)支持的子资源为核密度分析(kernelDensity)。

随着用户数量的增加,函数副本数保持不变时,函数并发请求的响应速度将逐渐变慢,Serverless GIS通过自动伸缩相应数量的函数以降低平均响应时间。可借助超图桌面端GIS软件平台SuperMap iDesktopX,可通过修改数据源最大连接数,实现单个分析函数支持的最大并发请求数的配置,具体操作如下:

  1. 点击打开数据库型数据源,选择相应类型的空间数据库,如“PostgreSQL”。

  2. 配置完成“服务器地址”等信息后,修改连接池最大连接数一项,例如:将默认的“1”改为“50”。

  3. 打开后保存当前工作空间。

分析函数最大并发请求数和数据源最大连接数之间存在如下表的对应关系:

数据源类型 最大连接数 实际最大并发请求数 说明
PostgreSQL或PostGIS 1 8 按1:10分配线程,预留数为2。例即1*10-2
OraclePlus或DMPlus 1 1 按1:1分配线程
Yukon 1 5 按1:10分配线程,预留50%。例即1*10*50%

访问 http://<ip>:31234 进入kubernetes的dashboard界面,<ip>是iManager所在机器的ip。在对应GIS云套件站点命名空间下点击左侧导航栏Custom Resource Definitions,检索名为的“Scaled Job”的自定义资源CRD并点击进入详情页面。在对象(Objects)区域下的空间分析函数也可通过编辑操作修改最大并发请求数的环境变量,实现单个分析函数支持的最大并发请求数的配置,如下图

crdrequestcountconfig

注意: 如果按关系表中所对应的“实际最大并发请求数”超过由环境变量配置的最大并发请求数,则最多只可接收环境变量所配置的并发请求。例如:对于数据源为PostgreSQL或PostGIS数据库的连接池最大连接数设为2,根据对应关系实际最大并发请求数应为18,而环境变量中设为10时,最大可接收并发请求数则为10。

进入SuperMap iManager站点管理功能模块,点击查看对应GIS云套件站点服务列表的详情页面,可以查看已部署的Serverless GIS空间分析函数计算服务,如下图

spatialanalystfunction

注意:

  1. 数据源为数据目录服务发布服务,由PostGISPostgreSQLOraclePlus空间数据库导入的数据发布为空间分析服务时,将会以函数方式运行。HDFS目录注册的数据不支持发布空间分析服务。
  2. 数据源为文件型工作空间发布服务,当服务类型为REST-空间分析服务时,不会以函数方式运行。