使用ArcGIS Datastore 11.5 对象存储加速要素图层海量点渲染

ArcGIS Enterprise 中托管要素服务图层的响应缓存

在 ArcGIS Enterprise 11 及以上版本,可用于为在关系型Datastore上运行的托管要素服务图层启用响应缓存。需要在 ArcGIS Datastore中配置对象存储类型才可以使用。

响应缓存是一种后端服务器缓存机制,可显著提高关系数据存储上托管要素服务提供的数据的性能和可伸缩性。它非常适合只读数据或不经常更改的数据。启用响应缓存后,将缓存来自使用或已设置为的图层查询的响应。当再次向服务发送完全相同的查询时,只要自创建缓存以来数据尚未更新,就会返回缓存响应。如果数据已更新,则会根据更新的响应创建新的缓存。例如,始终使用相同tile的请求绘制内容的客户端将受益于响应缓存。

resultType:tile    cacheHint:true

启用响应缓存

在启用响应缓存之前,必须在 ArcGIS Data Store 中配置对象存储。对象存储是必需的,因为它用于存储响应和维护上次编辑数据元数据。配置对象存储后,需要重新启动ArcGIS Server以允许托管要素服务访问它。重新启动后,在关系数据存储上运行的托管要素服务将包含该属性。

"editingInfo": ("lastEditDate": <dateValue>)

配置对象存储后,可以使用该接口在各个托管要素服务图层上启用响应缓存,从而控制哪些图层将响应缓存内容写入对象存储。这也适用于托管要素服务图层视图,其中可以在视图图层上独立启用或禁用响应缓存。以下示例输入 启用响应缓存,该缓存将在一天后过期。

https://myenterprise.xxx.com/server/rest/admin/services/Hosted/counties/FeatureServer/updateDefinition

{ "layerCache": { "enabled": true, "expiration": 1 } }

expiration属性定义缓存在删除之前将存储的天数。删除缓存后,下次查询服务时将创建新的响应缓存。

启用响应缓存

用于启用响应缓存后,图层管理资源adminLayerInfo 将列出当前响应缓存设置:https://myenterprise.xxx.com/server/rest/admin/services/Hosted/counties/FeatureServer?f=pjson

服务管理信息里查看当前响应缓存设置

禁用响应缓存

也可以使用updateDefinition在托管要素图层、托管要素图层和托管要素图层视图上禁用响应缓存。禁用响应缓存将从对象存储中移除图层的所有缓存内容。

以下示例输入 禁用响应缓存:

{ "layerCache": { "enabled": false } }

禁用响应缓存

响应缓存实际效果对比

加载托管要素200万个点,不开启响应缓存,时间为1.1分钟,即70秒

不启用响应缓存

启用响应缓存,加载同样200万个点,时间为32秒。速度提升一倍

启用响应缓存后

由于可视化200万个原始点的数据量太大,性能很多消耗在渲染层面,现在以同一份数据的聚合视图做测试。

不启用响应缓存加载时长为44.25秒。

聚合视图不启用响应缓存

启用响应缓存,200万个点的聚合视图加载时间为12.51秒。

聚合视图启用响应缓存

可以看到每个查询的响应时间基本为14-17毫秒。而不开启缓存时请求的时间会在几十毫秒到一千毫秒上波动。

最后

托管要素图层的响应缓存存储在ArcGIS Datastore 对象存储中

对象存储里的响应缓存
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容