2. 天津海洋中心气象台, 天津 300074
2. Tianjin Marine Meteorological Center, Tianjin 300074, China
随着气象现代化建设不断推进, 天津气象业务信息化水平显著提高, 市区两级建设了多个业务系统, 涉及观测、天气预报、环境预报、海洋预报、服务等多个领域, 对于提升监测能力、预报服务效果发挥了重要作用. 但由于缺乏顶层设计和整体规划, 业务流程冗余、数据反复搬家、数据不一致等问题突出. 此外, 随着气象业务快速发展, 气象数据增长迅猛, 天津省级各类气象数据日增量接近TB级, 业务和科研希望存储更长时间序列数据的需求日益迫切. 构建统一的数据环境, 做好海量气象数据的管理和共享已成为天津气象发展亟需解决的关键问题.
气象数据涉及地面、高空、雷达、卫星、数值模式、服务产品等多种类型, 来源广、格式复杂、数据量大, 用户需求多样, 气象数据的存储管理和共享一直是困扰业务和管理人员的难题, 气象专家不断在探索气象数据存储管理及共享的技术和方法.
20世纪初期, 国家和省级许多专家利用Web技术、数据库提升气象数据存储和共享能力, 并取得了一定进展, 但都是独立开发、分散建设[1-3]. 为解决国省数据环境不一致, 应用难推广的问题, 2009年国家气象信息中心启动了全国综合气象信息共享系统建设(China Integrated Meteorological Information Sharing System, CIMISS), CIMISS系统集数据收集与分发、质量控制与产品生成、存储管理、共享服务及业务监控于一体, 采用统一的技术架构、数据处理标准和流程、数据存储规格和接口服务规范, 在国省级两级部署[4], 为气象部门用户提供了统一的数据环境. 此后, 各级气象部门专家开展了许多基于CIMISS的研究工作. 何林等[5]依托CIMISS和本地数据库构建了面向业务一线人员的陕西省气象数据共享系统, 实现了CIMISS提供的地面、高空、农气等14大类数据及陕西自有特色数据的对内共享服务. 范保松[6]针对本省观测数据服务质量低下、存在“信息孤岛”的问题, 设计并实现了河南省气象观测数据综合服务平台. 李新庆等[7]基于CIMISS提出了宁夏综合气象信息共享与管理系统设计与实现的思路, 有效解决了省际气象数据汇交、标准化存储等问题. 郭庆燕等[8]基于CIMISS构建了具备实时历史数据查询、数据统计及极端事件监控功能的服务系统. 总体来看, 以CIMISS为基础, 面向各地实际需求建设共享系统是近年来采用的主要方式.
CIMISS业务化以来, 在促进省级数据集约、共享方面发挥了重要作用, 但随着气象数据种类和数据量的持续增长, 单纯依靠传统集中式存储架构已无法充分满足需求[9]. 与此同时, 大数据、云计算技术蓬勃发展, 国家和省级气象专家纷纷开始探索新技术对气象数据处理效率、服务能力的提升方案, 取得了良好效果. 宋智等[10]采用分布式文件系统和分布式数据库对CIMISS系统进行升级改造, 有效改善了四川省级气象数据存储和并发响应能力. 肖卫青等[11]提出了基于Hadoop的地面观测资料统计分析效率提升方案. 徐拥军等[12]利用分布式关系型数据库开展了海量气象站点数据的存储研究, 发现分布式数据库在数据插入和检索方面都具有较好的性能, 同时具有较好的可靠性、灵活性和扩展性. 王建荣等[13]提出了分布式数值预报产品处理与存储系统的解决方案, 为长时间序列数值预报产品的存储和检索提供了新思路.
本文针对天津气象数据特点及管理共享需求, 结合技术发展趋势, 基于分布式存储和WebGIS技术, 构建了集采集、加工处理、可视化展示、统计分析、数据服务于一体的气象信息综合管理共享系统, 实现了天津气象数据的集约管理和一站式服务, 文中对系统的设计思路、数据流程、关键技术、主要功能及应用情况进行了介绍.
1 系统设计 1.1 总体架构天津气象信息综合管理共享系统致力于实现天津气象业务涉及的各类气象数据的统一管理, 为市区两级气象业务提供更稳定高效的数据支撑, 为各类用户提供一站式信息共享和服务.
为实现各类信息的统一管理、高效访问, 在遵循CIMISS数据标准和规范下, 参考气象资料和气象要素分类编码标准, 对天津气象数据资源进行梳理, 制定了天津气象局数据存储规范, 在CIMISS基础上扩建分布式数据库和文件库, 构建了天津气象大数据环境.
系统采用分层架构进行布局, 逻辑上分5个层次, 针对5类用户进行设计开发, 总体架构如图1所示.
基础支撑层负责为平台提供计算、存储、网络资源及相关的软件支撑, 依托天津气象局基础设施资源池实现. 数据存储层负责气象观测数据、气象产品、业务管理信息、行业共享数据、互联网数据及GIS数据、运行日志等信息的存储, 依托CIMISS和扩展的分布式存储环境实现; 数据管理层负责实现数据的收集分发、解码入库、质量控制, 按业务需求进行数据同步、加工、清理及为上层应用提供访问接口, 依托CIMISS和自建数据处理系统实现. 展现交互层为天津气象数据的综合展示和共享门户, 负责与用户进行交互, 提供数据可视化展示及检索、统计等功能, 通过WebGIS、图形、表格、数据下载、接口等形式实现数据的共享服务.
5类用户是业务人员、科研人员、管理人员、行业共享用户和开发人员. 业务用户可通过平台的展示、统计功能快速实现对各类气象数据的分析; 管理用户可通过平台发布管理制度、业务软件、质量通报等信息, 在全省范围实现信息共享, 也可通过平台展示的数据了解各业务系统运行状态; 科研用户可利用平台的检索下载功能获取研究所需数据; 对行业共享用户, 能按照管理需求, 为其提供定制数据的浏览; 开发人员可通过平台了解数据接口使用方法, 更快完成应用对接.
1.2 数据流程天津气象信息综合管理共享系统的核心目标是实现各种资料的统一收集、加工、存储及共享, 功能上主要包括数据收发、数据加工、数据存储管理、信息共享门户4部分, 数据流程如图2所示.
(1)数据收发系统: 按照业务需求完成通信系统、业务平台、行业共享、互联网数据的收集或主动采集, 分发给各业务系统和数据加工系统.
(2)数据加工系统: 按照应用需求对数据进行格式转换、质量控制、加工、统计等处理, 提交给数据存储管理系统进行存储.
(3)数据存储管理系统: 根据数据特点存储至CIMISS存储环境和分布式存储环境; 定期对数据进行备份与清理; 为加工系统和各类应用系统(包括共享门户)提供数据的调取服务.
(4)信息共享门户: 响应用户操作, 按照用户权限, 为用户提供数据的综合展示、查询、统计及下载. 调用数据存储管理系统提取数据, 对于需要加工的, 调用数据加工处理系统对数据进行加工, 将加工结果反馈给用户.
1.3 关键技术 1.3.1 气象大数据存储管理技术在CIMISS基础上, 根据本市气象数据特点和应用需求, 运用Share-Nothing架构[14]的分布式NAS、分布式数据库技术扩建分布式存储环境, 提高数据访问性能. 对于结构化数据, 采用列式数据库Gbase8a构建存储集群. 鉴于Gbase8a目前不支持主键约束, 实时数据首先接入事务型数据库保障唯一性, 再通过专用工具同步到Gbase8a. 对于半结构化数据, 采用HBase数据库构建存储集群, 对于文件数据, 采用分布式NAS集群进行存储. 按照应用需求定期对各类数据进行清理, 清理策略利用数据库存储保障灵活性, 数据清理任务基于Quarz[15]调度. 基于Quarz的任务调度关键代码如下:
Scheduler scheduler=StdSchedulerFactory.getDefaultScheduler();
Scheduler.start();
JobDetail job=JobBuilder.newJob(CleanDataJob.class).withIdentify(“job”,”group”).build();
……
Scheduler.schedulerJob(job,trigger);
1.3.2 数据接口技术通过建立数据访问接口, 可降低数据环境和业务系统间的耦合度, 保证数据使用规范性和可扩展性.
对于天津气象省级数据环境中的数据, 封装了多个接口, 供共享门户和其他业务系统调用, 同时提供接口的在线服务, 支持用户在线查看接口使用说明和测试, 为快速实现应用对接提供支撑. CIMISS系统的气象数据统一服务接口(Meteorological Unified Service Interface Community, MUSIC), 为用户提供了多种形式的数据访问接口和应用编程接口, 同时支持新增资料接口的配置发布[16]. 对于天津特色结构化气象数据的通用访问, 基于MUSIC实现数据接口配置与发布. 对于HBase及分布式NAS中存储的数据, 基于Swagger框架[17]实现接口文档自动生成和在线测试.
当应用系统需要获取要素级数据时, 将检索条件(如资料代码、接口ID、时间、经纬度、要素等)提交给接口, 接口从存储环境提取数据返回给应用系统, 返回数据提供JSON、CSV、数组等多种形式. 当应用系统需要获取文件时, 将资料类型、时间、要素等信息提交给接口, 接口将文件返回给应用系统. 以下为调用接口获取自动站资料的关键代码:
//创建对象, 设置调用接口地址及用户信息
Getdata_by_Cimiss obj_cimiss=new Getdata_by_Cimiss(cimiss_wsdl_conf,client,username,pwd);
//设置资料时间及返回格式
obj_cimiss.otime=otime;
obj_cimiss.dataFormat="json";
//设置接口
obj_cimiss.interfaceId="getSurfEleInRegionByTime";
//设置资料代码
obj_cimiss.datacode="SURF_CHN_MUL_HOR";
//设置地区代码,
obj_cimiss.adminCodes='120000';
//设置查询要素
obj_cimiss.elements="Station_Id_C,Station_Name,PRS,TEM,RHU,PRE_1h";
//设置排序条件
obj_cimiss.orderby="Station_Id_C:ASC";
//调用接口获取数据
data_ybz=obj_cimiss.getdata_by_cimiss();
基于MUSIC配置特色资料接口的主要步骤:
(1)定义元数据信息, 一是对于要按站点查询的数据, 按照CIMISS规范在省级自建关系型数据库中建立台站元数据表; 二是连接到本省CIMISS支撑库, 增加新增数据字段定义.
(2)定义数据库, 包括数据ID、数据库类型、数据库连接参数等.
(3)定义数据实体及数据表, 即配置数据所在数据表、关联数据库、数据字段及是否有台站信息表等.
(4)基于MUSIC系统的通用接口, 筛选适合新增数据的查询接口发布.
1.3.3 Web平台优化技术利用多种技术手段, 提高显示性能, 改善用户体验, 具体包括: 应用并行计算技术提高WebGIS[18]显示速度; 对于服务器端返回数据使用压缩技术, 减少传输时间; 对于返回数据量较大的统计页面, 采用分页技术; 对于自定义绘图功能, 采用基于流的实时绘图技术代替传统的生成图片文件的方式. 此外, 对于系统栏目采用配置方式进行管理, 提高其灵活性.
2 主要功能设计 2.1 数据存储架构设计CIMISS系统采用的Share Disk架构受制于磁盘IO瓶颈, 性能难有大幅提升, 在高并发用户数据请求时, 查询时效变差. 分布式存储将负载分担到多个节点, 性能和扩展性更好[19].
针对本省需求及CIMISS在数据访问方面的不足, 引进业界先进存储产品扩建分布式存储环境. 针对结构化数据的长时间序列历史数据存储检索场景, 采用列式数据库搭建存储集群; 针对智能网格预报、数值模式等半结构化数据, 采用HBase数据库; 针对文件级数据, 采用分布式NAS系统. 升级改造后的天津气象大数据存储环境架构如图3所示.
分布式NAS集群由7个专用服务器和内部高性能交换机构成, Gbase8a集群由3台服务器构成, HBase集群由3台服务器构成, 均可根据需求横向扩展.
分布式列式数据库较传统的行存储数据库, 具备更高的压缩比, 并行性高, 仅检索和返回用户所需数据, 因此, 对长时间序列数据查询可提供更好的性能.
对于非结构化数据, CIMISS系统采用的是文件存储联合在关系数据库中建立相应索引和元数据描述信息的方式. 其中的数值天气预报、智能网格数据具备经纬度、要素、高度、时间等属性, 按时间、要素、经纬度范围等进行提取是业务中常用的场景, 针对此类数据, 搭建HBase数据库集群保障性能并满足精细化查询的需要.
对于图片、视频、卫星、雷达等应用场景主要是文件整体访问的非结构化数据, 引入分布式NAS对访问性能进行改善. 相对传统的磁盘阵列, 分布式NAS支持NFS、SMB、FTP等多种协议, 访问方式更加灵活, 各业务系统利用以太网即可访问, 使用更加便捷.
2.2 数据集约存储范围和服务接口扩展CIMISS实现了全国通用数据和产品的集约管理, 但是未将各省特色气象数据及业务所需的行业共享、互联网数据纳入统一管理. 为了解决本省特色数据存储分散的问题, 促进数据集约, 依托新建的分布式存储环境对本省特色观测、质控、预报产品、行业共享数据、业务所需互联网数据等资料进行集中存储管理.
各业务平台制作的预报服务产品、加工的数据文件、图片等非结构化数据存入分布式NAS集群, 陆地、海洋、环境等智能网格预报产品存储至HBase集群, 本地特色观测数据、非常规观测资料、本地特色预报产品、行业共享数据、气象灾害资料等结构化数据进行要素级存储.
为方便用户获取集约存储的本地特色数据, 对于新增的数据和产品, 封装并发布数据接口. 依托CIMISS的MUSIC系统新增站点类接口395个, 基于Swagger发布格点数据访问接口32个、文件访问接口218个, 新增接口详见表1.
2.3 信息共享门户信息共享门户包括首页、实况监测、数值模式、智能预报、气象服务、数据服务、视频数据、管理信息等10大模块, 实现了天津气象业务所需观测数据和预报产品的综合显示, 同时可满足数据服务、管理信息共享、系统管理、技术交流的需求.
(1)首页: 由最新实况、栏目导航、常用栏目快捷通道、通知公告、全站搜索等功能组成. 最新实况基于GIS将当前最新的自动站、雷达、预警信息及降水、温度统计数据集成在一张图中, 并提供自动刷新, 为用户快速了解天气信息及服务情况提供了便捷途径, 通过栏目导航、常用栏目快捷通道、全站搜索功能, 用户可快速进入二级功能页面, 获取更详细的数据.
(2)实况监测: 包括自动站、雷达、云图、风廓线、城市边界层、大气环境、重要天气、站网信息等13个子模块, 显示内容涵盖了天津气象局的地面、高空、海洋的所有观测项目及天津气象业务所需的海河流域、行业共享、互联网观测数据, 提供GIS、色斑图、时序图、表格等显示形式, 用户可按站号、站名、站类、时间、区域、阈值进行数据筛选, 图片、表格数据支持下载, 对于业务最常用的自动站数据, 提供GIS综合分析、单要素统计、单站多要素叠加分析、24小时变化趋势分析、历史数据对比等功能, 单要素统计包括业务常用的1、3、6、24小时及08–08、05–05等固定时段统计和自定义统计, 对于自定义统计支持实时生成色斑图.
(3)数值模式: 提供8类业务常用数值模式中国、华北、海河、天津4个区域的产品展示, 支持按时间、要素进行产品筛选, 提供单图和邮票图两种显示形式.
(4)智能预报: 提供天津智能网格预报产品的GIS、时序图展示.
(5)气象服务: 提供天气、海洋、环境、决策、农气、气候、人影等预报服务产品的展示. 除了常规文档展示及下载, 对于业务常用的雨情公报和预警信号展示, 增加了特色显示和统计功能. 对于雨情公报, 以日历直观展示各日降雨量级,点击日期可查看该降水过程各国家站的逐时降水详情, 同时提供按时间段、降雨量级筛选降雨过程, 提供近一周、近一月、近半年、近一年、入汛以来等时间段的降雨最多TOP10日期和站点统计. 对于预警信号, 可按时间段、预警类型、发布单位、预警级别统计发布情况, 同时利用时序图展示预警演变、持续时间情况.
(6)数据服务: 提供天津气象大数据环境的气象、行业共享及社会数据的在线查询和下载服务. 服务方式包括在线检索、订单和接口服务等.
(7)视频数据: 提供实景观测及会商视频展示共享.
(8)管理信息: 各类管理制度、业务软件、会商PPT等信息的展示共享.
(9)系统管理: 包括角色、用户、菜单、文件等信息的管理功能, 供系统管理员对用户、权限、系统栏目进行配置.
(10)社区论坛: 供用户反馈系统问题及完善建议.
3 系统应用 3.1 系统应用天津气象信息综合管理共享系统构建了统一集约的省级数据环境, 为天津气象各类应用提供数据支撑, 市、区两级的气象部门用户和行业共享用户可通过浏览器访问信息共享门户, 共享门户显示数据来源于天津气象大数据环境, 气象部门用户可通过FTP、共享、数据接口、数据订单等方式获取数据环境中的数据, 数据环境存储内容涵盖气象数据、行业共享数据及天津业务所需的互联网数据, 信息共享门户提供了相关数据的综合展示及数据下载. 图4为基于GIS的自动站数据展示效果, 图5为智能网格预报产品展示效果, 图6为雨情公报展示效果.
3.2 效益分析
通过搭建分布式存储环境, 建立统一的数据采集、加工、共享流程, 扩展集约存储数据范围和服务接口, 天津省级气象数据环境的存储容量和性能得到大幅提升, 存储能力由几十TB级提升至几百TB级, 为天津预报一体化平台、天津气象APP、决策服务平台等关键业务系统提供了更加集约、高效的数据支撑, 7大类36小类本市特色数据实现要素级存储, 网格数据访问性能提升4倍, 业务中最常用的自动站数据查询性能提升8倍, 分钟级数据存储时长由数月增长至数年并可按需扩展.
4 结论与展望天津气象数据综合管理共享系统构建了集约、高效的气象大数据环境及综合可视化展示服务平台, 主要承担为天津各类气象业务提供数据支撑, 为气象部门市区两级用户和行业共享用户提供实时监测数据、产品数据的综合展示、查询、统计服务, 实现各类管理制度、业务软件、会商资料在全省范围的共享. 系统基于分布式存储技术和WebGIS技术进行优化处理, 响应速度快、功能完善、界面友好, 为气象监测预警、信息共享提供了良好的支撑, 得到用户的一致肯定. 接下来的研究工作是进一步扩充完善系统功能, 提升数据支撑和共享能力.
[1] |
王素娟, 施进明, 赵立成, 等. 基于Internet/Intranet的气象卫星资料检索系统. 计算机应用, 2004, 24(3): 134-136, 140. |
[2] |
李集明, 沈文海, 王国复. 气象信息共享平台及其关键技术研究. 应用气象学报, 2006, 17(5): 621-628. DOI:10.3969/j.issn.1001-7313.2006.05.012 |
[3] |
马渝勇, 徐晓莉, 宋智, 等. 省级气象信息共享系统的设计与实现. 应用气象学报, 2011, 22(4): 505-512. DOI:10.3969/j.issn.1001-7313.2011.04.014 |
[4] |
熊安元, 赵芳, 王颖, 等. 全国综合气象信息共享系统的设计与实现. 应用气象学报, 2015, 26(4): 500-512. DOI:10.11898/1001-7313.20150412 |
[5] |
何林, 邓凤东, 李亚丽, 等. 陕西省气象数据共享系统. 陕西气象, 2017(6): 32-35. DOI:10.3969/j.issn.1006-4354.2017.06.008 |
[6] |
范保松. 河南省气象观测数据综合服务平台的设计与实现. 气象与环境科学, 2019, 42(1): 135-142. |
[7] |
李新庆, 陈海波, 杨有林, 等. 宁夏综合气象信息共享与管理系统设计研究. 计算机技术与发展, 2019, 29(5): 135-141. DOI:10.3969/j.issn.1673-629X.2019.05.029 |
[8] |
郭庆燕, 杨晖, 张敏, 等. 气象数据应用服务系统的研究. 计算机应用与软件, 2018, 35(2): 107-111. DOI:10.3969/j.issn.1000-386x.2018.02.019 |
[9] |
赵芳, 熊安元, 张小缨, 等. 全国综合气象信息共享平台架构设计技术特征. 应用气象学报, 2017, 28(6): 750-758. DOI:10.11898/1001-7313.20170610 |
[10] |
宋智, 徐晓莉, 张常亮, 等. 应用分布式存储技术优化省级CIMISS数据服务能力. 气象科技, 2019, 47(3): 433-438. |
[11] |
肖卫青, 杨润芝, 胡开喜, 等. Hadoop在气象数据密集型处理领域中的应用. 气象科技, 2015, 43(5): 823-828. DOI:10.3969/j.issn.1671-6345.2015.05.008 |
[12] |
徐拥军, 何文春, 刘振, 等. 海量气象站点数据分布式存储测试及其应用. 贵州气象, 2016, 40(5): 61-68. |
[13] |
王建荣, 华连生, 唐怀瓯, 等. 数值预报产品分布式处理与存储系统设计. 计算机技术与发展, 2018, 28(2): 167-172. DOI:10.3969/j.issn.1673-629X.2018.02.036 |
[14] |
向筱铭, 徐晓莉, 杨雪, 等. CIMISS数据存储管理系统结构优化及应用. 气象科技, 2019, 47(2): 237-243. |
[15] |
朱哲明. 基于Quartz的消息沟通平台的研究[硕士学位论文]. 北京: 北京邮电大学, 2013.
|
[16] |
曾行吉, 李涛, 詹利群, 等. 基于MUSIC的特色数据与产品回写CIMISS方法研究. 气象研究与应用, 2018, 39(1): 111-114. DOI:10.3969/j.issn.1673-8411.2018.01.026 |
[17] |
陈学飞. 面向服务的政务数据交换平台设计与实现[硕士学位论文]. 西安: 西安电子科技大学, 2018.
|
[18] |
胡勇, 李德平, 余满山, 等. 基于WebGIS的精细化格点预报可视化设计与实现. 测绘与空间地理信息, 2019, 42(5): 163-165. DOI:10.3969/j.issn.1672-5867.2019.05.049 |
[19] |
郑波, 李湘, 何文春, 等. 基于CIMISS全国精细化格点预报业务数据环境系统设计与实现. 气象科技, 2018, 46(4): 670-677. |