一种基于分布式架构的空间数据转换方法
文献发布时间:2023-06-19 09:30:39
技术领域
本发明涉及空间数据技术领域,具体的说是一种基于分布式架构的空间数据转换方法。
背景技术
空间数据是指用来表示空间实体的位置、形状、大小及其分布特征诸多方面信息的数据,是一种用点、线、面以及实体等基本空间数据结构来表示人们赖以生存的自然世界的数据,它可以用来描述来自现实世界的目标,它具有定位、定性、时间和空间关系等特性。
随着国家对信息化的重视和数据中国的发展,GIS(地理信息系统)作为数据分析,数据二三维直观展示,在国土、水利、交通、农业和智慧城市等领域等到了广泛应用,用于辅助支持决策规划。且各部门间存在空间数据交换共享的需求,空间数据主要以shapefile的形式,进行交换,但随着GIS数据量越来越大,传统的GIS工具在处理空间数据时就遇到了性能瓶颈。存储在SDE数据库中的大批量空间数据导成shapefile需要花费很长时间,效率比较低下。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于分布式架构的空间数据转换方法,把空间数据快速方便的从SDE数据库中导出并转换成shapefile文件,并在导出的过程中对数据进行过滤、转换和质量评估。
本发明的一种基于分布式架构的空间数据转换方法,解决上述技术问题采用的技术方案如下:
一种基于分布式架构的空间数据转换方法,首先,基于开源的nifi和kafka技术,采用B/S架构,将空间数据进行分布式集群部署;
随后,通过浏览器访问部署有空间数据的服务器,并执行如下操作:
在任务管理页面,基于空间数据创建任务,
在任务列表,选取需要调度的任务,
在任务调度页面,启动选取的任务,调用nifi数据流模板,创建nifi任务,并把空间数据传递给nifi处理器;
最后,nifi处理器创建数据库连接、拆分数据处理任务、kafka处理器分发任务,nifi处理器还并发执行数据处理任务、质量评估,实现空间数据的快速转换。
进一步的,在创建任务之前,需要定义评估规则,通过评估规则对空间数据的质量进行检查,随后基于通过检查的空间数据来创建任务。
更进一步的,所涉及评估规则包括拓扑规则、编码规则和元数据三方面,其中:
拓扑规则压要求不能有悬挂点、不能重叠、不能相交,依据拓扑规则对空间数据进行评估时,需要进行相应的拓扑检查,并在页面展示拓扑检查结果,
依据编码规则对空间数据进行评估时,需要检查字段的字段值和值域是否符合标准,检查结果在页面进行展示,
依据元数据对空间数据进行评估时,会根据数据标准来图层的字段是否缺失、字段的类型是否符合标准,最终的检查结果会在页面展示。
进一步的,在任务管理页面,基于空间数据,通过填写任务信息、选择数据源信息和处理内容,来创建任务;
创建任务这一过程中,处理内容包括字段过滤、投影变换、面积计算、图形匹配。
更进一步的,所涉及nifi处理器包括TaskConfigProcessor处理器、GetFeatureProcessor处理器、LayerBlockProcessor处理器、kafkaPublish处理器;
把空间数据传递给nifi处理器后,TaskConfigProcessor处理器接收任务参数转为数据流传递给GetFeatureProcessor处理器,GetFeatureProcessor处理器创建SDE连接并计算出图层要素数和最大ObjectID,并写入数据流中传给LayerBlockProcessor处理器,LayerBlockProcessor处理器根据配置拆分成多个任务,形成多个数据流写入kafkaPublish处理器中。
更进一步的,所涉及TaskConfigProcessor处理器、GetFeatureProcessor处理器、LayerBlockProcessor处理器、kafkaPublish处理器运行在集群的主节点。
更进一步的,所涉及nifi处理器还包括kafkaConsumer处理器、SdeToShpProcessor处理器;
集群中的所有节点单线程运行kafkaConsumer处理器,并发运行SdeToShpProcessor处理器读取数据流,进行数据处理,根据数据流中的内容来判断是否进行投影变换、面积计算和字段过滤。
更进一步的,设置任务监控模块,一方面对访问部署有空间数据的服务器和nifi处理器的过程进行实时监控和报错,另一方面获取SDE数据库中空间数据导成shapefile文件的执行时长、执行结果和shapefile文件的存放目录。
优选的,所涉及空间数据来自arcgis、supermap和mapgis任一GIS平台。
本发明的一种基于分布式架构的空间数据转换方法,与现有技术相比具有的有益效果是:
1)本发明基于开源的nifi和kafka技术,采用B/S架构,分布式并发转换空间数据,可以把空间数据快速方便的从SDE数据库中导出并转换成shapefile文件,并在导出的过程中对数据进行过滤、转换和质量评估;
2)本发明应用简单,只需要简单的填写任务信息、选择数据源信息和处理内容就可以创建任务,在任务列表调度任务就可以了,相较于arcgis desktop等GIS相关产品操作简单很多;
3)本发明设置有务监控模块,一方面对访问部署有空间数据的服务器和nifi处理器的过程进行实时监控和报错,另一方面获取SDE数据库中空间数据导成shapefile文件的执行时长、执行结果和shapefile文件的存放目录。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
本实施例提出一种基于分布式架构的空间数据转换方法,其实现过程如下:
(一)首先,基于开源的nifi和kafka技术,采用B/S架构,将空间数据进行分布式集群部署。
本实施例所述空间数据来自arcgis、supermap和mapgis任一GIS平台。
(二)随后,通过浏览器访问部署有空间数据的服务器,并执行如下操作:
(1)定义评估规则,通过评估规则对空间数据的质量进行检查。
本实施例定义的评估规则包括拓扑规则、编码规则和元数据三方面,其中:
拓扑规则压要求不能有悬挂点、不能重叠、不能相交,依据拓扑规则对空间数据进行评估时,需要进行相应的拓扑检查,并在页面展示拓扑检查结果,
依据编码规则对空间数据进行评估时,需要检查字段的字段值和值域是否符合标准,检查结果在页面进行展示,
依据元数据对空间数据进行评估时,会根据数据标准来图层的字段是否缺失、字段的类型是否符合标准,最终的检查结果会在页面展示。
(2)在任务管理页面,基于通过检查的空间数据,通过填写任务信息、选择数据源信息和处理内容,来创建任务。
创建任务这一过程中,处理内容包括字段过滤、投影变换、面积计算、图形匹配。
(3)在任务列表,选取需要调度的任务。
(4)在任务调度页面,启动选取的任务,调用nifi数据流模板,创建nifi任务,并把空间数据传递给nifi处理器。
(三)最后,nifi处理器创建数据库连接、拆分数据处理任务、kafka处理器分发任务,nifi处理器还并发执行数据处理任务、质量评估,实现空间数据的快速转换。
本实施例中,nifi处理器包括TaskConfigProcessor处理器、GetFeatureProcessor处理器、LayerBlockProcessor处理器、kafkaPublish处理器,kafkaConsumer处理器、SdeToShpProcessor处理器。
把空间数据传递给nifi处理器后,TaskConfigProcessor处理器接收任务参数转为数据流传递给GetFeatureProcessor处理器,GetFeatureProcessor处理器创建SDE连接并计算出图层要素数和最大ObjectID,并写入数据流中传给LayerBlockProcessor处理器,LayerBlockProcessor处理器根据配置拆分成多个任务,形成多个数据流写入kafkaPublish处理器中。TaskConfigProcessor处理器、GetFeatureProcessor处理器、LayerBlockProcessor处理器、kafkaPublish处理器运行在集群的主节点。
集群中的所有节点单线程运行kafkaConsumer处理器,并发运行SdeToShpProcessor处理器读取数据流,进行数据处理,根据数据流中的内容来判断是否进行投影变换、面积计算和字段过滤。
实施例二:
在实施例一的结构基础上,本实施例提出一种基于分布式架构的空间数据转换方法,其包括监控步骤(二)、(三)进程的任务监控模块。
任务监控模块一方面对访问部署有空间数据的服务器和nifi处理器的过程进行实时监控和报错,另一方面获取SDE数据库中空间数据导成shapefile文件的执行时长、执行结果和shapefile文件的存放目录。
综上可知,采用本发明的一种基于分布式架构的空间数据转换方法,可以把空间数据快速方便的从SDE数据库中导出并转换成shapefile文件,并在导出的过程中对数据进行过滤、转换和质量评估,解决现有GIS工具将空间数据导成shapefile需要花费时间长的问题。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
- 一种基于分布式架构的空间数据转换方法
- 一种基于空间数据模型的矢量图件标准转换方法