1、数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering258中国气象局明确提出,大力发展智慧气象,就是要实现更智慧、更个性、更便捷、更智能的气象服务,践行气象工作“以人为本”的基本理念。与此相呼应,中国各地积极推进智能化、个性化、互动式气象服务,推进大数据、云计算等先进技术在精细化预报、分区预警、灾害影响预报和风险预警中的应用,开发精细化气象服务产品,将气象云服务终端延伸到气象灾害应急指挥部门,基于手机客户端、微信的个性化定制服务等新的气象服务手段不断涌现。智能网格预报、多源数据融合技术的
2、发展,带来了精细网格数据的应用。利用精细网格数据,结合行业、用户需求研制高时空分别率的服务产品,推动气象服务向精细化、智能化不断发展。因此,推动精细化气象服务业务体系建设显得十分重要。1 精细化气象服务系统架构设计系统总体架构采用分层设计,从下到上分为物理层、数据层、服务层、应用层、用户层。物理层:从系统运行稳定可靠性、安全性、并发响应速度等多方面考虑,采用分布式基础框架,分为数据库集群与应用服务器集群,外接存储阵列,满足存储容量动态扩展。数据层:主要是对原始数据(数据库或者服务产品文档等存放数据的形式)的操作层,这些操作包括存储、清洗、预计算等加工处理;根据业务数据类型划分,建立三个主体数据
3、库:分别为地面资料库(SurfaceDataDB),综合业务库(PubDataDB),精细网格数据库(PubServiceDB),通过对三个数据库中数据进行分类,同时考虑其存取效率要求,关系性数据主要采用 MS SQL 数据库进行存储,非关系性数据采用 PostgreSQL 进行存储。服务层:是用户接口或 Web 客户端与数据库之间的逻辑层,所有业务对象在此实例化,服务层是生成并操作接收信息的业务规则和函数的集合,通过业务规则完成该任务,并由此被封装到在物理上与应用程序逻辑本身相独立的组件中,通过 API 接口实现数据访问服务。应用层:应用层是各类具体业务操作的集合,由若干个特定应用服务元素(
4、SASE)和一个或多个公用应用服务元素(CASE)组成,各类具体业务操作在本层中实现,同时收集及处理各类原始业务数据。2 精细化气象服务系统设计与实现系统采用面向服务的架构(SOA),符合 Web API、Web Service 标准的访问接口。系统设计坚持“集中、协同、一体化”的技术路线,系统间的交互采用面向服务(SOA)架构的设计思想,采用组件式开发模式,保证各功能模块间是低耦合、高内聚模式,通过重用面向功能的模块,快速响应业务需求变化,提升信息化支撑业务能力。采用 B/S 模式、前后端分离开发模式,以.Net技术标准构建应用平台,采取 JSON 等技术进行数据的封装、共享,遵循业界先进、
5、成熟的技术标准。2.1 精细化数据存储库的选择在当前大数据时代的背景下,与位置有关的数据占比和使用率会愈来愈大。气象数据具有天然的地理空间属性,网格化数据分辨率的提高,使得数据量也在以几何数量级增加。因此,需要考虑到数据增加时的承载能力提升问题。目前,气象网格数据采用 Grib2 或 Netcdf数据格式进行数据压码,形成文件提供用户端使用,用户端解码形成二维数据集开展应用工作。在需要块数据的应用场景下,解码形成的二维数据集访问效率很高。但块数据的应用在公共气象服务中需求很少,大多数应用场景是用户需求高度定制化,往往是需要从庞大数量格点中抽取其中一个或一部分数据。另一个问题是用户端的需求往往还
6、需要叠加时间维度,二维数据集存储形式会造成记录庞大,访问效率低下。异构数据库架构的精细化气象服务系统设计与实现李晓勇李红玉熊胤帆黄忠华(泸州市气象局 四川省泸州市 646000)摘要:本文基于业务应用,介绍了精细化气象服务系统建设涉及的系统架构、精细数据环境构建、精细化气象服务功能实现、数据产品共享、前端系统开发等技术,提供了业务解决方案。关键词:精细化;气象服务系统;设计数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering259选择,既能很好地与已有系统相衔接,又能满足不断增长的新需求
7、,达到数据资源的高度共享和协同处理,对数据资源的访问更加透明、高效、可靠,网格数据处理的能力更强,更好地满足更广泛的数据处理需求。业务项目中,选择了 Microsoft SQL Server 和 PostgreSQL 数据库系统,分别侧重进行多源数据的组织、存储。其中,Microsoft SQL Server 衔接原有业务系统,存储气象网格数据初步解码形成的格点场二维(Lng,Lat)数据集,典型的表结构如表 1 所示。表 1:网格数据表结构字段说明DateTime资料时次Ele要素名称Lon1格点起始经度Lat1格点起始纬度Lon2格点结束经度Lat2格点结束纬度Dx格点经向间距Dy格点纬向
8、间距Nx径向格点数Ny纬向格点数Data数据集PostgreSQL 起源于伯克利(BSD)的数据库研究计划,是最重要的开源数据库产品开发项目之一,有着非常广泛的用户。PostgreSQL 在关系型数据库的稳定性和性能方面均优与 MySQL,同时 PostgreSQL 也兼具NoSQL 特性,超过了原来只使用 NoSQL 带来的开发自由性。PostgreSQL 给到开发人员新的有力的解决方案,从非结构化数据开始着手,当需求变化或增多时,可以将结构化和非结构化的数据在同一个数据库里面进行有机结合,而且是在一个具有 ACID 特性的环境中。同时,PostgreSQL 增加了存储管理空间数据的能力,提
9、供了包括:点(POINT)、线(LINE)、线段(LSEG)、方形(BOX)、多边形(POLYGON)和圆(CIRCLE)基本的集合实体类型空间数据支持能力,定义了一系列的函数和操作符,引入空间数据索引 R-tree,来实现几何类型的操作和运算。在气象应用中其典型的数据表结构如表 2。表 2:基于地理空间数据存储表结构字段名数据类型说明IDInt4记录标识GeoPoint网格地理坐标DataJsonb数据记录2.2 精细网格数据的时间序列化处理与存储建设高时空分辨率的网格时间序列数据集数据量庞大,如何存储和高效检索这些气象数据越来越成为一个难题。传统的方案常常采用关系型数据库加文件系统的方式实
10、现这类气象数据的存储和实时查询,这种方案在可扩展性、可维护性和性能上都有一些缺陷,随着数据规模的增大缺点越来越明显。相比之前的方案,利用分布式 NoSQL 存储来解决海量气象数据的存储和实时查询问题,可以支撑更大规模的数据量并提供更好的查询性能,并且在稳定性、可管理性等方面,也得到了显著的提升。PostgreSQL 由于兼具 NoSQL 特性,用于构建本地精细网格数据环境具有明显优势。精细网格数据存储采用表格存储方式,将网格化数据转换成非结构化数据(数据模型如图 1)。每行数据分为主键和属性列,通过主键来标示一行数据,每个网格转换为表格中的一行,每个气象要素转化为一个属性列,要素的时间序列值构
11、成了属性的数据序列,实现了降低数据维度作用,同时提升了数据读写效率。非结构化数据的应用大幅降低了数据记录数,同时还可对属性列的数据序列进行压缩处理,进一步提高数据检索效率。智能网格预报数据集示例:Lat:23.50,Lng:94.85,Items:Time:2021-11-17 08:00:00,RH:85,Rain:0.0,TEMP:21.7,Cloud:29,WindD:337.0,WindF:1.7,RH_Max:null,RH_Min:null,Weather:晴,TEMP_Max:null,TEMP_Min:null,Time:2021-11-17 11:00:00,.,Addres
12、s:null,StartTime:2021/11/17 8:00:00实况分析历史数据集示例:图 1:非结构化数据模型数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering260timeSeries:2009-01-02,2009-01-03,.,eleItems:eleName:Temp_Avg,values:7.2,7.3,7.6,7.0,.,eleName:Temp_Max,values:8.6,8.6,9.5,8.7,.,eleName:Temp_Min,values:6.4,6.
13、1,6.4,6.5,.,eleName:Pre_Sum,values:0.0,0.0,0.0,.,eleName:Pre_Max,values:0.0,0.0,0.0,0.5,0.9,.,eleName:RH_Avg,values:78.0,77.0,74.0,88.0,.,eleName:RH_Min,values:61.0,68.0,62.0,75.0,.,eleName:Wind_Avg,values:1.9,1.6,1.6,1.6,1.5,.,.,.2.3 数据共享服务异构数据库架构下,数据的共享服务需要对各类数据进行集成。数据库数据集成的基本思想是:数据库集成的目的是为用户提供涉及多
14、数据库的统一的查询机制,让用户以统一的方式来使用来自不同类型不同厂商的数据库的数据,这样可屏蔽各数据库的结构、运行环境上的差异、网络分布状况和具体的物理位置,同时保证各个数据库的独立性和数据的安全。前端开发技术的应用,使得 Server 端更加专注于数据业务,可以同时为多种前端共享数据,降低数据共享的复杂度。目前,基于 Web 的数据共享主要有Web Service、Web API 两类技术路线。项目中应用 Web Service提供端到端的场景提供服务,支持C/S架构应用;Web API 则为应用到应用的场景提供服务,支持 B/S 架构应用。2.3.1 基于 Web Service 的数据共
15、享WebService 是一种跨编程语言和跨操作系统平台的远程调用技术。主要依赖于 XML-RPC 和 SOAP(简单对象访问协议:Simple Object Access Protocal)等标准,通过 HTTP 协议进行交互。2.3.2 基于 Web API 的数据共享Web API 由 Web Service 演变而来,它们两者关系是所有 Web Service 都是 API,但并非所有 API 都是 Web Service。其次,两者都有利于信息的传输,但Web API 比 Web Service 更具灵活性。Web API 一般基于 HTTP/REST 来实现,它不提供服务调用标准和
16、服务发现标准,参数可以是 JSON,XML 或者简单文本,响应结果一般是 JSON 或 XML。Web Services 的架构要比Web API 臃肿得多,它的每个请求都需要封装成 XML并在服务端解封,因此它不易开发且消耗更多资源,性能也不及 Web API。所以,获取远程数据的方式正在从Web Services 向 Web API 转变。2.3.3 大数据的缓存共享服务器和应用端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能。采用.net framework 缓存机制,将需要大量服务器资源来创建的对象存储
17、在内存中,缓存这些类型的资源会大大改进应用程序的性能。精细化气象服务系统对最近时次实时格点场数据在服务端进行缓存,提升应用访问效率。缓存添加项采用如下方式:通过键和值直接设置项,使用 Insert 方法向缓存添加项。设置项在一段时间以后(弹性过期)或在指定时间(绝对过期)过期。对于实时格点场数据,采用以上缓存机制,以消耗服务端内存资源的方式获得用户端访问的高效。缓存更新机制以数据的更新时长作为缓存时长,实行定期刷新。客户端优先访问缓存数据,当缓存数据异常时,触发相应服务接口从数据库直接更新数据(见图 2)。2.3.4 数据访问安全认证机制允许用户使用授权账号访问 API,作为安全认证的信息系统
18、中,对用户身份的鉴定是非常重要的事情。令牌(Token)安全体系中非常重要的部分,在计算机身份认证中是令牌的意思,一般作为邀请、登录以及安全认证使用。Token 其实说的通俗点就是“暗号”,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。项目中需要做登录的话,那么 token 成为前后端唯一的一个凭证。可以设定过期时图 2:大数据的实时缓存机制数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering261间,可以追踪令牌使用过程,可以通过令牌控制用户禁止或允许使用业务
19、系统。系统通过 Token 认证机制实现用户认证和鉴权,并辅以安全日志记录用户信息和访问行为,实现数据访问的安全监管。3 精细化气象服务功能实现系统的精细化服务功能通过大量的 API 来承载,其功能完善是一个动态扩展的过程,以适应新业务、新用户带来的新的功能需求。所有 API 均以 JSON 数据类型输出结果集,统一数据服务规范。3.1 基于地理空间数据检索工具集通过缓存或查询数据库数据,实现包括空间点(POINT)、线(LINE)、线段(LSEG)、方形(BOX)、多边形(POLYGON)和圆(CIRCLE)基本的集合实体类型空间数据的检索以及格点快速定位、地理投影转换、逆地址解析等基础工具
20、。3.2 站点实况与格点分析实况融合应用策略根据用户的地理位置信息,基于各类质控后的实况观测数据和智能网格实况分析产品,采用基于用户目标位置的统一、精细化的实况服务产品。基于用户位置需求的实况数据服务规则,采取水平距离优先,兼顾气象要素特性的策略。对于任意用户目标点,优先根据其与周围地面观测站的水平距离关系,利用实况观测资料进行服务;当该站不具备用户需求的有效观测要素时,利用网格实况分析产品中相关气象要素进行服务。同时考虑气象要素特性,采用双线性插值法或最邻近插值法进行气象要素的处理获取。基于站点观测数据和智能网格实况分析产品,进行用户位置实况信息提取时,优先考虑用户目标点与观测站点的空间位置
21、关系,以水平距离阈值(1km)判定,其次根据气象要素特性采取不同的服务策略。空间位置关系包括需求点与观测站点的水平距离和海拔高度差两种空间关系。其中,气温基于高程差进行海拔订正,气温变率采用固定参数 0.65/100m。具体公式为:Ti=To+(Ho-Hi)/100*0.65 (1)其中,Ti 为用户目标点气温,To 为站点或格点观测气温,Hi 为目标点海拔高度(单位为米),Ho 为站点或格点海拔高度(单位为米)。当基于智能网格实况分析产品服务时,依据气象要素特性采用不同的插值算法获取目标点要素值。3.2.1 连续性变量对于连续性变量,以目标点周围四个格点的要素值作为输入值,采用双线性插值方法
22、得到目标点要素值。双线性插值方法公式为:(2)其中,(3)(4)用户目标点与周围 4 个格点位置关系如图 3 所示,目标点 P=(x0,y0),4 个格点分别为 Q11=(x1,y1)、Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2),对应气象要素值分别F(x0,y0),F(x1,y1),F(x2,y1),F(x1,y2),F(x2,y2)。本节中,i=1,2,j=1,2 时表示格点,i=0,j=0 时表示用户目标点。3.2.2 非连续性变量对于非连续性变量采用最近邻插值法提取得到目标点气象要素值。3.3 基于地理位置精细服务功能抽取指定格点综合数据信息,融入服务算法,经
23、数据挖掘,突出气象数据服务的专业化和精细化功能。综合应用地面观测、网格实况分析、雷电、预警信号、卫星遥感、智能网格预报等数据,引入 30 米精度 DEM数据实现气象要素高精度海拔订正;引入百度逆地址解图 3:双线性插值方法示意图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering262析接口,实现地理位置到行政区划地址解析。提供任意位置监测实况和预警预报信息以及重要天气事件监测功能,包括预警信号、高温、低温冷冻、强降水、大风、2km 范围内雷电,未来 2 小时降水预报等。3.4 高风险天
24、气区域追踪以精细网格数据环境为基础,应用阈值思想,在地理空间实现各类高影响天气区域边界识别,实现大风、低能见度、强降水、高温、低温冷冻等高影响天气自动追踪。通过叠加服务目标对象,实现精细化的高影响天气预警服务。3.5 专业用户定制化功能针对行业用户需求定制专业数据集和服务产品,以满足个性化需求为目标。4 前端服务平台研发思路服务端通过 JSON(JavaScriptObject Notation)数据接口提供了所有监测、预报、预警信息,使用 ArcGIS、leaflet 等地图引擎可创建各种不同形式的地图,实现基于 GIS 背景下的气象数据产品的可视化渲染。以精细化数据环境为基础,各种专业化服
25、务平台均能快速搭建,基于数据和应用需求催生应用平台建设。采用前后端分离开发模式,以.Net Framework、J2EE 技术标准构建应用平台。前端平台根据应用场景分别开发建设Web平台、智能终端 APP、微信小程序等。如图 4 所示。5 结论气象服务加速向精细化方向发展,构建支持高效、便捷访问的精细数据环境尤为重要。通过算法融入,挖掘高价值信息,构建丰富的精细化服务产品,是精细化气象服务系统的数据基础。精细化气象服务系统采用SOA 架构,通过分层设计可以清晰地表达业务逻辑,满足各类应用的需求。通过 Web API 承载服务产品向用户端的开放,能够更好地实现数据和算法的融合,提升服务能力的可扩
26、展性。参考文献1 何险峰,马力,罗永康,等.近实时公共气象服务分析图网站发布 J.气象科技,2012,40(4):578-584.2 张涛.基于 LAPS/STMAS 的多源资料融合及应用研究 D.南京:南京信息工程大学,2013.3 刘志红,柳锦宝,王增武,等.四川省山洪地质灾害气象预警系统的设计与实现 J.测绘与空间地理信息,2013(z1):197-200.4 侯建民,郭凯,崔满丰,等.基于可视化技术的地震信息服务系统设计与实现 J.中国地震,2022,2022(3):574-584.5 雷鸣,陈凯华,武国良,等.基于分布式技术的气象大数据共享服务系统设计与实现 J.计算机应用与软件,2
27、022,039(007):19-25.6 宋智,徐晓莉,张常亮,等.应用分布式存储技术优化省级 CIMISS 数据服务能力 J.气象科技,2019,047(003):433-438。7 陈华,徐坚,肖志远,等.水文大数据共享平台研究与设计J.水资源研究,2018,007(001):10-18.8 詹泽玲,黄毅斌,邱树伟.基于 Spring Boot 和MyBatis-Plus 的智能社区医疗服务系统的设计与实现 J.计算机与网络,2022,2022(3):66-69.作者简介李晓勇(1970-),男,四川省万源市人。大学本科学历,高级工程师。研究方向为气象信息技术。李红玉(1972-),女,四川省合江县人。大学本科学历,高级工程师。研究方向为应用气象。熊胤帆(1992-),男,四川省江阳区人。大学本科学历,工程师。研究方向为气象信息技术。黄忠华(1972-),男,四川省沿滩区人。大学本科学历,高级工程师。研究方向为天气与气候。图 4:前后端分离开发模式