APP下载

面对气象大数据的存储管理与快速查询的技术研究

2021-03-22温建伟张立李永利

河南科技 2021年26期
关键词:分布式

温建伟 张立 李永利

摘 要:根据气象业务应用对数据提出的时效性和多业务访问场景等需要,设计了可以同时访问结构化和非结构化数据的分布式气象大数据存储模型。在Spark系统基础上,采用MongoDB和JSON技术构建了试验模型,使用站点类、卫星和雷达遥感等数据进行数据查询试验。试验结果表明:气象大数据分布式存储结构和快速查询技术优于传统的数据库存储和访问技术,具有存储容量大、可扩展性高和访问快速等特点。

关键词:气象数据;结构化数据;非结构化数据;存储模型;分布式;数据查询

中图分类号:TP311.13;P409 文献标识码:A 文章编号:1003-5168(2021)26-0144-03

Research on Storage Management and Fast Query Technology

of Meteorological Big Data

WEN Jianwei ZHANG Li LI Yongli

(Inner Mongolia Meteorological Information Center, Hohhot Inner Mongolia 010051)

Abstract: This paper designs a distributed meteorological big data storage model that can access both structured data and unstructured data at the same time in response to the timeliness and multi-service access scenarios proposed by meteorological services. Based on the Spark system, MongoDB and JSON technology are used to build the experimental model. The meteorological station data, satellite data, and radar remote sensing data are used to test the data query. The experimental results show that the distributed storage structure and fast query technology of meteorological big data are superior to the traditional database storage and access technology, and have the characteristics of large storage capacity, scalability and access fast.

Keywords: meteorological data;structured data;unstructured data;storage model;distributed storage;data query

氣象探测技术的出现,特别是大气遥感技术的发展和自动观测技术的进步,使得气象探测资料和观测产品的种类和应用频次与日俱增,导致气象信息的获取、处理、管理和应用方式都发生了根本性变化。目前,传统的数据库存储与查询技术已无法满足海量气象数据存储和查询的需求。为此,国内外气象部门积极谋求大数据环境下气象数据管理能力的新增长,升级传统的数据存储服务技术架构,以满足气象业务发展对海量增长的气象大数据的高效存储、计算与分析应用需求[1]。

如何在现有气象业务系统计算与存储的基础上,结合海量气象数据扩展的需要,采用分布式存储与云计算技术实现与现有业务的无缝集成,并解决不同气象业务系统对数据存储访问的响应时间的问题,是本文研究的重点。

1 气象大数据分布式存储模型

1.1 气象大数据分布式存储体系结构

为了保证原有存储数据能够继续使用,并使新的数据能够按照分布式结构进行存储和访问,基于云计算的虚拟技术设计了气象大数据分布式存储体系结构,具体如图1所示[2-3]。

为了使新的数据易扩展和使用,对新生成数据也采用了分布式文件存储系统,采用Hadoop技术架构作为气象大数据的底层文件存储结构,从而为实现高效查询检索奠定基础。

1.2 分布式文件存储模型

气象大数据分布式存储系统的核心是分布式文件系统。在气象数据中,包含部分单体文件量比较大,导致操作数据的I/O量较大。另外,文件较小但数量非常多,数据访问则主要体现在定位检索文件位置,同样存在消耗时间长的问题。针对上述两种场景,根据文件访问的效率将文件访问方式划分为普通Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)文件存储访问和海量小文件高效存储访问[4-5]。本文采用HDFS方式进行分布式存储,设计了分布式分片和对象存储模型,并封装了相应的文件访问读写接口,提高了文件访问的效率。

气象数据NetCDF的访问服务过程为:①读取HDFS分布式NetCDF文件;②构造内存NetCDF数据对象;③读写内存NetCDF对象,对接传统的NetCDF访问接口。

1.3 结构化数据访问模型

气象数据中典型的结构化数据主要包括地面、高空、土壤及海洋观测等观测设备生成的气象观测数据。为了实现分布式文件的结构化访问,并不影响访问效率,本文设计了基于Spark-SQL的类SQL访问接口。

从下至上,分布式存储对象管理模块负责结构化数据库表的建立、索引设置、分区设置,存储优化开关;NewSQL访问元数据管理模块负责存储SQL相关元数据的存储和维护;NewSQL计算引擎模块负责查询条件的设置及保存、多表综合查询、分页列表结果显示、计数统计及页数统计等;结构化数据访问服务模块通过WebService/Rest服务方式、Grpc服务方式及JAR包形式等将结构化数据访问的结果封装成实体内存对象,供外部用户访问;访问场景模块进一步抽象技术细节,提供多元化接口或者界面访问方式;顶层管理控制服务模块是直接面向用户的模块,提供菜单式操作界面,完成对应的气象数据操作。

1.4 NoSQL半结构化数据组织模型

为了实现高效访问非结构化的气象数据,本文设计了基于HDFS与MongoDB技术相结合的NoSQL半结构化访问模型。本模型由5部分组成。

1.4.1 NoSQL数据库对象管理。半结构化数据对象KV模型定义与管理,支持文档数据的KV信息定义、分区分片设置、存储优化开关设置;支持分布式数据对象的水平动态扩展;通过文档数据库的KEY信息设置,可支持现有的网格化数据无缝映射到大数据平台;支持基于网格属性的信息检索和浏览。

1.4.2 半结构化数据导入导出。支持结构化数据的去结构化操作,进而实现半结构化数据的导入;支持大数据平台版结构化数据的批量导出作业设置;支持网格化数据导入NoSQL数据库的匹配操作。

