System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及电数字处理,尤其涉及一种矢量数据的快速发布和鉴权的方法。
技术介绍
1、大数据平台根据矢量空间数据类型进行分库存储,然后依托于gis引擎发布服务。现有技术缺点:更多面向于存储在固定的空间数据库或者固定空间数据格式如shapefile进行服务发布,而在大数据时代,数据湖是主流的多模态数据存储架构,对数据湖中存储的空间数据如何进行空间数据服务发布,技术方案较少。
2、专利授权公告号为:cn108924115b、名称为“一种空间服务权限控制方法及系统”的中国专利提出了面向不同角色对空间服务的数据进行数据范围、图层等控制方法。该技术的缺点为:(1)同一用户具备多个角色时,对空间服务访问时数据权限如何融合的问题;(2)对空间服务数据控制精度仅到图层和字段级别。现有的技术缺陷在于:(1)现有的空间矢量数据服务发布更多依赖于本地化的传统数据存储,基于数据湖的空间服务发布能力较弱;(2)无法实现跨数据源的空间矢量数据服务的发布与鉴权。
技术实现思路
1、为解决
技术介绍
中存在的技术问题,本专利技术提出一种矢量数据的快速发布和鉴权的方法。
2、本专利技术的技术构思为:数据湖(delta-lake)框架存储特点,对不同数据格式的空间数据进行统一格式转换并存储,实现不同格式的空间数据统一管理;基于云原生环境,采用无服务(serverless)架构,让服务的发布者只用关心服务本身的实现逻辑,无需关心运行环境;采用开源geoserver为基础引擎,扩展高并发能力,最大限度
3、一种矢量数据的快速发布和鉴权的方法,包括如下步骤:
4、步骤a:空间数据集转换:基于数据湖将传统的空间矢量数据进行空间数据空间字段类型的映射转换并存储;
5、步骤b:服务在线配置:选择步骤a存储的服务数据,在线编写数据内容、调试服务以形成原始的空间服务;
6、步骤c:原始的空间服务完成后,进行服务注册路由:将步骤b形成的原始的空间服务注册至服务网关,由网关统一代理;
7、步骤d:用户权限解析:融合用户所拥有的角色的单个空间服务的权限,计算出用户对空间服务的权限范围;
8、步骤e:服务数据输出:根据解析后的数据权限范围,请求空间服务,返回服务数据内容。
9、具体地,步骤a中传统的空间矢量数据包括shp、csv、geojson以及esri标准下的gdb以及sde,将传统的空间矢量数据格式转换为string格式。
10、作为本专利技术进一步优化的方案,根据不同的空间矢量数据格式,采用apachesedona函数库不同方法,解析并转换成delta表在数据湖中进行统一存储,实现基于数据湖的空间矢量数据管理,delta表是数据湖定义的表格式,是基于列存储的二维表结构。
11、具体地,步骤b中的在编写数据过程中服务的脚本采用sql、java和groovy语言混合编写,编写完成后基于ogc服务标准,将对应脚本转换为gis空间服务标准,并进行空间字段类型检查ogc服务标准,将对应脚本转换为gis空间服务标准,并进行空间字段类型检查,将转换后的脚本发布至geoserver服务引擎中,形成原始的空间服务。
12、作为本专利技术进一步优化的方案,步骤c中对原始的空间服务对外暴露具体包括:
13、c1:在服务实例的http容器中进行服务路由的注册;
14、c2:在服务网关中注册对外实际暴露的服务路由。
15、作为本专利技术进一步优化的方案,c2中服务请求流量经由网关接收处理,根据nginx网关设置的服务负载均衡策略然后转发到服务实例中完成请求。
16、作为本专利技术进一步优化的方案,步骤d中用户拥有至少两个角色,提取用户拥有各个角色的服务权限,对每个权限中包含的空间信息、属性信息进行并集计算,融合成该用户对应服务的权限范围,并将该记录加密存储至系统数据库中,该记录并与用户的服务密钥进行关联。
17、作为本专利技术进一步优化的方案,设定用户拥有两个角色a和角色b,角色a对空间服务1的属性信息权限范围为属性信息范围a、空间信息权限范围为空间信息范围a;角色b对空间服务1的属性信息权限范围为属性信息范围b、空间信息权限范围为空间信息范围b;具体步骤描述如下:
18、步骤d1:提取用户具备的a角色和b角色以及这些角色对服务1的权限范围,包括属性信息范围以及空间信息范围;
19、步骤d2:对a角色和b角色的属性信息范围进行并集计算,生成sql配置语句,即为属性信息融合范围c,该范围为用户对空间服务1的属性信息权限范围;
20、步骤d3:将用户对空间服务1的属性信息融合范围c写入rel_user_service的base_info_limit字段中;
21、步骤d4:对a角色和b角色的空间信息范围进行空间并集计算,生成空间信息融合范围c,该范围为用户对空间服务1的空间信息权限范围。
22、作为本专利技术进一步优化的方案,还包括步骤d5:构建用户信息、关联服务信息以及服务权限范围信息逻辑关系。
23、在一些实施例中具体地,步骤e中具体地:
24、步骤e1:用户访问服务时,传入空间服务代理后的地址以及用户的密钥;
25、步骤e2:服务访问请求首先至服务网关,通过传入的密钥检索出对应用户信息解析出当前用户对应请求的空间服务的服务属性信息范围和空间信息范围,按照对应引擎类型封装成属性信息范围参数d与空间信息范围参数d;
26、步骤e3:通过服务路由将用户请求转发至空间服务的原始地址;在空间服务的query接口的where参数中,传入封装后的服务属性信息范围参数d;在input geometry参数中传入封装后空间信息范围参数d;最终获取输出结果,通过服务网关地址返回给用户。
27、本专利技术中,所提出的矢量数据的快速发布和鉴权的方法,相对现有技术有如下优点:
28、(1)能够对数据湖中的空间矢量数据进行服务的快速发布,扩展大数据环境下,gis空间数据的快速应用;
29、(2)本专利技术结合了地理信息数据的空间和属性特性,对空间服务数据权限控制的做到记录级,提升了空间服务数据在使用过程中的安全性;
30、(3)提供发布后的服务的快速预览、鉴权统计页面。
31、本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。
本文档来自技高网...【技术保护点】
1.一种矢量数据的快速发布和鉴权的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的矢量数据的快速发布和鉴权的方法,其特征在于,步骤A中传统的空间矢量数据包括SHP、CSV、GeoJson以及ESRI标准下的GDB以及SDE,将传统的空间矢量数据格式转换为String格式。
3.根据权利要求2所述的矢量数据的快速发布和鉴权的方法,其特征在于,根据不同的空间矢量数据格式,采用Apache Sedona函数库不同方法,解析并转换成Delta表在数据湖中进行统一存储,实现基于数据湖的空间矢量数据管理,Delta表是数据湖定义的表格式,是基于列存储的二维表结构。
4.根据权利要求1所述的矢量数据的快速发布和鉴权的方法,其特征在于,步骤B中的在编写数据过程中服务的脚本采用SQL、JAVA和Groovy语言混合编写,编写完成后基于OGC服务标准,将对应脚本转换为GIS空间服务标准,并进行空间字段类型检查OGC服务标准,将对应脚本转换为GIS空间服务标准,并进行空间字段类型检查,将转换后的脚本发布至GeoServer服务引擎中,形成原始的空间服务。<
...【技术特征摘要】
1.一种矢量数据的快速发布和鉴权的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的矢量数据的快速发布和鉴权的方法,其特征在于,步骤a中传统的空间矢量数据包括shp、csv、geojson以及esri标准下的gdb以及sde,将传统的空间矢量数据格式转换为string格式。
3.根据权利要求2所述的矢量数据的快速发布和鉴权的方法,其特征在于,根据不同的空间矢量数据格式,采用apache sedona函数库不同方法,解析并转换成delta表在数据湖中进行统一存储,实现基于数据湖的空间矢量数据管理,delta表是数据湖定义的表格式,是基于列存储的二维表结构。
4.根据权利要求1所述的矢量数据的快速发布和鉴权的方法,其特征在于,步骤b中的在编写数据过程中服务的脚本采用sql、java和groovy语言混合编写,编写完成后基于ogc服务标准,将对应脚本转换为gis空间服务标准,并进行空间字段类型检查ogc服务标准,将对应脚本转换为gis空间服务标准,并进行空间字段类型检查,将转换后的脚本发布至geoserver服务引擎中,形成原始的空间服务。
5.根据权利要求1所述的矢量数据的快速发布和鉴权的方法,其特征在于,步骤c中对原始...
【专利技术属性】
技术研发人员:黄言军,李志金,李号彩,万海欣,吴建抗,段瑞永,王娜,张国瑞,张强,张志鹏,刘欣,林尧,刘玉麟,
申请(专利权)人:中国大唐集团数字科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。