金素文 劉俊娜 江雙五 孔芹芹
【摘要】為了實現(xiàn)安徽省國家級、區(qū)域級自動氣象站,自動土壤水分觀測站等各類綜合觀測資料的數(shù)據(jù)采集存儲、加工處理、報文生成等功能,利用最新數(shù)據(jù)庫鏡像、數(shù)據(jù)同步技術,設計、建成了一套高效、穩(wěn)定、安全、易用的省級綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)。該數(shù)據(jù)庫系統(tǒng)提供API接口和Web Service接口兩種數(shù)據(jù)接口訪問模式,可滿足現(xiàn)有氣象業(yè)務、科研對實時綜合觀測數(shù)據(jù)的服務需求。
【關鍵詞】綜合觀測;基礎數(shù)據(jù)庫;設計與實現(xiàn)
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.引言
安徽省氣象局經(jīng)過多年的現(xiàn)代化建設,建成了由2004個區(qū)域自動氣象站、81個國家級自動氣象站、85個土壤水分觀測站等多種觀測設備構(gòu)成的綜合地面氣象觀測站網(wǎng),為有效監(jiān)測中尺度天氣系統(tǒng)提供了先進的技術手段。如何有效利用現(xiàn)有氣象觀測數(shù)據(jù)為氣象災害監(jiān)測預警服務提供基礎數(shù)據(jù)成為綜合氣象觀測數(shù)據(jù)庫建設的首要任務。經(jīng)過多年的改進和完善,初步了安徽省區(qū)域站網(wǎng)數(shù)據(jù)庫,取得了良好的服務和應用效益。但隨著氣象業(yè)務的發(fā)展,現(xiàn)有的安徽省區(qū)域站網(wǎng)數(shù)據(jù)庫已經(jīng)不再能夠滿足需求,主要體現(xiàn)在以下幾個方面:
(1)系統(tǒng)建設缺乏總體規(guī)劃,流程復雜,各節(jié)點之間的界限不清、環(huán)節(jié)較多,不利于系統(tǒng)的維護和管理,也不能滿足用戶對數(shù)據(jù)時效和數(shù)據(jù)一致性的要求。
(2)數(shù)據(jù)庫結(jié)構(gòu)的設計落后,庫表結(jié)構(gòu)不能兼容新型區(qū)域自動站和新長Z文件數(shù)據(jù)格式需求。
(3)數(shù)據(jù)庫系統(tǒng)缺乏有效控制和管理,無法對用戶有效實施數(shù)據(jù)庫系統(tǒng)訪問方式、訪問時間、訪問內(nèi)容和訪問安全等管理。
因此,需要結(jié)合現(xiàn)有的省級氣象通信業(yè)務流程,整合原有的省級區(qū)域站網(wǎng)數(shù)據(jù)庫,建設能夠滿足全省業(yè)務部門對綜合觀測資料實時獲取及數(shù)據(jù)一致性需求的安徽省綜合觀測數(shù)據(jù)基礎數(shù)據(jù)庫系統(tǒng)。
圖1 數(shù)據(jù)庫系統(tǒng)邏輯結(jié)構(gòu)圖
2.數(shù)據(jù)庫系統(tǒng)設計
2.1 功能設計
安徽省綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)源層、數(shù)據(jù)庫中間層、數(shù)據(jù)庫層、數(shù)據(jù)應用層三個邏輯層,如圖1所示。數(shù)據(jù)源層提供各類綜合觀測資料,包括區(qū)域級自動站原始數(shù)據(jù)、國家級自動站數(shù)據(jù)(含定時、日數(shù)據(jù)、輻射和日照)、重要天氣信息、自動土壤水分資料、風塔數(shù)據(jù)、酸雨數(shù)據(jù)、閃電定位、GPS等資料。數(shù)據(jù)庫中間層完成綜合觀測數(shù)據(jù)的采集處理以及整個數(shù)據(jù)流程的監(jiān)控,包括數(shù)據(jù)收集處理分發(fā)子系統(tǒng)、數(shù)據(jù)入庫子系統(tǒng)、數(shù)據(jù)加工子系統(tǒng)、報文生成子系統(tǒng)。數(shù)據(jù)庫層用以存儲、管理各類觀測數(shù)據(jù)。數(shù)據(jù)應用層通過標準的數(shù)據(jù)接口,為各應用服務平臺提供數(shù)據(jù)訪問服務。
2.1.1 采集處理子系統(tǒng)
該子系統(tǒng)包括采集和處理模塊,采集模塊指基于收集策略實時地收集到各類氣象數(shù)據(jù)。處理模塊指根據(jù)氣象通信業(yè)務規(guī)定和規(guī)范要求,對收集到的數(shù)據(jù)進行格式檢查和數(shù)據(jù)標準化處理,包括文件格式檢查、文件完整性等。
2.1.2 數(shù)據(jù)入庫子系統(tǒng)
該子系統(tǒng)由報文讀取、報文轉(zhuǎn)譯、格式檢查、數(shù)據(jù)入庫等模塊組成。報文讀取模塊讀取數(shù)據(jù)采集模塊傳遞過來的原始數(shù)據(jù)文件,將文件中的報文信息讀取到內(nèi)存,報文轉(zhuǎn)譯及格式檢查模塊轉(zhuǎn)譯報文信息并檢查格式,同時利用氣候極值等檢查方法做質(zhì)量控制,數(shù)據(jù)入庫模塊質(zhì)控后的數(shù)據(jù)以設定的信息組織方式存入數(shù)據(jù)庫。
2.1.3 數(shù)據(jù)加工子系統(tǒng)
數(shù)據(jù)加工子系統(tǒng)讀取站點信息和原始數(shù)據(jù),根據(jù)業(yè)務規(guī)定的計算方法進行數(shù)據(jù)匯總計算,并將計算結(jié)果存入數(shù)據(jù)表,該過程由數(shù)據(jù)庫存儲過程實現(xiàn)。
2.1.4 報文生成子系統(tǒng)
報文生成子系統(tǒng)定時從數(shù)據(jù)加工后的數(shù)據(jù)產(chǎn)品表中提取指定的要素值,按照氣象報文文件格式生成報文文件,然后根據(jù)不同的優(yōu)先級將報文文件實時地分發(fā)到不同的目的地址。
2.1.5 業(yè)務監(jiān)控子系統(tǒng)
利用各子系統(tǒng)產(chǎn)生的運行日志對整個數(shù)據(jù)流程的各個環(huán)節(jié)進行實時監(jiān)控,發(fā)現(xiàn)問題時以語音、短信告警等方式通知值班維護人員。
2.2 物理架構(gòu)設計
系統(tǒng)包括1個數(shù)據(jù)收集服務器、2個數(shù)據(jù)加工處理服務器、2個數(shù)據(jù)存儲服務器、1個數(shù)據(jù)接口服務器共計6個服務器。數(shù)據(jù)收集服務器運行數(shù)據(jù)采集處理子系統(tǒng)和數(shù)據(jù)入庫子系統(tǒng),數(shù)據(jù)加工處理服務器由2個互為鏡像的生產(chǎn)服務器組成,運行數(shù)據(jù)加工子系統(tǒng)、報文生成子系統(tǒng)和生產(chǎn)數(shù)據(jù)庫,數(shù)據(jù)存儲服務器由實時庫和歷史庫組成。實時庫復制生產(chǎn)數(shù)據(jù)庫內(nèi)的產(chǎn)品數(shù)據(jù),供外部系統(tǒng)訪問;歷史庫用以存儲歸檔的歷史數(shù)據(jù);數(shù)據(jù)接口服務器用以向系統(tǒng)外程序提供訪問實時庫數(shù)據(jù)的接口。如圖2所示。
為確保生產(chǎn)數(shù)據(jù)庫安全可靠,采用數(shù)據(jù)庫鏡像技術,構(gòu)建互為鏡像備份的生產(chǎn)數(shù)據(jù)庫。生產(chǎn)數(shù)據(jù)庫中應用程序自動檢測,當發(fā)現(xiàn)主生產(chǎn)數(shù)據(jù)庫故障時自動連接到鏡像數(shù)據(jù)庫繼續(xù)工作,以保障生產(chǎn)庫7乘24小時不間斷運行。實時庫通過數(shù)據(jù)庫復制技術與生產(chǎn)庫數(shù)據(jù)保持實時同步。
2.3 數(shù)據(jù)庫結(jié)構(gòu)
安徽省綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)中存儲的數(shù)據(jù)主要為結(jié)構(gòu)化氣象要素資料,如氣溫、降水量、日照時數(shù)、相對濕度、風速風向等。存儲結(jié)構(gòu)設計為由資料時間、空間屬性字段以及溫度、氣壓等要素和各要素質(zhì)控碼等字段組成。數(shù)據(jù)庫中設計三類基本數(shù)據(jù)表,分別是站點元數(shù)據(jù)表、原始數(shù)據(jù)表和產(chǎn)品表。
圖2 數(shù)據(jù)庫系統(tǒng)物理結(jié)構(gòu)圖
2.3.1 站點元數(shù)據(jù)表
站點元數(shù)據(jù)是指各類氣象站站點相關信息,在安徽省綜合觀測資料基礎數(shù)據(jù)庫中站點元數(shù)據(jù)貫穿于整個系統(tǒng)建設的各個環(huán)節(jié)之中,站點元數(shù)據(jù)的設計充分考慮到各類氣象站站點的特征和屬性。元數(shù)據(jù)表包括站點表、站點屬性表和站點屬性關聯(lián)表。站點表存儲所有站點的基本信息,站點屬性表存儲預先定義的屬性,站點屬性關聯(lián)表是站點與具體屬性之間的外鍵關聯(lián)表。
2.3.2 原始數(shù)據(jù)表設計
原始數(shù)據(jù)表存儲各種觀測數(shù)據(jù)報文的原始數(shù)據(jù),將原始報文按照相應的結(jié)構(gòu)拆分成各要素代碼存儲到原始數(shù)據(jù)表中,基本上保存報文中的原始代碼信息不變。
2.3.3 產(chǎn)品表設計
產(chǎn)品表是對原始數(shù)據(jù)表進行加工后產(chǎn)生的數(shù)據(jù)表,如區(qū)域自動氣象站十分鐘數(shù)據(jù)產(chǎn)品表、常規(guī)要素產(chǎn)品表、分鐘降水量產(chǎn)品表、日數(shù)據(jù)匯總產(chǎn)品表等。對原始數(shù)據(jù)表加工后形成的產(chǎn)品表將用于生成氣象數(shù)據(jù)交換報文,并提供給用戶直接使用,所以應該考慮數(shù)據(jù)表結(jié)構(gòu)、字段屬性設計的合理性以及數(shù)據(jù)信息的完整性。
表1 區(qū)域自動氣象站十分鐘數(shù)據(jù)產(chǎn)品表
名稱 代碼 數(shù)據(jù)類型 備注
記錄標示 D_RECORD_ID bigint
資料標示 D_DATA_ID varchar(30)
入庫時間 D_IYMDHM datetime
更新時間 D_UPDATE_TIME datetime
資料時間 D_DATA_TIME datetime 唯一索引
區(qū)站號_字符 V01301 varchar(10) 唯一索引
緯度 V05001 float
經(jīng)度 V06001 float
資料觀測年 V04001 smallint 唯一索引
資料觀測月 V04002 smallint 唯一索引
資料觀測日 V04003 smallint 唯一索引
資料觀測時 V04004 smallint 唯一索引
資料觀測分 V04005 smallint
2分鐘平均風向 V11290 int
2分鐘平均風速 V11291 float
……
2.4 訪問接口
數(shù)據(jù)庫訪問接口是位于業(yè)務軟件和數(shù)據(jù)庫平臺的一個中間層,向上為業(yè)務應用軟件提供服務,向下訪問數(shù)據(jù)庫平臺獲取數(shù)據(jù)。安徽省綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)為各級用戶提供統(tǒng)一、標準的訪問接口,方便用戶高效獲取數(shù)據(jù),同時可對用戶行為進行有效管理。
2.4.1 用戶權限管理
系統(tǒng)為不同的用戶提供擁有不同訪問權限的接口,實現(xiàn)數(shù)據(jù)庫訪問分級管理,權限設置包括用戶名/密碼、用戶的IP控制、用戶可訪問資料的時間跨度、用戶可訪問資料的要素種類、用戶可訪問資料的時間頻度、用戶可訪問的站點。
表2 訪問控制元數(shù)據(jù)表
名稱 代碼 數(shù)據(jù)類型 備注
記錄標示 D_RECORD_ID bigint 唯一索引
用戶標示 USER_ID int
用戶名 USER_NAME varchar(30)
用戶密碼 USER_PASS varchar(30)
用戶訪問地址 USER_IP varchar(200)
用戶類型 USER_TYPE varchar(30)
用戶啟用狀態(tài) USER_STATUS smallint
2.4.2 接口訪問方式
系統(tǒng)提供API程序調(diào)用(C#)接口和Web Service接口兩種接口訪問方式,API接口使用C#封裝調(diào)用內(nèi)部函數(shù)API,Web Service接口使用WS封裝調(diào)用內(nèi)部函數(shù)API。如圖3所示。
圖3 省級區(qū)域自動站數(shù)據(jù)庫訪問接口功能圖
2.4.3 接口種類
根據(jù)接口訪問的數(shù)據(jù)對象可將訪問接口分為元數(shù)據(jù)接口和產(chǎn)品接口兩類。系統(tǒng)提供三個元數(shù)據(jù)接口,分別是指定站號查詢站點的更新時間以及站點詳細信息、指定區(qū)域名稱模糊查詢屬于該區(qū)域的站點詳細信息、指定區(qū)域代碼查詢屬于該區(qū)域的站點詳細信息。產(chǎn)品接口也就是數(shù)據(jù)檢索接口,包括一般站點資料接口、層次站點資料接口、專業(yè)專項定制接口。一般站點資料接口通過時間點或時間段、臺站號、區(qū)域代碼或經(jīng)緯度區(qū)域范圍獲取數(shù)據(jù)表中存儲的觀測數(shù)據(jù)信息。層次站點資料接口針對地溫等分層要素,通過時間點或時間段、臺站號、區(qū)域代碼或經(jīng)緯度區(qū)域范圍獲取該要素相應層次的觀測數(shù)據(jù)信息。專業(yè)專項定制接口是氣象產(chǎn)品定制接口,主要針對非氣象部門的行業(yè)用戶按需求定制、獲取如旅游氣象、交通氣象、山洪地質(zhì)災害等特定條件下相關站點的觀測數(shù)據(jù)信息。
3.系統(tǒng)技術路線與實現(xiàn)
3.1 數(shù)據(jù)庫軟件
數(shù)據(jù)庫軟件采用的是SQL Server 2008數(shù)據(jù)庫系統(tǒng),該版本改進了數(shù)據(jù)庫鏡像功能,提供了更可靠的數(shù)據(jù)庫鏡像的平臺,壓縮了輸出的日志流,使數(shù)據(jù)庫鏡像所要求的網(wǎng)絡帶寬達到最小,而且系統(tǒng)可以更細粒度的對數(shù)據(jù)庫管理系統(tǒng)日志記錄的不同階段所耗費的時間進行計時。
3.2 存取策略
考慮到氣象信息數(shù)據(jù)量大、保存時間較長等特點,采用對表和索引進行分區(qū)管理的技術,即將數(shù)據(jù)量較大的表或索引按照某種策略劃分成多個相對較小的、各自獨立的存儲空間,分別對其進行獨立的管理和操作來提高數(shù)據(jù)讀寫操作和查詢速度。生產(chǎn)數(shù)據(jù)庫設計保存35天的數(shù)據(jù),按日劃分區(qū)域。實時庫設計保存7天的數(shù)據(jù),按日來劃分區(qū)域。歷史庫設計保存13個月的資料,按月來劃分區(qū)域。數(shù)據(jù)庫分區(qū)可提高數(shù)據(jù)檢索速度、增強數(shù)據(jù)的可用性,同時在系統(tǒng)的安全性、靈活性以及可維護性等方面都有較大提高。
3.3 數(shù)據(jù)庫鏡像
數(shù)據(jù)庫鏡像技術實現(xiàn)一個數(shù)據(jù)庫的兩個副本,分別駐留在不同的SQL Server數(shù)據(jù)庫引擎實例上。其中一個引擎實例作為主體服務器,而另一個引擎實例則充當鏡像服務器。同步數(shù)據(jù)庫鏡像會話時,數(shù)據(jù)庫鏡像提供了熱備用服務器,可支持在已提交事務不丟失數(shù)據(jù)的情況下進行快速故障轉(zhuǎn)移。為支持自動故障轉(zhuǎn)移,在高安全性模式下配置數(shù)據(jù)庫鏡像會話,并且在只讀庫上配置了見證服務器。見證服務器是 SQL Server 的可選實例,它能使高安全性模式會話中的鏡像服務器識別出是否要啟動自動故障轉(zhuǎn)移。
3.4 數(shù)據(jù)復制
安徽省綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)通過實時只讀庫、歷史庫向用戶提供服務。為滿足用戶對數(shù)據(jù)時效和數(shù)據(jù)一致性的要求,系統(tǒng)必須及時將原始數(shù)據(jù)的更正信息同步至實時只讀庫、歷史庫等不同數(shù)據(jù)庫服務器上以保證數(shù)據(jù)的一致性,系統(tǒng)采用數(shù)據(jù)庫復制技術來實現(xiàn)這個功能。SQL SERVER提供了內(nèi)置的復制能力,在復制技術的支持下系統(tǒng)可以快速維護不同數(shù)據(jù)庫服務器上的多個拷貝,從而保證數(shù)據(jù)的一致性,同時也可滿足時效要求。
3.5 系統(tǒng)開發(fā)與測試結(jié)果
按照安徽省綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)的設計要求,2014年5月完成數(shù)據(jù)庫系統(tǒng)的建設并投入業(yè)務應用,該系統(tǒng)實現(xiàn)了全省各類自動氣象站觀測資料的實時入庫、存儲和共享任務。經(jīng)測試,全省2000個左右的區(qū)域級自動站的分鐘數(shù)據(jù)能夠一次性入庫,入庫時間在40秒以內(nèi),數(shù)據(jù)同步可在8-11秒之內(nèi)完成。數(shù)據(jù)庫復制技術能夠?qū)崿F(xiàn)只讀庫的任意擴展,擴展的只讀庫能夠?qū)崿F(xiàn)數(shù)據(jù)庫資源的負載均衡和在線備份。數(shù)據(jù)訪問接口設計提高了數(shù)據(jù)庫訪問效率,用戶使用接口獲取全省24小時小時數(shù)據(jù)、約5萬條記錄可在30秒內(nèi)完成。
4.小結(jié)
文中設計的安徽省綜合觀測資料基礎數(shù)據(jù)庫系統(tǒng)實現(xiàn)了全省國家級自動站、區(qū)域自動氣象站、土壤水分觀測站等多種觀測數(shù)據(jù)的采集處理、數(shù)據(jù)入庫、數(shù)據(jù)加工、報文生成、數(shù)據(jù)監(jiān)控、數(shù)據(jù)服務等功能,滿足了數(shù)據(jù)庫系統(tǒng)的高可靠性、高穩(wěn)定性和易維護性等要求。系統(tǒng)的建成,對推進安徽省氣象信息共享平臺、安徽省綜合觀測數(shù)據(jù)應用平臺、業(yè)務值班監(jiān)控系統(tǒng)、數(shù)據(jù)質(zhì)量控制系統(tǒng)等業(yè)務系統(tǒng)的建設奠定了基礎,其設計理念對今后省級基礎數(shù)據(jù)環(huán)境的建設也有著很好的借鑒意義。
參考文獻
[1]王宏記,王海軍,曾又枝等.省級氣象信息綜合數(shù)據(jù)庫系統(tǒng)的設計與實現(xiàn)[J].湖北氣象,2008,27(3):253-256.
[2]馬渝勇,徐曉莉,宋智等.省級氣象信息共享系統(tǒng)的設計與實現(xiàn)[J].應用氣象學報,2011,22(4):505-512.
[3]高峰,趙芳.元數(shù)據(jù)技術在MDSS 實時氣象數(shù)據(jù)庫系統(tǒng)建設中的應用[J].氣象科技,2006,34(Z1):22-26.
作者簡介:金素文(1979—),女,工程師,主要從事氣象信息系統(tǒng)設計與開發(fā)以及氣象信息業(yè)務研究。