金素文 刘俊娜 江双五 孔芹芹
【摘要】为了实现安徽省国家级、区域级自动气象站,自动土壤水分观测站等各类综合观测资料的数据采集存储、加工处理、报文生成等功能,利用最新数据库镜像、数据同步技术,设计、建成了一套高效、稳定、安全、易用的省级综合观测资料基础数据库系统。该数据库系统提供API接口和Web Service接口两种数据接口访问模式,可满足现有气象业务、科研对实时综合观测数据的服务需求。
【关键词】综合观测;基础数据库;设计与实现
The Design and Implementation of Anhui Province Comprehensive Observation Database System
Anhui Province Meteorological Information Center Jin Suwen Liu Junna Jiang Shuangwu Kong Qinqin
Abstract:In order to implement the functions of data acquiring,storage,processing,message generating for comprehensive stations such as regional automatic weather stations,national automatic weather stations,automatic soil moisture observation stations etc.in Anhui province and neighboring provinces,to solve the problems of effectiveness,stability,security and other aspects existed in provincial regional weather station database,refer to advanced meteorological data classification management mode,use the latest database mirroring,data synchronization technology,design and built a set of efficient,stable,safe,easy-to-use comprehensive observation database system.The database system provides two data access interface mode,API interface and Web Service interface,which can meet the existing meteorological service,scientific research service requirements for real-time comprehensive observation data.
Keywords:comprehensive observation;database;design and implementation
1.引言
安徽省气象局经过多年的现代化建设,建成了由2004个区域自动气象站、81个国家级自动气象站、85个土壤水分观测站等多种观测设备构成的综合地面气象观测站网,为有效监测中尺度天气系统提供了先进的技术手段。如何有效利用现有气象观测数据为气象灾害监测预警服务提供基础数据成为综合气象观测数据库建设的首要任务。经过多年的改进和完善,初步了安徽省区域站网数据库,取得了良好的服务和应用效益。但随着气象业务的发展,现有的安徽省区域站网数据库已经不再能够满足需求,主要体现在以下几个方面:
(1)系统建设缺乏总体规划,流程复杂,各节点之间的界限不清、环节较多,不利于系统的维护和管理,也不能满足用户对数据时效和数据一致性的要求。
(2)数据库结构的设计落后,库表结构不能兼容新型区域自动站和新长Z文件数据格式需求。
(3)数据库系统缺乏有效控制和管理,无法对用户有效实施数据库系统访问方式、访问时间、访问内容和访问安全等管理。
因此,需要结合现有的省级气象通信业务流程,整合原有的省级区域站网数据库,建设能够满足全省业务部门对综合观测资料实时获取及数据一致性需求的安徽省综合观测数据基础数据库系统。
图1 数据库系统逻辑结构图
2.数据库系统设计
2.1 功能设计
安徽省综合观测资料基础数据库系统包括数据源层、数据库中间层、数据库层、数据应用层三个逻辑层,如图1所示。数据源层提供各类综合观测资料,包括区域级自动站原始数据、国家级自动站数据(含定时、日数据、辐射和日照)、重要天气信息、自动土壤水分资料、风塔数据、酸雨数据、闪电定位、GPS等资料。数据库中间层完成综合观测数据的采集处理以及整个数据流程的监控,包括数据收集处理分发子系统、数据入库子系统、数据加工子系统、报文生成子系统。数据库层用以存储、管理各类观测数据。数据应用层通过标准的数据接口,为各应用服务平台提供数据访问服务。
2.1.1 采集处理子系统
该子系统包括采集和处理模块,采集模块指基于收集策略实时地收集到各类气象数据。处理模块指根据气象通信业务规定和规范要求,对收集到的数据进行格式检查和数据标准化处理,包括文件格式检查、文件完整性等。
2.1.2 数据入库子系统
该子系统由报文读取、报文转译、格式检查、数据入库等模块组成。报文读取模块读取数据采集模块传递过来的原始数据文件,将文件中的报文信息读取到内存,报文转译及格式检查模块转译报文信息并检查格式,同时利用气候极值等检查方法做质量控制,数据入库模块质控后的数据以设定的信息组织方式存入数据库。
2.1.3 数据加工子系统
数据加工子系统读取站点信息和原始数据,根据业务规定的计算方法进行数据汇总计算,并将计算结果存入数据表,该过程由数据库存储过程实现。
2.1.4 报文生成子系统
报文生成子系统定时从数据加工后的数据产品表中提取指定的要素值,按照气象报文文件格式生成报文文件,然后根据不同的优先级将报文文件实时地分发到不同的目的地址。
2.1.5 业务监控子系统
利用各子系统产生的运行日志对整个数据流程的各个环节进行实时监控,发现问题时以语音、短信告警等方式通知值班维护人员。
2.2 物理架构设计
系统包括1个数据收集服务器、2个数据加工处理服务器、2个数据存储服务器、1个数据接口服务器共计6个服务器。数据收集服务器运行数据采集处理子系统和数据入库子系统,数据加工处理服务器由2个互为镜像的生产服务器组成,运行数据加工子系统、报文生成子系统和生产数据库,数据存储服务器由实时库和历史库组成。实时库复制生产数据库内的产品数据,供外部系统访问;历史库用以存储归档的历史数据;数据接口服务器用以向系统外程序提供访问实时库数据的接口。如图2所示。
为确保生产数据库安全可靠,采用数据库镜像技术,构建互为镜像备份的生产数据库。生产数据库中应用程序自动检测,当发现主生产数据库故障时自动连接到镜像数据库继续工作,以保障生产库7乘24小时不间断运行。实时库通过数据库复制技术与生产库数据保持实时同步。
2.3 数据库结构
安徽省综合观测资料基础数据库系统中存储的数据主要为结构化气象要素资料,如气温、降水量、日照时数、相对湿度、风速风向等。存储结构设计为由资料时间、空间属性字段以及温度、气压等要素和各要素质控码等字段组成。数据库中设计三类基本数据表,分别是站点元数据表、原始数据表和产品表。
图2 数据库系统物理结构图
2.3.1 站点元数据表
站点元数据是指各类气象站站点相关信息,在安徽省综合观测资料基础数据库中站点元数据贯穿于整个系统建设的各个环节之中,站点元数据的设计充分考虑到各类气象站站点的特征和属性。元数据表包括站点表、站点属性表和站点属性关联表。站点表存储所有站点的基本信息,站点属性表存储预先定义的属性,站点属性关联表是站点与具体属性之间的外键关联表。
2.3.2 原始数据表设计
原始数据表存储各种观测数据报文的原始数据,将原始报文按照相应的结构拆分成各要素代码存储到原始数据表中,基本上保存报文中的原始代码信息不变。
2.3.3 产品表设计
产品表是对原始数据表进行加工后产生的数据表,如区域自动气象站十分钟数据产品表、常规要素产品表、分钟降水量产品表、日数据汇总产品表等。对原始数据表加工后形成的产品表将用于生成气象数据交换报文,并提供给用户直接使用,所以应该考虑数据表结构、字段属性设计的合理性以及数据信息的完整性。
表1 区域自动气象站十分钟数据产品表
名称 代码 数据类型 备注
记录标示 D_RECORD_ID bigint
资料标示 D_DATA_ID varchar(30)
入库时间 D_IYMDHM datetime
更新时间 D_UPDATE_TIME datetime
资料时间 D_DATA_TIME datetime 唯一索引
区站号_字符 V01301 varchar(10) 唯一索引
纬度 V05001 float
经度 V06001 float
资料观测年 V04001 smallint 唯一索引
资料观测月 V04002 smallint 唯一索引
资料观测日 V04003 smallint 唯一索引
资料观测时 V04004 smallint 唯一索引
资料观测分 V04005 smallint
2分钟平均风向 V11290 int
2分钟平均风速 V11291 float
……
2.4 访问接口
数据库访问接口是位于业务软件和数据库平台的一个中间层,向上为业务应用软件提供服务,向下访问数据库平台获取数据。安徽省综合观测资料基础数据库系统为各级用户提供统一、标准的访问接口,方便用户高效获取数据,同时可对用户行为进行有效管理。
2.4.1 用户权限管理
系统为不同的用户提供拥有不同访问权限的接口,实现数据库访问分级管理,权限设置包括用户名/密码、用户的IP控制、用户可访问资料的时间跨度、用户可访问资料的要素种类、用户可访问资料的时间频度、用户可访问的站点。
表2 访问控制元数据表
名称 代码 数据类型 备注
记录标示 D_RECORD_ID bigint 唯一索引
用户标示 USER_ID int
用户名 USER_NAME varchar(30)
用户密码 USER_PASS varchar(30)
用户访问地址 USER_IP varchar(200)
用户类型 USER_TYPE varchar(30)
用户启用状态 USER_STATUS smallint
2.4.2 接口访问方式
系统提供API程序调用(C#)接口和Web Service接口两种接口访问方式,API接口使用C#封装调用内部函数API,Web Service接口使用WS封装调用内部函数API。如图3所示。
图3 省级区域自动站数据库访问接口功能图
2.4.3 接口种类
根据接口访问的数据对象可将访问接口分为元数据接口和产品接口两类。系统提供三个元数据接口,分别是指定站号查询站点的更新时间以及站点详细信息、指定区域名称模糊查询属于该区域的站点详细信息、指定区域代码查询属于该区域的站点详细信息。产品接口也就是数据检索接口,包括一般站点资料接口、层次站点资料接口、专业专项定制接口。一般站点资料接口通过时间点或时间段、台站号、区域代码或经纬度区域范围获取数据表中存储的观测数据信息。层次站点资料接口针对地温等分层要素,通过时间点或时间段、台站号、区域代码或经纬度区域范围获取该要素相应层次的观测数据信息。专业专项定制接口是气象产品定制接口,主要针对非气象部门的行业用户按需求定制、获取如旅游气象、交通气象、山洪地质灾害等特定条件下相关站点的观测数据信息。
3.系统技术路线与实现
3.1 数据库软件
数据库软件采用的是SQL Server 2008数据库系统,该版本改进了数据库镜像功能,提供了更可靠的数据库镜像的平台,压缩了输出的日志流,使数据库镜像所要求的网络带宽达到最小,而且系统可以更细粒度的对数据库管理系统日志记录的不同阶段所耗费的时间进行计时。
3.2 存取策略
考虑到气象信息数据量大、保存时间较长等特点,采用对表和索引进行分区管理的技术,即将数据量较大的表或索引按照某种策略划分成多个相对较小的、各自独立的存储空间,分别对其进行独立的管理和操作来提高数据读写操作和查询速度。生产数据库设计保存35天的数据,按日划分区域。实时库设计保存7天的数据,按日来划分区域。历史库设计保存13个月的资料,按月来划分区域。数据库分区可提高数据检索速度、增强数据的可用性,同时在系统的安全性、灵活性以及可维护性等方面都有较大提高。
3.3 数据库镜像
数据库镜像技术实现一个数据库的两个副本,分别驻留在不同的SQL Server数据库引擎实例上。其中一个引擎实例作为主体服务器,而另一个引擎实例则充当镜像服务器。同步数据库镜像会话时,数据库镜像提供了热备用服务器,可支持在已提交事务不丢失数据的情况下进行快速故障转移。为支持自动故障转移,在高安全性模式下配置数据库镜像会话,并且在只读库上配置了见证服务器。见证服务器是 SQL Server 的可选实例,它能使高安全性模式会话中的镜像服务器识别出是否要启动自动故障转移。
3.4 数据复制
安徽省综合观测资料基础数据库系统通过实时只读库、历史库向用户提供服务。为满足用户对数据时效和数据一致性的要求,系统必须及时将原始数据的更正信息同步至实时只读库、历史库等不同数据库服务器上以保证数据的一致性,系统采用数据库复制技术来实现这个功能。SQL SERVER提供了内置的复制能力,在复制技术的支持下系统可以快速维护不同数据库服务器上的多个拷贝,从而保证数据的一致性,同时也可满足时效要求。
3.5 系统开发与测试结果
按照安徽省综合观测资料基础数据库系统的设计要求,2014年5月完成数据库系统的建设并投入业务应用,该系统实现了全省各类自动气象站观测资料的实时入库、存储和共享任务。经测试,全省2000个左右的区域级自动站的分钟数据能够一次性入库,入库时间在40秒以内,数据同步可在8-11秒之内完成。数据库复制技术能够实现只读库的任意扩展,扩展的只读库能够实现数据库资源的负载均衡和在线备份。数据访问接口设计提高了数据库访问效率,用户使用接口获取全省24小时小时数据、约5万条记录可在30秒内完成。
4.小结
文中设计的安徽省综合观测资料基础数据库系统实现了全省国家级自动站、区域自动气象站、土壤水分观测站等多种观测数据的采集处理、数据入库、数据加工、报文生成、数据监控、数据服务等功能,满足了数据库系统的高可靠性、高稳定性和易维护性等要求。系统的建成,对推进安徽省气象信息共享平台、安徽省综合观测数据应用平台、业务值班监控系统、数据质量控制系统等业务系统的建设奠定了基础,其设计理念对今后省级基础数据环境的建设也有着很好的借鉴意义。
参考文献
[1]王宏记,王海军,曾又枝等.省级气象信息综合数据库系统的设计与实现[J].湖北气象,2008,27(3):253-256.
[2]马渝勇,徐晓莉,宋智等.省级气象信息共享系统的设计与实现[J].应用气象学报,2011,22(4):505-512.
[3]高峰,赵芳.元数据技术在MDSS 实时气象数据库系统建设中的应用[J].气象科技,2006,34(Z1):22-26.
作者简介:金素文(1979—),女,工程师,主要从事气象信息系统设计与开发以及气象信息业务研究。