徐晓庆,张 智,卓凤艳,王添男
(1.中国气象局旱区特色农业气象灾害监测预警与风险管理重点实验室,宁夏 银川 750002;2.宁夏气象防灾减灾重点实验室,宁夏 银川 750002)
气象资料是天气气候预测和规律研究的重要依据。随着我国气象探测设备现代化程度的不断提高,气象探测资料的种类和数量快速增长,信息化气象资料的存储及归档工作也越来越受到各级气象部门的重视。沈文海等[1]设计了国家级气象资料存储检索系统,实现了结构化和非结构化气象资料的收集、存储、检索和备份等多项功能;王恕等[2]、闫荞荞等[3]设计了省级气象资料归档管理检索系统,以磁盘阵列、移动硬盘和DVD光盘为主要存储介质,实现了结构化和非结构化气象资料的自动存储与归档;滕水昌等[4]设计了市级地面资料数据管理系统,实现了地面结构化气象资料的存储与管理;虎文珺等[5]利用VB编程实现了天气雷达观测数据的自动归档,免除了人工整理、压缩、存储各类雷达观测资料的繁重低效工作;张恩红等[6]建立了气象数据光盘归档系统,以蓝光光盘为存储介质,实现了省级气象资料的不定时归档。
受存储条件的限制,早期宁夏实时气象探测资料主要存储在各类服务器中,其中非结构化气象资料只存储3—6个月。宁夏气象档案馆仅能归档存储各类月、年报表等结构化数据文件,无法考虑实时报文等结构化、雷达等非结构化气象资料的归档存储问题。2020年宁夏气象信息中心建成1PB容量的存储服务器(简称NAS),为宁夏非结构化气象资料的归档提供了存储条件。
本文在分析宁夏气象资料归档流程的基础上,设计开发了“宁夏气象资料自动归档管理系统”(简称“归档系统”),能够实现气象资料自动归档、网页查询下载、归档率统计等功能,提高了气象资料业务的工作效率。
按照《气象资料分类与编码》[7]中气象资料分类规定,归档系统将宁夏行政区域内地面、高空、辐射、农气、大气成分、雷达等气象观测数据列入自动归档范围;经征询省级天气气候业务单位需求,选定天气预报核心业务系统所需基础数值模式产品、天气图等资料也列入自动归档范围,共计7个大类、22种(表1)。
表1 自动归档气象资料种类表Tab.1 Automatic archiving of meteorological data type table
归档系统以数据收发业务监控系统(简称CTS)和气象信息综合分析处理系统(简称MICAPS)为数据源,以虚拟化服务器为硬件支撑,采用B /S体系架构,Web网站采用Windows+IIS+ASP.NET架构,资料归档程序采用Linux+Shell的结构,数据库采用Linux+MySQL数据库语言,服务器端包括Web 服务器、归档服务器和数据库服务器,客户端基于Web可视化技术采用浏览器方式实现归档气象资料查询下载和资料归档率统计结果展示[8,9]。
归档系统总体架构在数据资源标准化体系的规范下和基础设施的支持下设计,采用3层体系架构:服务层、处理层和数据层[10,11](图1)。其中服务层为标准的Web 客户端,负责与用户交互,并通过Bootstrap表格方式实现各类归档气象资料的查询展示;处理层通过定时任务、节目表实现气象资料的自动归档和日志信息入本地数据库;数据层是数据的来源,包括CTS和MICAPS。
图1 总体架构图Fig.1 Overall structure picture
归档系统功能设计主要包括处理层的气象资料自动归档和服务层的归档气象资料查询2大模块,其中气象资料自动归档模块包括实时气象资料归档、预报业务资料归档、归档资料日志入库、归档资料日志信息统计等4个子模块;归档气象资料查询模块包括归档气象资料查询下载、资料归档率统计等2个子模块。
2.2.1 自动归档模块设计 自动归档策略(图2):实时气象资料的归档程序根据配置信息每日定时从CTS下载前1 d的气象资料存入NAS盘阵;预报业务资料的归档程序根据配置信息每日定时从MICAPS数据库下载前1 d的预报资料存入NAS盘阵;归档资料日志入库程序遍历NAS盘阵的归档目录,并将归档信息存入归档文件日志表。归档资料日志信息统计程序每日定时生成当日节目表,根据归档文件日志表统计前1 d归档资料入库信息,并存入归档文件信息统计表。具体功能设计如下:
图2 归档策略Fig.2 Archive policy
(1)实时气象资料归档。归档系统从CTS系统获取各类实时气象资料。CTS系统具备资料推送功能,但推送失败并达到一定程度会影响业务运行。为减少对CTS系统的影响,归档系统采用Shell脚本编写自动归档程序,定时从CTS系统通过FTP方式采集气象资料。自动归档程序部署在Linux系统中,该计算机挂载气象资料归档存储的NAS盘阵,通过基于Linux计划任务(crontab)实现数据的自动下载。
(2)预报业务资料归档。用于MICAPS[12]产品数据文件的冷备份业务,也可用于近实时预报业务资料的备份业务。预报业务资料归档程序部署在Windows计算机中。该计算机挂载气象资料归档存储的NAS盘阵,采用每日定时备份方式从MICAPS分布式数据库系统中获取欧洲中心模式产品(ECMWF)、地面天气图和高空天气图数据存储至NAS盘阵。
(3)归档资料日志入库。用于实现从归档气象资料存储NAS盘阵中列出归档资料,生成归档文件日志并写入归档文件日志表。归档气象资料日志入库程序遍历归档气象资料存储NAS盘阵,列出已归档文件,并根据归档资料配置信息表获取归档文件日志信息,写入归档文件日志表。归档气象资料日志入库程序采用Shell脚本编写,部署在Linux系统中。该计算机挂载气象资料归档存储的NAS盘阵,通过计划任务(crontab)实现每日定时归档资料日志入库。
(4)归档资料日志信息统计。用于实现生成每日应归档气象资料数量,统计每日实际归档气象资料数量。归档日志信息统计程序根据传输监控系统监控节目表或本地配置信息生成每日应归档气象资料节目表,并从归档文件日志表中统计实际归档气象资料数量,写入归档文件信息统计表。
2.2.2 查询下载模块设计 目前宁夏气象部门结构化数据在大数据云平台入库后可长时间存储并提供数据服务,而非结构化数据在大数据云平台一般存储3~6个月。因此归档系统的归档气象资料查询下载只针对非结构化数据,主要包括模式产品(ECMWF、WRF)、雷达(全仰角、逐仰角、PUP产品)和天气图(地面、高空)等3大类。模式预报和天气图资料按时次查询,雷达资料按时次、站号查询,查询后以表格形式显示,并可从远程服务器实现归档气象资料下载。
资料查询的设计:选择查询条件后,利用ajax方法将查询条件传入后台,从MySQL数据库归档文件日志表中查询资料的文件名、路径、文件大小、观测时间等信息,通过json串将查询的数据传入网页,并通过Bootstrap表格的形式展示。
资料下载的设计:根据从MySQL数据库归档文件日志表中查询资料的文件名、路径,通过ftp方式从远程服务器上逐个下载文件,判断远程服务器上是否存在下载的文件,若存在则将文件依次下载至程序所在共享目录share下,若不存在则继续循环判断下个文件是否存在。判断下载的资料是否为ECMWF资料,若是则统计下载的文件大小sum值,判断sum值是否大于2G,若是对下载的文件进行打包压缩;若下载的资料非ECMWF资料,则直接打包压缩。将下载的文件名和路径组成json串传回至前台,前台根据文件名和路径从共享目录下载资料。下载归档资料流程图见图3。
图3 下载归档资料流程图Fig.3 Download archived data flow chart
资料归档率统计。根据实际归档业务需求,实现7大类、22种归档气象资料按不同时间段进行归档率统计。查询条件中的资料类型,资料种类,市、县、站信息均来自MySQL数据库归档文件信息统计表,根据该数据库的表信息的变动可以自动变动查询条件,并以表格的形式显示归档率统计情况。
MySQL作为一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言,支持多个开发语言,特别是开放源码,被许多开发选择[13,14]。本归档系统亦选用MySQL作为数据库管理软件。
归档系统数据库数据表包括:归档文件配置信息表、归档文件日志表、归档文件信息统计表、站号与行政编码信息对照表。其中归档文件配置信息表(ARCHIVE_TYPE_INFO)用于存储归档系统配置信息,包括资料类型、是否下载、下载路径、归档路径等;归档文件日志表(ARCHIVE_FILE_LOG_YYYY)用于存储归档文件信息,包括文件名、文件大小、文件路径等;归档文件信息统计表(ARCHIVE_FILE_STAT)用于存储归档文件统计信息,包括资料类型、应归档文件/站点数、实际归档文件/站点数等;站号与行政编码信息对照表(ARCHIVE_FILE_PROGRAM)用于存储归档系统站号、行政编码对应关系,包括资料类型、应归档文件/站点数、实际归档文件/站点数等。
Shell是一个命令行解释器,采用C语言编写,遵循一定的语法将输入命令加以解释并传给系统,是用户使用Linux的桥梁。Linux服务器部署Shell脚本,结合crontab可实现脚本的定时高效执行,提高了运维工作效率[15]。
归档系统实时气象资料归档程序和归档资料日志入库程序均采用Shell脚本编写,通过crontab定时执行脚本,实现资料定时下载和归档资料写入数据库。
NAS全称为Network Attached Storage(网络附属存储),是通过网络访问一台存储服务器,其最大的特点是存储空间共享,并可根据存储容量需求进行扩展。
2020年宁夏气象信息中心建成1PB容量的NAS存储,目前NAS资料存储情况(表2),还有约910 TB空间可使用。归档气象资料存储空间需求大,不仅有结构化资料,还有非结构化资料,如模式预报1 a存储量约10 TB。基于NAS的大容量和存储空间共享的优点,归档系统选用NAS作为存储设备,并可随时扩展归档存储空间。
表2 NAS资料存储情况表Tab.2 NAS data storage table
Bootstrap是基于HTML、CSS、JavaScript 开发的前端开发框架,提供了窗体、字体排印、导航、按钮等其它组件,使得 Web 开发更加快捷[16]。
基于Bootstrap功能,归档系统采用基于Bootstrap的B/S开发技术,通过浏览器实现基于应用层 http 协议提供的 Web 服务,用户通过浏览器即可查看Bootstrap表格形式的归档气象资料。
归档系统于2022年1月开始进行业务试运行,各模块均运行正常。
选取2022年2—4月,统计自动归档程序归档气象资料的运行情况(表3)。气象资料自动归档约800万个数据文件、2.9 TB存储量,其中雷达资料数量最多约580万个,模式预报资料存储量最大约2.8 TB。只有地面资料和辐射资料的归档率未达到100%,其中地面资料是因逐小时资料中有个别站上传报文缺报导致,辐射资料是因1个站软件故障一直未上传报文导致。从归档率整体情况看,自动归档模块能够及时、完整地自动归档气象资料。
以前气象资料一般利用FTP从服务器共享目录内获取,极大地限制了气象资料的共享性。归档系统基于C#、jQuery、Bootstrap和json等技术[17-19]开发归档气象资料查询下载页面,通过浏览器即可在线查询下载归档气象资料。
根据界面选定的查询条件,可将气象资料查询、资料归档率统计以Bootstrap表格格式显示,使用表格右上角的搜索框可以快速查找用户需要的资料。如需下载,可自动将查询到的归档气象资料下载到本地谷歌浏览器的默认路径。
根据宁夏现有气象探测资料的种类和天气预报核心业务系统所需基础预报资料,制定符合气象行业标准和省级气象资料存储管理规定的自动归档策略,设计开发“宁夏气象资料自动归档管理系统”,实现了宁夏气象资料自动归档、Web查询下载和自动归档资料统计等功能,不仅为天气预报业务提供基础预报资料,还可为各级业务管理部门了解掌握属地气象探测资料的归档情况提供查询工具。同时系统具有可扩展性和可维护性,能适应今后新增气象资料的自动归档业务需求。