赵玉娟,姜罕盛,李宗飞,王 琪,陈凯华,王 艺
(天津市气象信息中心 天津 300074)
为推动气象数据资源整合共享、促进气象业务集约化发展,中国气象局研发了“数算一体”的气象大数据云平台(简称“天擎”)[1-2],并在国、省两级部署应用。智能网格预报数据时空分辨率高、要素多[3-4],是开展气象服务的重要基础数据之一,天津市气象局在该数据的存储服务方面仍存在访问控制不足、服务稳定性不高等问题。基于天擎实现该数据的存储共享是提升其共享服务能力的有效途径,目前智能网格预报数据研究多集中在可视化、监控等方面[5-6]。鉴于天擎的共享研究未见报道。立足于上述背景,本文设计实现了基于天擎的存储共享方案,文中对相关设计进行了介绍。
天擎由交换及质控、产品加工、存储与服务等系统构成,承担数据接入、产品加工及存储服务,底层存储包括结构化数据库、文件索引库、文件NAS等多种类型。
本文拟建立的基于天擎的智能网格预报数据存储共享服务架构如图1所示。存储层基于天擎文件索引库和文件NAS构建,实现智能网格预报数据文件及接口访问相关元数据存储,相关数据通过接口写入存储层;数据管理层按业务需求进行资料编码、数据存储结构和存储策略管理,基于天擎Portal、公共元数据管理系统和存储管理系统实现;接口层为应用提供数据读、写接口并实现数据访问的用户认证、访问控制、行为记录等功能,基于天擎的接口服务系统(MUSIC)构建定制接口实现;应用层为读写智能网格预报数据的各类系统和用户。
图1 基于天擎的智能网格预报数据共享服务架构 Fig.1 Intelligent grid forecast data sharing service architecture based on Sky Engine
NectCDF格式是一种面向数组型数据,适于网络共享的数据描述和编码标准,每个NectCDF文件(简称NC文件)由维、变量和属性、数据构成[7-8],支持多维数据存储。天津智能网格预报包括各种天气现象的定性预报及降水、气温等13种要素的定量预报,每次发布未来10 d预报,0~3 d、4~10 d预报时空分辨率分别为1 h、1 km和3 h、5 km,天津地区单要素未来10 d格点预报值近235万个。各要素预报均具备时间、经度、纬度属性,未来N个时间单要素预报可抽象为X×Y×Z的三维数组。NC文件可支持此类数据存储,且对于NC文件,通过设计文件元数据,可基于MUSIC构建数据级访问接口。因此,本文采用NC文件将智能网格预报数据存入天擎存储,针对其特点,将每次发布的预报按要素、时空分辨率存储为不同NC文件,各类文件按制作单位、要素、发布时间等属性分目录存储。
按照全国精细化预报业务要求,需存储3~5年的智能网格预报数据,以便回算检验。天津天擎基于X86服务器,按照气象应用特征,构建了规模近3 PB的分布式数据存储环境,包括虚谷分布式关系型数据库、分布式分析型数据库Gbase8a和分布式NAS。智能网格预报数据接口服务相关文件元数据属于结构化数据,采用虚谷数据库存储。分布式NAS适合文件级数据存储,响应速度快,采用存储NC格式智 能网格预报数据文件可满足存储5年以上产品的 需求。
MUSIC是天擎为应用访问数据提供的接口服务系统,利用集群服务、通过主备网关实现用户认证、流量控制、负载均衡等功能,可在接口调用方法、参数等方面采用统一标准,支持设置IP白名单,对接口访问行为有完备记录,提供多种调用方式,可按需配置新接口。本文按照MUSIC规范,结合天津智能网格预报数据特点及访问需求,设计了接口访问元数据,构建了文件级、数据级两类11种读接口和4种文件级写接口。接口访问元数据设计如下。
①文件元数据:设计了时间、预报要素、预报时效、存储路径等与数据定位、下载相关的信息,并定义了文件格式、预报区域等信息为应用提供支撑,智能网格预报数据文件元数据关键字段设计如表1所示,字段命名参照QX/T 133—2011气象要素分类与编码和云平台规范。
表1 智能网格预报数据文件元数据关键字段设计 Tab.1 Design of metadata key fields of intelligent grid forecast data file
②存储路径元数据:支撑写接口按存储规范创建目录并将文件存储到对应目录,包括根路径和子目录两部分,分别对应存储路径固定和动态信息,子目录基于文件元数据字段组合定义,本文设计的智能网格预报数据的存储路径元数据为:
③格点检索元数据:点、线、面类型数据级读接口功能支撑数据,包括基本属性和要素属性。基本属性定义数据的资料代码及要素、经纬度、时效字段;要素属性定义解析NC文件所需的要素代码、要素名称、时次、空间分辨率、层次转换因子等信息。针对天津智能网格预报数据同类要素在不同预报时效存在多种时空分辨率的特点,采取一种预报要素定义多条文件元数据和格点检索元数据的方式实现数据正确解析。
接口方面,设计了支持按时间点、时间段获取一个、多个要素预报文件的4类接口;设计了支持按时间、要素、经纬度、预报时效、站号为条件的4类数据级访问接口,可满足业务中获取某个位置特定时间、 某个区域特定时间、某个站点特定时间段某要素预报等需求;针对增、删、改数据需求设计了4类写接口。 接口具有高内聚、低耦合特性[9],智能网格预报数据由预报员主观制作,制作频率低,文件小,采用接口写入方式可满足业务时效要求,且对应用端有效屏蔽了底层存储结构,故采用接口方式写入天擎存储。数据写入功能模块利用Spring Boot框架开发,通过SDK方式调用本文构建写入接口实现,发布成REST接口为应用端服务。
本文设计方案于2021年在天津市气象局投入应用,预报一体化平台通过接口方式将实时预报数据写入天津天擎存储,市、区两级的气象业务系统和用户,可按需调用读接口获取预报文件及格点场数据。智能网格预报数据服务方式更丰富、服务稳定性和效率更高,为市区两级开展气象服务提供了更高效、有力的支撑,也为其他省市级气象部门基于天擎优化本地特色数据存储和共享服务提供了借鉴和参考。下一步将围绕本省气象数据管理和服务需求继续开展其他数据融入天擎的研究。