面向城市地质的大数据存储设计方法探究

2022-02-02 01:48李研研王凯
吉林地质 2022年3期
关键词:海量结构化矢量

李研研,王凯

吉林省地矿信息中心,吉林 长春 130061

0 引言

大数据是在二十世纪八十年代由全球知名咨询公司麦肯锡在研究报告中首次提出,在该研究报告中定义大数据为通过网络技术对数据进行获取、处理、分析,从中提取到海量的有价值的交易数据或传感数据。当前城市地质工作,同样要面对各种复杂类型数据的采集、挖掘、处理、分析、应用问题,这些均与“大数据”的目的不谋而合。城市地质资料应该是“大数据”的重要组成部分。对城市地质资料进行数字化,并通过大数据的叠加分析,规律判定、可视化操作等程序,可以更加有效的支撑国土空间规划、土地开发利用管理、地质灾害防治救援、城镇开发基础等地质信息辅助应用服务。

1 多元数据存储设计

城市地质资料大数据存储可以对所有城市地质资料数据综合考量,分类施策,对症下药,整合梳理,有效地解决城市地质资料“数据孤岛”问题。对于原始城市地质静态数据,可以将数据带进程序,对于动态数据,可以带程序进数据。对于结构化数据可以使用关系数据库技术来处理,对于非结构化数据则要用NoSQL(非关系型的数据库)来处理。所有的地质数据库存储设计主要是结合业务场景将用到的所有数据进行抽取分类存储管理,按照结构化数据存储、非结构化数据存储、空间数据存储以及动态监控数据的存储,设计几种方式进行混合存储设计。

1.1 结构化数据存储设计

结构化数据采用关系型数据库进行管理,存储数据主要为地质矢量图形表和地质业务属性表等二维关系结构数据。

1.2 非结构化数据存储设计

将非结构化数据本身存储在内存介质上,非结构化数据元数据(如文件路径、文件名、文件格式、文件大小等)存储到数据库表中,并与对应空间数据对象建立关联关系,降低数据库资源消耗的同时也减轻了数据维护的压力。

(1)非关系型数据库存储(NoSQL)。存储数据可包括切片数据缓存、日志缓存数据。

(2)分布式文件系统(HDFS)。分布式文件系统存储数据可包括办公文档、地质报告、文本、图片、图像、音频、视频信息等格式数据。

1.3 空间数据存储设计

1.3.1 矢量数据存储

主要采用GIS空间数据库+关系型数据库来对空间数据进行物理存储设计。矢量空间数据采用关系型数据库RDBMS+空间数据库引擎等方式进行存储。存储数据包括工作区以往区域地质图、构造地质图、基岩地质图,调查区已有的遥感影像、地球物理、地球化学和矿区大比例尺填图等提供全局总貌和揭示隐伏信息的各种矢量资料。

1.3.2 栅格数据存储

对于遥感影像等栅格类数据由于数据量巨大,直接存储到数据库中不仅增加了数据库运行压力,同时栅格数据本身的读取速度也会大大降低。将体量巨大的栅格数据本身保留在数据库外部而仅在数据库中保存数据的引用。不仅便于栅格数据的管理和查询,同时能够提供高级栅格查询功能以及实施函数处理,还可用作提供影像服务的数据源。

1.4 动态监控数据的存储设计

1.4.1 实时监测数据

实时监测数据主要包括平台中的结构化数据如站点信息、用户信息等数据以及传感器采集到的环境监测数据。这两类数据均可以采用关系形数据库进行存储。

1.4.2 历史数据的管理

动态监测数据不紧需要支持可视化及智能化分析,还需要支持对历史数据查询和回滚。系统需要接受多种类型终端设备采集上报,数据刷新较快、只用关系型数据库来存储会出现数据量增长过快、系统故障时会导致系统数据丢失。因此还需要对所有采集的原始数据进行备份。采用基于分布式的NoSql数据库来存储,能够满足存储效率、数据库扩容、数据冗余备份以及与实时数据库进行数据同步等多个方面的需求, 可以将监测设备采集的数据及设备状态信息记录到NoSql类型的数据库中。

2 元数据管理

元数据管理按照中国地质调查局提出的元数据标准,对地质相关数据进行统一描述,包括元数据基础信息、标识信息、数据质量信息、空间参照系信息、分发信息、内容信息、联系单位等进行描述。其主要功能包括新建元数据、导入元数据、导出元数据、删除元数据、关联元数据、编辑元数据、元数据查询等(图1)。

