基于数据湖的省级卫星直收站数据共享服务设计
2024-04-19李显风袁正国周雪莹邓卫华刘海燕
李显风 袁正国 周雪莹 邓卫华 刘海燕
(江西省气象数据中心,南昌 330096)
引言
随着观测手段和信息技术的不断发展,气象及相关行业数据量日益增长,为开展气象业务服务提供了重要数据支撑,同时也给数据的存储管理带来严峻挑战。为实现数据资源高效汇聚、统一存储和共享服务,中国气象局利用云计算、大数据等新一代信息技术,在国省两级构建了“数算一体”的气象大数据云平台(天擎),实现气象部门内外多种数据产品的统一管理和云上计算能力,全面支撑“云+端”的气象应用业务,形成集约化、标准化、开放发展的气象新业态[1-2]。
气象卫星作为天基探测的主要手段,在气象观测、天气预报及防灾减灾中发挥着越来越突出的重要作用。我国从20世纪70年代开始自主发展气象卫星,截至2022年6月已发射了19颗气象卫星,其中7颗在轨运行,实现了极轨卫星和静止卫星的业务化运行[3-4]。FY-3、FY-4卫星分别是我国目前在轨运行的第二代极轨气象卫星和静止气象卫星,成为我国获取全球资料和满足区域灾害性天气和环境监测、气象服务和地球系统科学研究的重要工具,并通过用户直收、中国气象局卫星广播系统(CMACast)[5]广播分发、门户网站注册下载、人工定制等多种方式为全球用户提供观测数据和应用服务。目前,省级气象部门主要通过CMACast卫星广播系统转发获取FY-3、FY-4等各类原始探测数据及加工产品,各类数据产品广泛应用于天气预报服务、自然灾害监测业务和科研工作等领域[6-9]。但是通过CMACast系统广播获取的卫星资料种类有限并且存在滞后时间较长等问题,从而影响了资料的实际应用效果,特别是对森林火点监测等高时效业务。为了满足对气象卫星数据高时效性应用需求,中国气象局在全国各省气象局、区域中心建设了高速数据地面卫星直收站,实时接收处理FY-3、FY-4等多种卫星数据产品,显著提高了资料获取数量和资料时效。
极地轨道卫星具有获取全球资料的能力,其探测数据覆盖范围广;静止轨道卫星具有获取高频次资料的能力,如FY-4卫星每15分钟可获得一次全圆盘观测资料。因此,省级卫星直收站实时接收数据量大(每日约700 GB),各个接收站数据存储在不同存储系统。目前尚缺乏统一的服务系统支持有效的数据应用服务,导致数据产品在实际业务中难以充分发挥效益。尽管产品文件可以通过天擎统一服务接口进行读取访问,但是需要逐时次逐个文件下载,并将下载的文件存储到本地磁盘目录进行加工处理。这种传统服务方式资料获取时效慢、资料时序短,不能满足人工智能等大数据应用对长时间序列产品文件的需求。因此,迫切需要建设统一的大数据文件共享系统。
数据湖可以用于存储任意类型的海量数据,并具有良好的可扩展性。通过数据湖引擎可直接访问集中存储的各类数据文件,并可根据业务、科研等不同需求解析数据,挖掘价值,减少数据的重复存储[10],显著提升大数据应用支撑能力。近年来,数据湖技术在交通、通信、卫生医疗、档案管理等众多行业领域得到深入应用和发展[11-15]。根据气象数据集约化管理需求,中国气象局依托天擎建设了气象数据湖系统,实现对多套气象文件存储系统集成,并提供统一目录视图服务,可以满足不同业务对多源数据访问需求,为挖掘数据价值提供高性能的服务支撑。徐娟等[16]将数据湖技术应用于青海气象信息系统管理与服务;刘海燕等[17]探讨了利用数据湖进行智能网格气象预报业务产品服务的新模式,提升了产品的服务效益。
本文依托天擎系统,采用数据湖技术建设全国统一规范的省级气象数据湖系统,建成全省统一的文件级数据环境,结合省级卫星直收站数据现状和实际服务需求,利用数据湖系统实现对卫星直收站数据产品的统一管理和服务,以满足江西省气象人工智能等大数据应用对多源长时间序列数据文件的“存管用”需求,为大数据背景下海量气象数据的存储管理和共享服务提供思路和参考。
1 卫星直收站数据
目前江西省气象局在九江市和抚州市两地建设了九江极轨卫星直收站和抚州静止卫星直收站2个省级卫星地面直收站。其中九江直收站于2016年6月建成并投入应用,通过X波段、L波段天线信号接收FY-3C、FY-3D、FY-3E、Aqua/Terra、NOAA18/19、NPP等6种极轨卫星数据L0、L1级数据产品,并在省级端生成相应的L1级数据产品,数据格式均为HDF,每日数据量约105.72 GB,数据时长为2016年6月至今。抚州直收站于2018年6月建成并投入应用,为FY-4A卫星高速数据(HRIT)接收站,主要接收包括多通道扫描成像辐射计(AGRI)、干涉式大气垂直探测仪(GIIRS)和闪电成像仪(LMI)三个载荷的L1 、L2、L3级播发数据和处理产品,数据格式为HDF和NetCDF两种,每日数据总量约638.09 GB,数据时长为2016年6月至今。具体接收数据情况详见表1所示。
表1 江西省卫星直收站数据资源统计
地面直收站主要包括站运行管理系统、天线控制系统和接收处理系统3部分(图1),通过接收处理系统实时接收并处理生成各类数据产品,将数据文件写入本地存储单元,具备对系统运行的实时监控,并通过网络将数据产品实时传输至省级服务器存储系统,支撑全省各类业务和用户访问使用。
图1 卫星直收站数据流程
2 数据湖架构设计
数据湖是一个集中式数据存储库,支持所有的数据类型,可以保存大量的结构化、半结构化和非结构化的原始数据。基于气象大数据云平台建设气象数据湖,可以实现分散储存的各类气象数据资源汇聚整合,提供统一的数据存储和访问服务,满足大数据框架各种海量、高性能的访问需求,以及人工智能的低延时、高吞吐的使用需求,充分发挥数据价值。
2.1 气象大数据云平台
根据中国气象局统一规划部署,省级气象大数据云平台(天擎)建设遵循统筹规划、分步实施、集约整合、融合发展的原则,应用云计算、大数据等新一代信息技术,打造“专有云+公共云”的混合云模式[18]。通过升级气象信息基础设施,优化数据汇聚、加工、服务和应用支撑流程,实现气象部门内外数据高效汇聚,提供云上计算、挖掘分析的计算服务,全面支撑“云+端”的气象业务[19],实现了对原有全国综合气象信息共享系统(CIMSS)[20]的全面升级和替代[21]。天擎系统是以“云+端”设计思路支撑各应用系统围绕数据结合算法和算力进行集约化运行,提升业务流程运行效率并节约系统资源,改变了过去业务林立的“烟囱式”应用系统建设方式,避免了数据重复搬迁,实现数据、算法和算力资源的集约化管理[22]。省级天擎系统包括数据交换及质控、产品加工、挖掘分析、数据存储及服务、业务监控等五大功能子系统,自2021年开始投入业务运行,有效支撑全省省市县三级业务。天擎系统采用NAS(Network Attached Storage)、SAN(Storage Area Network)等多种存储方式,建立以分布式关系型数据库、分布式列式数据库、分布式文件库和分布式对象库等多种存储技术的数据存储管理系统,对各类气象数据资源进行规范化存储管理,为气象数据湖建设提供了系统资源和数据资源支撑。
2.2 不同存储方案的对比分析
根据文件类型和应用服务场景,天擎设计了3种文件级气象数据处理和存储管理方式,即非结构件处理、半结构化处理和数据湖处理3种方式,其处理流程如图2所示。①非结构化处理:通过读取共享文件系统的数据文件,进行文件名解析,将文件名、文件路径、文件时间、文件大小等索引信息写入分布式关系型数据库(文件索引库),同时将共享文件系统上的文件转储到分布式NAS系统。采用该处理方式有雷达、服务产品等数据。②半结构化处理:首先按照非结构化处理方式,将文件转储到分布式NAS系统,将文件索引信息写入文件索引库,然后通过对文件进行解码处理,将文件数据信息写入分布式表格数据库,支持按区域和时间范围进行数据时空裁剪处理。目前GRIB格式数值模式产品采用半结构化处理方式。③数据湖处理:直接将共享文件系统上的数据文件迁移转储到分布式NAS系统。上述3种处理方式中,非结构处理和半结构化处理存储的数据可以通过配置天擎数据接口提供数据共享服务,其中非结构化数据通过数据接口可以获取数据文件,半结构化数据可以同时获取数据文件和数据块信息,两种方式获取的数据文件均需要下载到本地存储。数据湖处理通过发布统一的目录服务,提供对数据文件以挂载盘符方式直接读取访问,不需要对文件进行本地存储。从上述分析可见,3种方式均能实现数据的集约共享服务,结构化和半结构化需要进行文件解码入库处理,适合数据量小的实时数据。数据湖具有处理流程简单,不需要进行复杂解码入库处理,可以实现任意数文件据特别是长时间序列数据文件的全量和增量存储管理,具有处理环节少,数据访问简便等优势。省级卫星直收站保存了建站以来的全部历史和实时观测数据产品,其数据时间序列长,文件数量和容量大,适合采用数据湖方式进行数据的存储管理和共享服务。
图2 不同储存方式的数据处理流程对比
2.3 数据湖总体设计
依托天擎数算一体的平台服务能力,基于集中式数据存储机制构建一套虚拟数据存储资源池,将天擎各类气象数据进行引接汇聚,提供统一的命名空间,支持多协议互通互联,减少数据移动,实现数据资源的高效共享。省级数据湖部署在天擎中四台建立互信的Linux服务器上,通过应用的部署实现虚拟文件系统搭建、存储接入、元数据管理、系统后台管理以及系统的高可用。其物理架构如图3所示,主要由存储节点、计算节点、管理节点和客户端节点4部分组成。①存储节点:为接入的实际物理存储系统,数据湖支持分布式NAS、分布式文件系统和对象存储等不同存储系统类型,通过数据湖实现多个存储的集成整合。②管理节点:主要用于提供后台管理服务和元数据服务,由两台高负载服务器组成,均需部署PostgreSQL、Redis、Redis-Sentinel服务和ElasticSearch服务,其中一台管理节点作为PostgreSQL主节点,该节点还需要部署Ansible自动化工具和Kibana服务,另一台管理节点作为PostgreSQL备份节点和Redis主节点,该节点还需要部署FS Gateway-rest管理服务。③计算节点:主要用于提供虚拟文件系统服务和存储接入服务,由两台低负载服务器组成,一台部署FS Gateway-gw存储服务和Redis-Sentinel服务,另一台只部署FS Gateway-gw存储服务。④客户端节点:为访问数据湖资源的客户端服务器,数据湖提供Linux和Windows两种类型客户端,经过授权后的客户端便可通过统一命名空间的虚拟文件系统访问湖内各类数据资源。
图3 数据湖系统架构
2.4 应用流程及关键技术
基于上述系统架构,应用PostgreSQL、ElasticSearch、Redis、 Kibana等开源软件,采用FSGateway(Factory Suite Gateway)技术进行数据湖系统开发,实现服务接口、访问客户端和监控管理等功能模块,提供统一文件目录服务。PostgreSQL是一个开源的对象关系型数据库管理系统(ORDBMS),支持大部分SQL标准并且提供了包括复杂查询、外键、触发器、可更新视图、事务完整性、多版本并发控制等特性,具有跨平台、可扩展和支持复杂数据类型等优势[23-24]。ElasticSearch(ES)数据库是一个分布式存储引擎,为非关系型实时数据库,可以实时存储并检索序列化的JSON结构数据[25-26],采用反向索引机制实现高效的访问性能,支持通过 Kibana服务实现存储在ES库中数据的查看和搜索,并能实现基于浏览器的用户界面快速创建仪表板实时显示ES查询动态。Redis(REmote DIctionary Server)缓存技术是一种基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的应用程序接口(Application Program Interface, API),支持应用的配置和元数据的加速缓存,同时还支持Master-Slave(主从设备模式)的数据备份[27]。
气象数据湖实现了与天擎存储管理系统(SOD)、服务接口系统(MUSIC)的耦合处理,实现对天擎数据资源统一管理并提供共享服务和权限控制。通过接入SOD、MUSIC元数据信息,实现对天擎业务用户的访问权限控制。天擎加工流水线(DPL)通过数据湖接口访问湖内数据资源进行数据产品的加工处理。气象数据湖技术流程如图4所示,首先应用Ansible自动化运维工具,通过配置服务器登录和分组信息、软件部署信息等,实现所有开源系统软件在各服务器节点的批量安装部署。采用PostgreSQL数据库对天擎SOD和MUSIC的用户信息、资料编码信息、用户权限信息、物理存储信息、目录及目录映射信息等元数据进行存储管理。采用ES存储包括用户行为记录、系统运行状态、接口请求记录、资料编码目录规则检查记录和客户端状态信息记录等数据。通过Redis对用户信息、资料编码信息、用户权限信息、目录映射信息等系统元数据进行缓存加速,并采用Redis-Sentinel服务进程对Redis的运行状态进行监控,实现master节点故障后主备节点的自动切换。采用FS Gateway(Factory Suite Gateway)技术将不同通信协议的不同数据源连接在一起,根据应用需求定制开发fsgateway-rest、fsgateway-gw和fsgateway-monitor三个系统模块,为天擎DPL和其他应用系统提供数据应用服务。其中fsgateway-rest主要实现服务接口、存储管理和产品加工等功能;fsgateway-gw实现Linux、Windows客户端访问功能;fsgateway-monitor实现对接气象综合业务实时监控系统(天镜)提供系统监控功能,确保数据湖系统连续稳定运行。
图4 数据湖技术流程
3 卫星直收站数据入湖管理
目前江西省内两个卫星直收站的数据产品实时传输至省级不同服务器存储系统,但无法提供对数据、用户权限、文件目录等进行统一管理,用户获取数据需要访问多个节点,不能充分发挥数据价值。该产品接入数据湖后,用户可以通过数据湖客户端连接至数据湖文件管理系统,采用挂载盘符的方式获取以时间为粒度的长时间序列数据文件。
3.1 存储规划
将不同存储节点的卫星直收站数据实时同步至省级天擎NAS存储,采用虚拟入湖的方式将天擎NAS存储的各类数据文件汇聚处理,形成统一服务虚拟目录视图,实现数据入湖存储。具体处理流程如下:首先通过确定存储类型、读写权限以及挂载节点等信息,在数据湖服务端创建数据湖的后端存储节点。然后进行虚拟目录创建,根据“/根目录/{卫星类型}/{接收类型}/{资料类型}/{资料编码}/{产品属性[加工中心]/[产品种类]/[加工系统]/[产品等级]/[产品代码]/[产品格式]/[空间属性]/[要素]/[时间属性]} ”目录规则,定义存储虚拟目录,其中{}内为必选,[]内为可选。各数据产品虚拟目录规划如表2所示。最后通过入户模板创建虚拟目录和物理目录的映射关系进行虚拟目录挂载,确定数据文件的实际物理存储位置,根据挂载具体日期目录完成相应数据的全量抽取或增量接入,并且长期存储不会随意迁移。
表2 虚拟目录说明
3.2 访问控制
数据湖通过统一权限控制系统,为用户提供可靠认证机制,保障用户信息和数据安全。在数据湖服务端创建用户及用户所属分组,并对所属分组进行授权,实现用户对数据湖数据资源访问权限控制。只有通过授权的用户才能接入数据湖,按照确定的规则控制用户访问指定的目录、子目录和文件,以及适当的操作权限,实现业务用户更安全、更便捷地获取长时间序列、多类型细粒度的产品文件,并有效控制用户对湖内数据的使用。由系统管理员对数据湖进行统一的强制性控制,并且对认证、授权和使用等操作进行记录和监控,包括用户使用的产品、使用的时间、以及执行的操作等,保障用户正常使用湖内数据,避免数据湖遭受非法授权用户的侵害,同时对数据恢复提供帮助。
数据湖授权以组为单位,组内用户具有相同的权限。通过配置统一服务目录的路径规则,实现一个或多个目录文件的访问授权,支持以枚举类型、正则表达式类型和日期类型进行目录解析,其中对于枚举型的标识字符为“#”,正则类型标识符为“$”,日期类型为“@”。以FY-4A AGRI L1级标称数据为例,其统一服务目录为“/SATE/FY4/FY4A/AGRI/L1/FDI/{#SATEAREA}/NOM/{@YYYY}/{@YYYYMMDD}/”,其路径规则定义如表3所示。通过对目录规则解析处理,实现目录路径授权、时间范围授权和资料编码授权等多种权限控制方式。其中目录授权操作对目录中的所有文件和子目录均有效,如NOAA AVHRR资料根据卫星类型和时间属性分块存储在NOAA目录下,如果将NOAA目录授权给业务用户,则授权用户可以获取该目录下所有子目录的NOAA18、NOAA19卫星数据文件,如将NOAA18目录授权给业务用户,则授权用户只能访问该目录下的NOAA18卫星数据文件;时间范围授权可以在目录路径授权基础上进行更为细粒度的权限控制,通过定义目录路径的访问开始时间和结束时间,实现限定时间范围内数据文件的读写访问。资料编码授权是对特定资料编码的访问权限控制,同时可以控制资料编码的时间范围、操作权限以及子目录访问权限等多种层级控制。
表3 目录规则定义示例
3.3 客户端服务
通过发布统一文件目录服务,提供Linux和Windows两种类型客户端访问数据湖授权的文件目录。对于Linux系统,数据湖客户端提供类似于NAS的连接数据湖文件管理系统服务,可以把数据湖目录直接挂载到Linux系统上,提供用户使用。用户需要将客户端所在IP地址和系统用户与数据湖已授权的虚拟目录用户进行关联,系统用户便会拥有虚拟目录用户的相应权限。对于Windows系统,用户需要在系统中安装客户端软件,软件界面如图5所示,用户只需要输入虚拟目录用户的账号信息即可实现目录在本机的挂载(图6),直接以本地盘符方式访问该用户对应的授权文件。
图5 数据湖Windows客户端界面
图6 本地挂载盘符目录示例
3.4 访问时效分析
通过数据湖可以实现对多源异构存储系统进行统一数据管理,同时通过采用数据块缓存、并发访问、读写分离等技术,还能显著提升数据服务效率。数据块缓存中不使用第三方中间件,通过直接操作服务器系统内存实现数据块缓存处理,对已访问数据不需要频繁访问物理存储,提升了文件I/O读写效率。通过文件锁实现并发访问,将读写操作在不同线程处理,优化了大文件读取性能。通过NAS读写操作资源隔离,避免由于某个NAS堵塞导致数据湖不可用,并增加了按照文件进行负载的策略,进一步提高了数据服务的可靠性。为检验评估数据湖访问时效,采用数据湖目录访问和天擎数据接口下载方式,分别获取2023年1—31日卫星直收站的FY-4A多通道扫描成像辐射计(AGRI)L2级地表温度产品文件,该时段内文件数量约6210个,数据总量约12 GB。按日尺度分别统计两种方式的处理耗时,得到2023年1—31日的逐日文件访问耗时结果(图7)。从图中可见,基于数据湖目录访问方式的每个时次的处理耗时明显要小于天擎接口方式。天擎数据接口访问耗时大部分时次都在12 s以上,最高耗时达14.9 s,平均耗时为11.9 s。数据湖访问耗时各时次都在5 s以内,最高耗时仅为4.6 s,平均耗时为3.6 s。基于数据湖目录访问较天擎数据接口访问方式的时效提升了69.7%。
图7 2023年1月1—31日逐日文件访问耗时对比
4 应用示例
省级卫星直收站数据通过数据湖统一文件目录方式提供全省各级气象部门访问使用,已广泛应用于全省天气监测、预报预警、生态文明建设保障等业务服务。江西省生态气象中心通过数据湖客户端实时访问获取湖内各种卫星数据产品,基于获取的数据产品开展鄱阳湖水体面积、全省早晚稻种植面积、大雾、城市热岛等实时监测业务。如2023年4月1日使用FY-3D卫星资料,监测了鄱阳湖主体及附件水域面积为1430 km2,较2023年3月14日监测的水域面积(936 km2)增加了494 km2,较历史同期(1980 km2)偏小近3成(图8)。
图8 2023年4月1日与2023年3月14日鄱阳湖水域面积遥感监测影像
5 结论
本文从省级卫星直收站数据实际应用需求出发,在详细介绍卫星直收站数据现状基础上,提出了一种采用数据湖技术的数据共享服务思路,从卫星直收站数据接收处理、气象数据湖设计、应用流程及实现技术、卫星直收站数据入湖存储等方面进行了详细阐述。
(1)依托天擎数据和计算资源环境,采用开源技术平台设计与建设了气象数据湖系统,实现对多套文件存储系统集成管理,提供统一目录视图,支持集中权限管理,支持目录级别权限设置。
(2)实现卫星直收站数据接入气象数据湖统一储存管理,能够减少数据的重复存储,反复迁移,避免数据孤岛的产生,保障了数据访问性和正确性,提升了数据访问时效。
(3)通过统一的权限管理,提供文件目录管理、强制性访问控制和权限控制等安全策略,确保湖内数据安全和系统安全。
(4)通过统一虚拟文件目录服务,实现长时间序列大数据文件便捷高效读取访问,为气象大数据的挖掘分析和智慧气象业务的发展提供精准高效的大数据资源支撑。
本文实现了省级卫星直收站数据的统一储存管理和共享服务,满足了现代化气象业务对海量卫星数据产品服务需求,为其他大数据产品的共享服务提供了思路和参考,如何进一步提升海量文件和大数据文件的并发读取效率以及数据访问安全还有待进一步深入研究。