基于数据湖的智能网格气象预报业务产品服务模式初探
——以江西省为例
2022-07-27刘海燕周雪莹李显风胡丽丽
刘海燕, 周雪莹, 李显风, 胡丽丽
江西省气象信息中心, 江西 南昌 330096
0 引 言
天气预报实现了从传统站点预报向滚动制作、实时同步、协同一致的智能网格预报发展,对公众和各行业领域的精细化天气预报服务具有重要的作用,是发展现代气象业务的重要业务体系(金荣花等,2019)。面向精细化气象业务服务需求,智能网格气象预报业务不断发展,其产品的时空分辨率不断提升,导致产品数据量逐年大幅度增长。业务产品通过写入气象大数据云平台以统一数据接口提供用户共享访问,由于用户本地存储空间有限,用户通过数据接口获取的数据文件通常不能完整保存,无法满足人工智能等大数据应用对长时间序列产品文件的需求。因此,迫切需要建设统一的文件级数据共享环境。数据湖可以用于存储任意类型的海量数据,并具有可扩展的大规模数据处理能力。用户通过数据湖引擎可实现直接访问集中存储的数据文件,并能够根据业务、科研等不同需求解析数据,挖掘价值,减少数据的重复存储(陈永南等,2019),可以显著提升大数据应用支撑能力。
随着大数据技术的快速发展,数据湖技术在众多行业领域得到应用和发展。国内档案文献领域学者通过整合多样性档案数据资源,基于数据湖架构构建了智慧档案馆生态系统(赵生辉等,2021);国内民用航空研究人员针对传统数据库、数据仓库无法满足航空数据指数级增长的需求,提出了一种基于Lambda的运行支持数据湖系统设计方法(马驰,2021);中国电信基于“新基建”对统一数据湖做了有益的探索和实践,并提出了基于BSS/MSS/OSS跨域融合的统一数据湖建设方案(胡军军等,2019;刘志勇等,2021);针对我国水陆联运领域高复杂程度的自动化集装箱码头运营数据混乱及可视化程度低等问题,提出一种自动化集装箱码头数据湖系统设计与管理方法(孔席超等,2022)。根据气象数据集约化管理需求,中国气象局依托气象大数据云平台建设了气象数据湖,实现对国家级多套气象文件存储系统集成,并提供统一目录视图服务,可以满足不同业务对数据的存储需求,为挖掘数据价值提供高性能的服务支撑。
文中结合江西业务建设和实际业务需求,采用数据湖技术建设全省统一的文件级数据环境,实现智能网格预报业务产品共享服务,以满足江西省精细化预报业务对国内外模式产品以及实况网格产品等多数据源长时间序列产品文件的需求,为海量气象数据的存储管理和共享服务提供思路和参考。
1 产品介绍
江西省气象局通过国内气象通信系统(CTS)、中国气象卫星广播系统(CMACast)和智能网格气象预报云平台等不同渠道收集全国智能网格预报指导产品、全国智能网格实况融合分析产品和高分辨率数值预报模式产品(表1)等产品。全国智能网格预报指导产品包括陆面格点预报指导产品(含基本要素、环境、强对流)、全国格点预报逐时滚动更新产品和省级格点预报产品(含定时、实时)等各业务环节产品,时空分辨率最高为5 km/h(胡争光等,2020)。全国智能网格实况融合分析产品包括降水融合实况分析产品、陆面融合实况分析产品与三维云融合实况分析产品,时空分辨率最高为1 km/h(韩帅等,2018;师春香等,2019;朱智等,2021)。上述两种产品的空间范围包括中国区域(0°—60°N,70°—140°E)和江西区域(24°—31°N,113°—119°E)两种,数据格式包括MICAPS格式和GRIB2两种存储格式。高分辨率数值预报模式产品包括中国气象局研发的全球数值预报模式产品(GRAPES)和上海、广东、北京三个区域气象中心研发的区域数值预报模式(李婷苑,2021)。
表1 高分辨率数值预报模式产品说明
图1为2017—2021年江西省气象局年均日接收数据量,可见产品平均日接收数据量呈逐年增长趋势。2017年平均日接收数据量为14.58 GB,2018—2020年由于产品频次、分辨率提升,年平均日接收数据量小幅增加。根据第八届全国气象行业天气预报职业技能竞赛数据环境需求,2021年江西省将国家级格点预报指导产品由分省区域切换为全国区域,导致该产品年平均日接收数据量由0.2 GB提升至35 GB左右,并且2021年新增了华南热带区域模式-TRAMS-9公里产品和国家气象中心-GRAPES_REPS模式产品,年平均日接收数据量增加至46 GB左右。受存储空间限制,产品文件保留天数最长近30 d,最短近3 d,无法满足日益增长的业务需求。
图1 2017—2021年江西省气象局年均日接收数据量
目前,智能网格预报业务产品通过智能网格共享平台和气象大数据云平台两种方式提供产品的存储管理,并通过气象统一服务接口(MUSIC)向省市县提供共享服务。图2为2021年智能网格预报业务产品接口调用情况,接口调用最长耗时小于1 s的次数占总调用次数的95.34%,1—5 s的比例为3.97%,大于5 s的比例为0.69%,其中获取中国0.05°×0.05°逐小时总云量融合实况分析产品的接口调用耗时最长,达19.98 s,获取省级格点预报订正产品的接口调用耗时最短,耗时在毫秒内。
图2 2021年江西省气象局智能网格接口调用耗时
2 气象数据湖设计与实现
目前业务用户获取智能网格预报业务产品需要访问多个数据源,面对这种共享服务现状,需要寻找一种用户可以更便捷地获取产品文件的方式。基于气象大数据云平台构建的气象数据湖,集成现有的文件存储系统,屏蔽底层架构的复杂性,通过目录管理统一标识各项数据,在分布式系统架构基础上实现用户管理、目录挂载、目录授权和日志审计等。借助气象数据湖,授权用户直接获取已入湖的业务产品,满足气象业务对多数据源长时间序列产品文件的需求。
2.1 数据湖介绍及关键技术
数据湖是一个以原始格式存储数据的大型数据存储库或系统,以数据为导向,实现任意来源、任意速度、任意规模、任意类型数据的全量获取、全量存储、多模式处理与全生命周期管理,具有灵活性,可扩展性,低成本性等特性。它按原生模型存储数据,能够大量存储各种类型的数据,如结构化数据、非结构化数据、半结构化数据以及二进制数据等。数据湖中的数据是业务数据的完整副本,仅对数据进行适当地组织,保证数据真实可靠,能更好满足业务应用对长时间序列数据的需求。作为海量数据的存储和传输载体,用户通过统一的数据环境,能够根据业务、科研等不同需求解析数据,挖掘价值,并且减少重复性工作。
数据湖技术的使用,可以具备以下几个优势:
1) 数据湖基于现有硬件资源,采用开源技术,降低了建设和维护成本。数据湖的存储一般采用分布式对象存储或分布式文件系统来存储数据,具有可扩展性和敏捷性等特性,存储空间巨大,能极大提高数据存储总量。
2) 把不同种类的数据汇聚是数据湖的价值之一。数据湖中的数据类型依赖于数据源系统的原始数据格式,可以快速高效地存储大量来源不同、格式不同的业务原始数据,实现数据的汇聚和集中管理,有利于优化数据服务。
3) 数据湖实现海量原始数据集中存储。存储任意类型的数据,只有在使用时才会处理和转换数据,适合为人工智能提供海量小文件存取和数据共享等,采用这种模式,能为数据挖掘、数据分析和深度学习提供有效服务,使得数据分析人员更专注于数据、算法和业务,实现数据价值增值化。
2.2 气象数据湖建设及规划
根据气象业务的实际需求,充分考虑处理流程及业务系统现状等因素,坚持简单、敏捷和灵活的理念,采用PostgreSQL、Kibana、Elasticsearch等开源技术设计气象数据湖,其架构如图3所示。在气象大数据云平台上进行快速搭建,将产品加工系统的消息集群和调度集群分别作为气象数据湖的管理和计算节点,管理节点实现服务高可用性,授权管理文件系统;计算节点管理存储资源,提供分布式缓存能力和高性能缓存加速,实现存储后端可以同时对接分布式NAS、HDFS等。该设计可以满足大数据框架各种海量、高性能的访问需求,以及AI/机器学习的低延时、高吞吐的使用需求,同时简化运维管理。
图3 气象数据湖架构
3 产品入湖存储
目前智能网格预报业务产品主要通过气象数据统一服务接口(MUSIC)、MICAPS4和产品共享平台等方式为业务用户提供共享服务。该产品接入气象数据湖后,授权用户可以通过数据湖客户端连接至数据湖文件管理系统,采用挂载盘符的方式获取以时间为粒度的长时间序列产品文件。
3.1 入湖产品
智能网格预报业务产品采用物理入湖的方式汇总至气象数据湖内,分为半结构化数据和非结构化数据。半结构化数据包括智能网格二源快速融合降水产品(小时、日)、智能网格三源实时融合降水产品(小时、日)、智能网格逐10 min降水产品、国家级网格预报指导产品(全国、分省)、全国网格预报服务产品(定时拼接-全国)、全国网格预报服务产品(逐时滚动-分省)、省级网格预报订正产品和3DCloudA中国逐小时三维云量融合实况分析产品;非结构化数据包括CMPAS 0.01°×0.01°逐小时降水实时融合实况分析产品(分省)、CMPAS 0.01°×0.01°逐小时降水近实时融合实况分析产品(分省)、HRCLDAS中国0.01°×0.01°逐小时实时融合实况分析产品(分省)、3DCloudA 0.05°×0.05°逐小时总云量融合实况分析产品。半结构化数据拆分、重组要素后,索引存入文件索引库,文件体存入分布式NAS;非结构化数据根据索引策略和存储规则把数据存入分布式文件索引库+分布式NAS,同时文件实体存入分布式表格系统。
气象数据湖存储长时间序列的数据集,为业务用户提供一个统一的数据共享平台。在初始化阶段,根据“/根目录/{大类简码}/{产品属性[加工中心]/[产品种类]/[加工系统]/[产品等级]/[产品代码]/[产品格式]/[空间属性]/[要素]/[时间属性]}”形成存储目录(表2),{}内为必选,[]内为可选,确定业务产品存储位置,完成相应数据的全量抽取或增量接入,并且长期存储不会随意迁移。
表2 存储目录说明
3.2 访问控制
访问控制包括主体(业务用户)、客体(气象数据湖)和安全控制规则集(安全策略)三个基本要素,用来控制和管理业务用户对气象数据湖进行不同的授权访问。气象数据湖的安全策略包括基于身份的策略和基于组的策略,只有能通过认证的业务用户才能连接气象数据湖,由安全管理员对气象数据湖进行统一的强制性控制,并且对认证、授权和使用过程中产生的流水进行记录和监控,包括用户使用的产品、使用的时间、以及执行的操作等。访问控制有助于保障业务用户正常使用湖内数据,确保气象数据湖免遭非法授权用户的侵害,同时对数据恢复提供帮助。
在气象数据湖文件管理系统上,通过入湖模板建立业务产品对应虚拟表的集成方式,实现虚拟文件与存储目录映射,并且定义安全授权的安全策略,按照确定的规则控制用户组可以访问指定的目录、子目录和文件,以及适当的操作权限,使用逻辑机制实现业务用户更安全、更便捷地获取长时间序列、多类型细粒度的产品文件,并有效地控制用户对湖内数据的使用。安全策略允许用户在目录一级的操作对目录中的所有文件和子目录均有效,以陆面格点预报指导产品为例,产品根据加工中心和时间属性分块存储在目录SCMOC下(图4),如果安全管理员将目录SCMOC授权给业务用户,则授权用户可以获取该目录下所有子目录的产品;如果安全管理员将目录BABJ或BENC授权给业务用户,则授权用户可以获取目录BABJ或BENC下所有日期的产品。
图4 陆面格点预报指导产品目录视图
4 小 结
本文在详细介绍智能网格预报业务产品现状基础上,提出了一种采用气象数据湖技术的产品共享思路,从智能网格预报业务产品、气象数据湖设计与实现、智能网格预报业务产品入湖存储等方面进行了详细阐述。采用开源技术设计与建设了基于气象大数据云平台的气象数据湖,实现了数据产品的高效采集和存储管理,能够减少数据的重复存储,避免数据孤岛的产生,保障了数据可访问性和正确性。通过统一的目录管理、强制性访问控制和权限控制等安全方法,确保湖内数据在合法的范围内使用,为气象大数据的挖掘分析和智慧气象业务的发展提供精准高效的支撑数据资源。本文仅是针对智能网格预报业务产品进行气象数据湖共享技术的初步探索和实践,如何实现气象数据全集的统一存储管理和共享服务还有待进一步深入研究。