图1 元数据管理主界面

2.1 新建元数据

提供对元数据的初始创建功能,通过选定目录树节点,实现创建元数据功能。

2.2 导入元数据

通过将符合标准的元数据压缩成文件拖放到界面中,实现对元数据的批量导入和创建。

2.3 导出元数据

通过对选择的元数据进行导出操作,实现将元数据导出为符合标准的元数据文件压缩文档。

2.4 删除元数据

实现将当前选择的元数据记录从数据库中删除的操作。

2.5 关联元数据

通过选择元数据和附件文件,自动将当前的元数据信息与附件文件关联起来,当查看元数据时,可以看到关联的文件内容。

2.6 编辑元数据

通过选择的元数据,进行编辑元数据元素的属性值,包括元数据基础信息、标识信息、数据质量信息、空间参照系信息、分发信息、内容信息、联系单位等,实现对元数据信息的修改和更新。同时提供编辑中的后退、撤销和保存功能(图2)。

图2 编辑元数据

2.7 元数据查询

通过在目录树中输入的关键字进行检索,得到符合要求的元数据,然后可以进行查看、编辑、删除、关联、导出等操作。提供元数据目录和树状图两种显示方案(图3)。

图3 元数据查询

3 分布式数据存储设计

城市地质大数据来源具有多源异构、海量、多比例尺、多时空尺度的特点,因此,在传统几种数据库引擎的基础之上,针对城市地质数据的特点,还可以更加精细的采用构建分布式数据库引擎进行管理,其集成整合了多种开源分布式数据库和文件系统,分别用来存储和管理关系型数据、切片型数据、实时型数据和非结构化数据,形成针对地质大数据应用场景相关的解决方案。

3.1 基于PostgreSQL的数据引擎

传统关系型数据库在存储海量矢量数据时,只能部署在单个服务器上,无法承受海量数据的存储和查询请求,尤其是对于对象个数超过千万条的复杂空间数据,其性能会急剧下降。PostgreSQL是一个功能强大的开源关系型数据库,其具备矢量点线面的高效存储和查询的能力,并且可以构建分布式的数据库集群。通过将PostgreSQL集成可实现海量矢量数据的分布式存储,将传统数据库的复杂表进行数据分块分节点,同时可控制每个存储节点的数据量在千万条左右,在此基础之上利用空间索引分区技术实现快速查询,最终有效解决传统关系型数据存在的瓶颈问题。

3.2 基于MongoDB的数据引擎

MongoDB是一个基于分布式文件存储的数据库,它是一个跨平台的、面向文档的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB支持的数据结构非常松散,因此可以存储比较复杂的数据类型。MongoDB最大的特点是支持查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB数据库主要用来存储栅格瓦片、矢量瓦片及三维瓦片等。

3.3 基于ElasticSearch的数据引擎

ElasticSearch是一个开源的搜索引擎,建立在全文搜索引擎库Apache Lucene上。Apache Lucene被认为是当下最先进、高性能、全功能的搜索引擎库。但它仅仅是一个库,为充分发挥其功能,需要使用Java并将其直接集成到应用程序中。ElasticSearch实现了随时可用和按需扩容。ElasticSearch真正的扩容能力来自水平扩容,即通过为集群添加更多的节点,并将负载压力和稳定性分散给这些节点来实现。

ElasticSearch主要用来进行流数据的存储,它提供了一个分布式多用户能力的全文搜索引擎,主要应用于云计算环境中,能够达到实时搜索、稳定、可靠、快速的功能需求。

3.4 基于HDFS的数据引擎

HDFS是Hadoop分布式系统体系结构中的核心,主要实现了分布式文件系统。HDFS在处理超大文件上非常有优势,而且支持流式的访问数据,它的设计建立在“一次写入,多次读取”任务的基础上。HDFS中,一个数据集如果由数据源生成,就会被复制分发到不同的存储节点中,响应不同的数据请求。

3.4.1 实时数据存储创建及配置

