1、数据库与大数据技术本栏目责任编辑:王力Computer Knowledge and Technology电脑知识与技术第19卷第1期(2023年1月)第19卷第1期(2023年1月)E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.19,No.1,January2023基于云平台的气象数据共享系统设计陈冲1,张锋1,朱潜2,王伟1,李俊徽1(1.浙江省气象服务中心,浙江 杭州 310053;2.浙江专业气象服务有限责任公司,浙江 杭州 31005
2、3)摘要:为了解决浙江省各级气象部门服务的数据来源不一致、响应慢等问题,利用分布式云存储和云计算框架,构建了基于云平台的气象数据共享系统,无缝对接传统气象数据源,研发气象数据从存储、加工、共享发布到管理的一体化功能。实践证明,该系统较好地整合了全省气象数据,产品资源集约度更高,响应时间更快,负载能力更强,为各级气象部门提供了可靠、高效的实时数据共享服务,取得了良好的应用效果。关键词:气象;云计算;云平台;共享;发布中图分类号:TP399文献标识码:A文章编号:1009-3044(2023)01-0067-04开放科学(资源服务)标识码(OSID):1 引言随着浙江省气象信息化、现代化发展,全省
3、气象数据更加丰富1-3,其在气象监测、预报预警中发挥着越来越多的应用。但受制于气象内外网络安全等因素影响,各级气象部门获取数据困难,难以高效统一地共享省级业务部门的数据产品,出现了本地数据来源杂乱、延时性高等问题,对其进一步提升气象服务质量产生较大影响。近年来云服务发展迅速,云计算服务平台3-6提供了规范化的基础数据支撑框架,实现了从网络、计算到存储等资源集约化的功能,有效提升资源利用率及响应效率6-8。基于云平台技术集中开发互联网气象数据接口服务,可有效地实现数据共享与网络壁垒。本文利用云平台的技术框架,建立基于云平台的数据共享系统,通过接口鉴权的方式,实现全省各级气象部门的数据共享服务,为
4、各级气象部门提供气象实况、预报预警、雷达等精细化气象产品,实现全省气象数据的集约整合、开放共享的建设模式。2 系统设计2.1 系统三层体系架构设计气象数据共享系统总体包括“三横二纵”结构,“三横”为数据采集层、数据存储层及数据服务层,“二纵”为业务管理与消息总线,总体系统架构图如图1。1)数据采集层:承担对省级气象数据的收集任务,数据范围涵盖气象网格数据、XML、JSON、文档与图片等,采用Java语言设计开发,利用开源的Jenkins任务调度器,通过FTP的方式实现采集和传输,并对文件进行规范化命名处理和分类入库。2)数据存储层:承担对数据的规范化存储任务,将气象文件类数据存储于 OSS(O
5、bject Storage Service);相关用户信息与日志等存储于RDS(RelationalDatabase Service);将气象网格数据以key-value的方式存储于HBase(Hadoop Database),以提升定点经纬度数据值的读取速度,所有基于 LBS(Location BasedServices)的接口的数据都从HBase获取。3)数据服务层:承担通用的、规范化的数据接口服务,同时实现对数据访问的权限控制和相关日志记录功能;依托 API(Application Programming Interface)网关和SLB(Server Load Balancing)技术
6、,向全省提供互联网基础数据服务,确保其具有较强的稳定性、可靠性和易扩展性。4)“二纵”主要包括:业务管理、消息总线。业务管理是对气象数据共享服务的管理平台,对数据接口申请、气象数据管理与用户管理提供维护功能;消息总线承担各子系统、各应用和模块之间的信息交互。收稿日期:2022-07-25基金项目:浙江省气象局重点项目(项目编号:2020ZD08;2019YB05;2020YB09);浙江省科技公益重点项目(项目编号:2017C03035);杭州市农业与社会发展自主申报项目(项目编号:20191203B69)作者简介:陈冲(1990),男,浙江绍兴人,工程师,硕士,研究方向为气象信息技术、软件工
7、程等;张锋(1985),男,浙江丽水人,高级工程师,学士,研究方向为气象信息技术等;朱潜(1990),男,江苏连云港人,高级工程师,学士,研究方向为气象信息技术等;王伟(1991),男,江苏南通人,工程师,硕士,研究方向为气象信息技术等;李俊徽(1992),男,云南昆明人,工程师,硕士,研究方向为气象信息技术等。67DOI:10.14004/ki.ckt.2023.0050本栏目责任编辑:王力数据库与大数据技术Computer Knowledge and Technology电脑知识与技术第19卷第1期(2023年1月)第19卷第1期(2023年1月)SLBJenkins消息总线业务管理Jen
8、kinsschedulingKettleSync ServiceData ProcessingJenkinsschedulingKettleSync ServiceData ProcessingJenkinsschedulingKettleSync ServiceData Processing服务网关API服务网关API服务注册配置服务OSSHBaseRDS数据服务层数据存储层数据采集层图1 三层体系架构2.2 数据处理流程设计数据处理流程包括任务调度、数据同步及数据存储,框架如图2。将浙江省气象内网的监测预报网格产品、雷达、预警信息与文稿等数据进行采集、加工处理和上云。1)任务调度:使用Je
9、nkins,替代传统Windows计划任务,提供分布式调度,部署一个Jenkins管理节点,其他节点负责具体调度和运行。2)数据同步:采用Kettle中间件进行数据库信息采集同步,由Transformation和Job两种脚本文件实现业务,Transformation完成针对数据的基础转换,Job则完成整个工作流的控制,最终通过 Shell 脚本或者Batch批处理命令执行任务;研发FTP文件数据采集同步程序,通过Batch批处理命令执行任务,可以基于配置定义每类数据的相关属性实现文件校验、同步、解析和上云等。3)数据存储:采用阿里云存储服务,包括对网格文件、雷达、预警文件与图文资料等文件类数
10、据,业务管理信息、用户信息、配置信息与访问信息等结构化数据,key-value方式存储的气象网格数据等三类数据的存储服务。云存储文件数据数据库数据数据同步服务同步调用.bat同步调用.batkettle同步脚本kettle同步脚本KettleJenkins Slave数据同步服务同步调用.bat同步调用.batkettle同步脚本kettle同步脚本KettleJenkins Slave数据处理流程图2 数据处理流程2.3 数据接口发布流程设计数据接口发布流程设计是对基于云存储的气象数据资源开展共享流程架构,对气象数据资源进行集约化利用、高效化发布以及规范化管理,由数据接口规范与说明与访问权限
11、管理组成,用于接口帮助信息展示和接口权限管理。1)数据接口规范与说明:主要由接口地址、请求参数、返回信息和样例说明组成。接口地址采用统一域名加不同子地址的方式进行开放,需传入相关参数,包括相关位置信息、密钥、时序等;数据返回信息和样例说明是对接口返回内容的具体说明,便于开发者使用,减少中间的沟通成本,整体流程如图3。2)数据访问权限管理:包括审批与接口鉴权,接入气象数据共享系统的接口需先进行申请,提交接口类型、访问气象要素与注册用户信息等资料,审批通过后开放给用户对应的密钥,后面所有数据访问都基于用户身份认证模式,密钥校验成功后才能获取到接口返回数据,整体流程如图4。方法名经度纬度时间序列参数
12、API统一域名子地址返回结果字段等说明请求结果样例InputOutput图3 数据共享规范与说明审核通过提交未通过用户申请信息管理者发起提示开放应用密钥appCode密钥校验通过未通过用户应用密钥appCode气象数据共享系统发起错误提示气象数据接口请求接口申请图4 数据共享权限管理3)数据接口概述数据接口采用Java语言编写,依托阿里云微服务架构实现接口部署,通过SLB完成访问压力导流,通过阿里云API最终发布。下面以基于LBS的天气实况查询接口为例进行说明:public List ZJCurrentWeatherInfo(doublelon,double lat,Date date,Dat
13、e currentDate)参数说明如下:lon,请求区域经度。lat,请求区域纬度。date,需要计算的开始时间。currentDate,当前时间。譬如,用户需要请求经纬为(120.00,30.00)位置的当前时间天气实况信息。则调用示例为:68数据库与大数据技术本栏目责任编辑:王力Computer Knowledge and Technology电脑知识与技术第19卷第1期(2023年1月)第19卷第1期(2023年1月)ListResult=ZJCurrentWeatherInfo(120.00,30.00,newDate(),new Date()其 中 date 与currentDat
14、e 为当前时间入参。接口返回的结果采用键-值对形式,如下:title:公众版 天 气 现 象,type:pub_WeatherType,value:小雨,title:温度,type:DryBulTemp,value:35.8,title:相对 湿 度,type:RelHumidity,value:61%,title:站点气压(百 帕),type:pub_STATION_PRESS,value:1007,title:风向风速,type:pub_WindDV,value:东南偏东风2级title为气象要素中描述,type为气象要素关键字,value为气象要素值,接口可供各气象服务系统调用。3 系统
15、实现与测试依托上述设计理念,本文对基于云平台的气象数据共享系统进行了实现,Web页面部署于ECS(ElasticCompute Service),页面采用HTML5、JavaScript语言联合Leaflet、ECharts-GL等第三方Web GIS API接口的图形绘制等功能进行开发,利用基于AJAX实时异步技术读取接口进行数据访问与产品展示。部分系统页面如图5、图6所示。3.1 系统数据发布功能测试系统提供包括基于LBS的点数据接口与基于地图服务的面数据接口等服务。基于LBS接口参数包括选取点经纬度或位置名称、时间序列等,基于地图服务接口参数包括市县区名称、时间序列等,同时所有接口需传入
16、唯一认证参数作为安全校验标识。系统查询结果格式为JSON、图形、XML等格式,调用案例如图7所示。图7 某位置天气实况信息3.2 系统数据发布功能测试系统数据服务的发布通过云平台,将气象大数据最终以数据接口形式发布。发布为基于位置的数据图5 数据接口申请图6 数据接口审核69本栏目责任编辑:王力数据库与大数据技术Computer Knowledge and Technology电脑知识与技术第19卷第1期(2023年1月)第19卷第1期(2023年1月)接口,采用将相关气象网格产品写入HBase的办法提升网格点位数据的调用效率;发布为海量气象图形的数据接口,采用CDN技术提升接口调用速度;其他例如JSON、XML等数据则通过OSS位置链路直接发布。本文对基于云平台的气象数据共享系统接口服务状态进行抽样测试,结果见表1,可以看出数据服务在保持高请求数的同时还维持较低的异常率,综合响应时间保持数十毫秒级,详情如图8,整体具备了延迟率与出错率较低、负载能力较强等特点。表1 接口服务状态样本测试结果接口类型基于位置的指定时间单要素气象实况基于位置的范围时间单要素气象预报基于位置的固定时间临近站