1.4.3 半结构化数据综合查询。该部分包括查询条件的设置及保存、分页内容描述。进入每一项具体条目,其内容图形化显示,如计数统计、页数统计等。

1.4.4 半结构化数据访问服务封装。实现半结构化数据访问的外部访问服务封装,通过WebService方式、OSGI bundle组件方式、JAR包或其他形式,将半结构化数据访问的结果封装成JSON对象或图形对象,供外部用户访问。通过半结构化数据的访问检索,可通过加入业务化需求,进而支持网格化数据访问的服务封装。

1.4.5 NoSQL数据库维护与监控。图形化方式对NoSQL数据库进行实时维护与监控,包括数据库优化开关设置、服务运行时间、并发连接数、会话、主机资源使用情况及内存堆的使用情况,分布式集群的协调控制参数设置(ZOOKEEPER设置)。

2 气象数据查询技术

2.1 NewSQL查询技术

NewSQL主要针对结构化数据存储进行高效查询,提供HDFS文件访问、ThriftServer SQL访问、Spark Context访问。

2.2 NoSQL查询技术

NoSQL主要针对半结构化数据的查询,具体分为可扩展的KV列式数据查询和JSON类型半结构化数据查询。HBASE采用KV列式存储,MongoDB采用JSON格式存储;Storm在不同粒度上进行高速导入导出及数据处理。

3 试验与结果分析

3.1 试验环境

为了验证气象大数据存储技术的有效性,以内蒙古气象局的站点数据、雷达和卫星遥感等数据进行试验。试验环境如表1所示。

3.2 站点类数据查询技术试验

本文选用站点类气象常规观测资料高效查询作为NewSQL实现的具体案例。试验采用ThriftServer和SparkContext两种方式对观测站信息进行查询。

使用15年的观测站资料作为试验数据集,包括大于1亿条的记录。使用气象大数据存储模型进行查询性能测试,分别使用NewSQL和Oracle两种技术进行查询性能对比。

对海量气象数据进行分区处理后,针对某一分区,在命中索引的情况下,Oracle的查询效率优于分布式Spark计算,因为此时已经定位到具体分区,无须分布式并行计算。此时无法体现分布式并行计算的优势,因此传统的成熟数据库产品更具优势。但是,从全表扫描查询统计结果可以看出,它涉及扫描全表的过程。应用分布式计算查询模型后,由于增大了数据计算的吞吐速率,查询的并发度得到极大提高,分布式计算模型的查询响应速度则明显优于传统的集中式存储模式。

3.3 雷达数据查询试验

以雷达数据作为典型数据,收集到大于10亿条的记录,使用MongoDB进行存储,测试JSON半结构数据的查询效率。

经查询测试,在大于10亿条记录的集合中查询,普通查询性能优异。

3.4 卫星遥感影像数据查询试验

使用MongoDB存储卫星遥感数据开展查询试验。为了提高查询效率,首先将高分辨率遥感影像进行分块后,按照拓扑关系存入MongoDB;其次建立空间索引;最后进行范围和邻域查询。以100×100分块大小将230 GB的30 m影像进行分块存储后,开展查询试验。

试验返回记录1 040条,通过空间范围查询,查询速度表现优异,比传统文件读取方式要快很多。

3.5 查询效率影响分析

通过上面的查询试验,可以得出影响气象大数据分布式存储数据查询效率的主要因素:①半结构化数据检索和查询过程中数据类型复杂、数据异构,如在决策分析过程中需要牵扯多个气象影响因素对决策结果进行判别;②海量小文件的查询检索定位费时、低效,如批量传输的以小文件集合形式存在的观测资料。

4 结语

气象大数据组织模型采用HDFS分布式架构存储数据,采用Spark、HBase、MongoDB进行数据检索和查询。在数据组织模型方面对气象数据进行重构梳理,指定到特定模型结构,因此能够實现数据空间的扩容、数据形态结构的扩展。通过采用不同层级的参数优化和提供高效查询接口,实现海量气象数据的动态平衡。实践中也发现,系统在生成中还需要开展性能调优的工作,是下一步工作的重点内容。

参考文献:

[1]曾乐,陈东辉,肖卫青,等.基于Hadoop的气象数据存储检索应用研究[J].信息系统工程,2014(8):138-140.

[2]沈文海.气象业务信息系统未来基础架构探讨:“云计算”和“大数据”在气象信息化中的作用[J].气象科技进展,2015(3):64-66.

[3]杨明,陈晔峰,陈晴,等.气象数据云数据存储技术及应用[J].气象科技,2017(6):1017-1021.

[4]李绍俊,杨海军,黄耀欢,等.基于NoSQL数据库的空间大数据分布式存储策略[J].武汉大学学报(信息科学版),2017(2):163-169.

[5]徐拥军,何文春,刘媛媛,等.气象大数据存储体系设计与实现[J].电子测量技术,2020(22):19-25.

1148501705281

猜你喜欢

分布式
质子交换膜燃料电池/直接接触式膜蒸馏分布式联产系统性能
居民分布式储能系统对电网削峰填谷效果分析
分布式数据库崭露头角 亟须构建产业生态环境
基于Paxos的分布式一致性算法的实现与优化
发展分布式能源对电网公司经营情况的影响分析
基于分布式数据库Cedar的高效工单管理系统设计与实现
分布式光伏新政加快落地
分布式光伏新政加快落地