传统关系型数据库不适用于海量实时数据的存储和分析,主要原因是实时数据具有数据海量、结构单一、存储和交互速度频繁等特征,如何有效实现实时数据的采集、存储和检索是实时数据的难题。实时数据具有持续产生、实时动态更新等多种特点,它需要持续的更新数据库记录,前端应用中也需要实时展示最新状态,而这种更新频率通常是秒级或者是分钟级的,而传统的、静态的GIS数据更新频率,可能会每半年或一年,或者更长的周期,才会集中大规模的更新一次数据。

3.4.2 关系数据存储创建及配置

传统关系型数据库在存储海量矢量数据时,只能部署在单个服务器上,无法承受海量数据的存储和查询请求,尤其是对于对象个数超过千万条的复杂空间数据,其性能会急剧下降。PostgreSQL是一个功能强大的开源关系型数据库,其具备矢量点线面的高效存储和查询的能力,并且可以构建分布式的数据库集群。通过将PostgreSQL集成可实现海量矢量数据的分布式存储,将传统数据库的复杂表进行数据分块分节点,同时可控制每个存储节点的数据量在千万条左右,在此基础之上利用空间索引分区技术实现快速查询,最终有效解决传统关系型数据存在的瓶颈问题。

3.4.3 瓦片数据存储创建及配置

传统关系型数据库存储海量切片数据时,存在硬盘I/O读写瓶颈,另外为了维护数据的一致性,也会牺牲很大的读写效率,从而导致切片数据的并发读取速度无法满足应用需求。MongoDB是一个基于分布式存储的NoSQL型数据库,其介于关系型数据库和非关系型数据库之间,所支持的数据结构非常松散,可以存储比较复杂的数据类型。集成MongoDB后,将其作为切片数据的存储引擎,能够实现亿级切片数据的存储,可方便的复制迁移以及秒级的并发访问,实现了切片数据的高性能存储和读取,有效地解决切片数据的高并发读取瓶颈。

3.4.4 分布文件存储创建及配置

通过基于HDFS的数据引擎,HDFS是Hadoop分布式系统体系结构中的核心,主要实现了分布式文件系统。创建分布式文件存储即是指定HDFS数据库的过程。

3.4.5 Hbase文件存储创建及配置

Hbase是一种构建在HDFS之上的分布式、面向列和提供高可靠性、高性能、可伸缩、实时读写的开源数据库系统,适用于需要实时读写、随机访问超大规模数据的场景。其基于分布式架构,即使单点出现故障,整个集群也不会受到影响,服务可用性高;采用Google的BigTable的核心设计理念,管理PB级数据,扩展能力强,当Hbase的性能不足,可以通过增加Hbase的服务器数量来提高性能,而且增加服务器对外部应用来说都是透明的,外部应用不会有任何感知,不需要修改任何东西。自动分片技术,当数据写入时根据节点存储情况自动切分数据,重新分布。Hbase具有超高效的数据读写能力,数据写入时,都会先存储在内存中,当内存达到一定数值时才会写入磁盘中。当数据还在内存时,可以进行修改、查询,直接在内存中操作,非常高效。在Hbase中,所有涉及到数据的更改操作,都是优先使用内存中的数据,减少了I/O时间,使整个系统保持高读写的性能。创建Hbase文件存储就是安装Hbase数据库的过程和指定存储路径。

3.4.6 数据转换ETL工具

数据转换是通过ETL工具实现的,ETL(Extract, Transformation, Load)是清洗、转换、加载,用户用数据源抽出所需的数据,经过数据清洗、转换,最终按照预定义好的数据仓库模型,将数据加载到数据仓库中去,使用GIS点图层地名和地名地址数据库之间的数据、实时数据与GIS要素数据之间的转换。

4 结论

为适应现代化大数据时代的挑战,简单、经济,有效的地质数据信息化管理有利于推行大数据技术标准体系化,促进地质资料信息化的进程。为推动地质大数据综合开发利用,整合多年来积累的原始地质成果资料,建立系统一体化、数据集成化、信息综合化和成果可视化的地质大数据平台,促进行业数据共享与整合,为实现地质勘查业务信息化、管理信息化、服务信息化提供理论依据[2]。

猜你喜欢
海量结构化矢量
一种傅里叶域海量数据高速谱聚类方法
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
促进知识结构化的主题式复习初探
改进的非结构化对等网络动态搜索算法
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
海量快递垃圾正在“围城”——“绿色快递”势在必行
一个图形所蕴含的“海量”巧题
基于矢量最优估计的稳健测向方法