龔岳松,李靜芳,呂文斌,李 佼
(上海市水務信息中心, 上海 200050)
近年來,上海水務部門陸續(xù)開展了大量信息化建設工作,建成了涵蓋供水、排水、水利 3 大行業(yè),具有防汛指揮、水資源管理、水環(huán)境治理、水務工程管理等業(yè)務功能的近 50 余套信息系統(tǒng),累積了從 1998 年以來超過 4 TB 數(shù)據(jù)量的多比例尺和時相的數(shù)字地形圖、遙感影像及實時數(shù)據(jù)資料。這些系統(tǒng)的建設和數(shù)據(jù)資料的累積,既為上海建設“智能水網”奠定了翔實的數(shù)據(jù)基礎,又對如何梳理、規(guī)范現(xiàn)有多源異構數(shù)據(jù),整合歸并形成能夠滿足上海水務行業(yè)需求的核心數(shù)據(jù)提出了新的要求。
為規(guī)范各單位信息系統(tǒng)的水務數(shù)據(jù),設計了能夠對上海水務多源、多態(tài)、海量數(shù)據(jù)進行規(guī)范整合的水務數(shù)據(jù)中心建設規(guī)范,以期為上海市水務局局屬各單位數(shù)據(jù)庫的建設提供參考和借鑒。
上海市水務局現(xiàn)有各單位的信息系統(tǒng)由于建設時間、設計理念和施工單位不同,其技術路線、系統(tǒng)架構、數(shù)據(jù)庫結構也各不相同:存在 C/S 與 B/S 多種系統(tǒng)架構,Java,.Net 與其他工業(yè)組態(tài)軟件多種技術路線,SQL Server,Oracle,SyBase,DB2,F(xiàn)oxpro 等多類數(shù)據(jù)庫,數(shù)據(jù)多源異構、技術路線差異極大,難以實現(xiàn)全市水務行業(yè)高效的數(shù)據(jù)交換及共享。
以實時雨量為例,水務數(shù)據(jù)中心的數(shù)據(jù)主要來源于上海市氣象局、水文總站、排水公司,以及區(qū)縣防汛和水文部門等單位。各單位實時系統(tǒng)的雨量測站編碼、報數(shù)及其雨量計算規(guī)則均差距很大,需要按照統(tǒng)一的計算規(guī)范和編碼規(guī)律進行規(guī)范整合,各單位雨量測站編碼及計算規(guī)則如表1 所示。
同時,在水務數(shù)據(jù)中心未建設之前,各單位信息系統(tǒng)及數(shù)據(jù)庫之間采用的數(shù)據(jù)交換主要是傳統(tǒng)的“點對點交換模式”,即應用系統(tǒng)之間數(shù)據(jù)庫直連的緊耦合交換模式。由于這種數(shù)據(jù)交換模式需要對兩端系統(tǒng)進行源碼級開發(fā),會對原有系統(tǒng)穩(wěn)定性產生一定影響。隨著交換單位需求越來越多樣,數(shù)據(jù)交換的復雜度也會與日俱增,數(shù)據(jù)交換將由一對一變成一對多甚至是多對多,相應的數(shù)據(jù)交換規(guī)則和程序開發(fā)量將呈幾何倍數(shù)增長,最后形成蛛網狀。這種交換模式既難以開發(fā)也難以維護,改動一點,可能導致數(shù)據(jù)交換甚至業(yè)務系統(tǒng)的癱瘓,將很難適應水務發(fā)展需求。
表1 各單位雨量測站編碼及計算規(guī)則表
為實現(xiàn)水務行業(yè)內各部門、水務與其它行業(yè)之間,統(tǒng)一和有效的數(shù)據(jù)共享、聯(lián)動、更新機制,從數(shù)據(jù)中心結構、命名規(guī)則、交換與服務等方面進行深入研究和設計,形成了 1 套滿足全市水務行業(yè)需求的水務數(shù)據(jù)中心建設規(guī)范,并在 “數(shù)字水務”一期(上海市水務地理信息應用系統(tǒng))工程中得到實際應用,取得較好的效果。
從數(shù)據(jù)交換與共享,便于日常系統(tǒng)運維和原始數(shù)據(jù)保存等方面考慮,提出水務數(shù)據(jù)中心數(shù)據(jù)庫結構按照“三層多類”進行設計[1]。水務數(shù)據(jù)中心邏輯結構圖如圖1 所示。
圖1 水務數(shù)據(jù)中心邏輯結構圖
“三層”指基礎、核心數(shù)據(jù),以及數(shù)據(jù)倉庫等3 部分;“多類”指監(jiān)測監(jiān)控類、基礎設施類、政務辦公類和元數(shù)據(jù)類等數(shù)據(jù)。
其中,基礎數(shù)據(jù)部分位于水務數(shù)據(jù)中心最底層,用于存儲來源于各單位的基礎數(shù)據(jù),實現(xiàn)與原始數(shù)據(jù)表結構保持一致的原始數(shù)據(jù)的快速存儲,確保水務數(shù)據(jù)中心先有原始數(shù)據(jù)的需求。
核心數(shù)據(jù)部分位于水務數(shù)據(jù)中心中間層,按照水務業(yè)務邏輯,經過對基礎數(shù)據(jù)進行規(guī)范、分類、歸并和加工后形成核心數(shù)據(jù)。實現(xiàn)對原始數(shù)據(jù)進行分類、規(guī)范、整合、運算和邏輯等二次處理,形成具有統(tǒng)一計量單位數(shù)據(jù)的集中存儲,滿足統(tǒng)一計量的數(shù)據(jù)準確性、一致性需求。
數(shù)據(jù)倉庫部分位于水務數(shù)據(jù)中心頂層,按照不同的業(yè)務應用對核心數(shù)據(jù)進行分析、挖掘后,形成面向政府和行業(yè)管理應用的決策支持數(shù)據(jù)。實現(xiàn)對按照不同行業(yè)專題應用,經過分析、挖掘形成的具有決策支持、行業(yè)分析作用數(shù)據(jù)的存儲,滿足集中調用、統(tǒng)一口徑的綜合管理應用需求。
2.2.1 提出了規(guī)范的數(shù)據(jù)庫命名規(guī)則
以大寫拼音首字母縮寫命名,長度不超過 20 位。例如:水務數(shù)據(jù)中心數(shù)據(jù)庫的名稱為SWSJZX。
2.2.2 提出了統(tǒng)一的數(shù)據(jù)庫對象命名規(guī)則
數(shù)據(jù)庫對象包含數(shù)據(jù)表、視圖、函數(shù)、主鍵、外鍵、存儲過程、索引、觸發(fā)器等 8 類。其中,數(shù)據(jù)表、視圖、函數(shù)、主鍵、外鍵的命名由對象前綴和描述符 2 部分組成,存儲過程、索引、觸發(fā)器的名稱,由對象前綴、描述符和動作標識符 3 部分組成??傞L度不超過 30 個字符。
水務數(shù)據(jù)中心對象前綴對應如表2 所示。
對象描述符用于描述數(shù)據(jù)庫對象內容,使用大寫英文字母、阿拉伯數(shù)字及下劃線,通常以數(shù)據(jù)庫對象內容的全拼或拼音首字母組成。
表2 數(shù)據(jù)庫對象前綴表
動作標識符用于標識觸發(fā)器和存儲過程的動作,共有 6 類,具體如表3 所示。
表3 數(shù)據(jù)庫對象動作標識符表
數(shù)據(jù)庫對象命名規(guī)則如表4 所示。
2.2.3 提出了數(shù)據(jù)字段的命名規(guī)則
數(shù)據(jù)字段由字段前綴和描述組成。根據(jù)水務數(shù)據(jù)中心現(xiàn)有存儲數(shù)據(jù)的類型,規(guī)定數(shù)據(jù)中心可以存有字符型、數(shù)值型、日期時間型、二進制型等數(shù)據(jù)。字段前綴規(guī)范如下:ST 表示字符型,NM 表示數(shù)值型,DT 表示日期時間型,BB 表示二進制型。字段描述僅限使用大寫英文字母、阿拉伯數(shù)字及下劃線,以字段內容的大寫英文全拼組成,涉及到布爾型的數(shù)據(jù)用字符型進行規(guī)約。具體如下[2]:
1)字符型。數(shù)據(jù)格式主要用來描述非數(shù)值型的數(shù)據(jù),只具有描述意義,不能進行數(shù)學計算。如河流名稱等,以格式 C(d)表示,其中,C 為類型標識,用來描述字符型數(shù)據(jù)格式;d 為十進制數(shù)字,用來描述字段最大可能的字符串長度。涉及到判斷是否狀態(tài)的數(shù)據(jù)類型由字符型 C(1)代替,其中,字符串“0”表示狀態(tài)為假,英文狀態(tài)為 False;字符串“1”表示為真,英文狀態(tài)為 True。
2)數(shù)值型。格式為 N(D [, d]),其中:N 為類型標識,用來描述數(shù)值型數(shù)據(jù)格式;[ ]標識小數(shù)位數(shù)可選;D 為十進制數(shù)字,描述數(shù)值型數(shù)據(jù)的位數(shù);d 為十進制數(shù)字,描述數(shù)值型數(shù)據(jù)的小數(shù)位數(shù)。數(shù)值型數(shù)據(jù)格式用來描述 2 種數(shù)據(jù),一種是帶小數(shù)的浮點數(shù),一種是整數(shù)。
3)日期時間型。數(shù)據(jù)格式用“D”表示,用來描述日期時間有關的數(shù)據(jù)。采用公元紀年的北京時間,如 2005 年 1 月 1 日 08∶08∶08。
4)二進制型。數(shù)據(jù)格式為 B,用于存儲諸如視頻、圖片、聲音等大容量多媒體數(shù)據(jù)。每條數(shù)據(jù)存儲容量要求不超過 4 GB。
2.2.4 統(tǒng)一設計了實時類測站編碼和屬性表
實現(xiàn)對多源異構、不同信息系統(tǒng)測站編碼和類型的兼容與統(tǒng)一,規(guī)范了相關測站屬性的字段定義。為解決來自于不同單位和應用系統(tǒng)測站編碼規(guī)則不一致、編碼細粒度不一的問題,在水務數(shù)據(jù)中心中設計了具有向下兼容的實時數(shù)據(jù)測站屬性表,如表5 所示。
表4 數(shù)據(jù)庫對象命名規(guī)則表
表5 測站屬性表(TB_STATION )
對測站屬性表編碼作如下統(tǒng)一規(guī)定:測站編碼字段細粒度按照測站地理位置及來源單位進行編碼,同一來源單位、地理位置的測站對應唯一測站編碼,不同來源單位、同一地理位置的測站對應不同測站編碼。測站編碼字段由 8 位長度的字符串組成,前 2 位大寫英文字母表示來源單位,通常以單位前 2 位首字母大寫拼音縮寫構成(例如:水利處為 SL,堤防處為 DF,水文總站為 SW,供水處為GS,排水處為 PS,東海分局為 DH,海事局為 HS等,以此類推);后 6 位由大寫英文字母和阿拉伯數(shù)字組成,與來源單位測站編碼保持一致,長度不足8 位的,在來源單位測站編碼前補“0”(例如:水文總站水雨情實時數(shù)據(jù)中黃浦公園測站編碼為2021,在水務數(shù)據(jù)中心相應測站編碼為 SW002021;浦東新區(qū)水文署白蓮涇套閘測站編碼為 HFA510,在水務數(shù)據(jù)中心相應測站編碼為 PDHFA510)。同一測站具有多種類型傳感器(例如:水位、雨量、風速、風向、水閘、泵站)的,按照同一測站編碼編制。同一測站編碼允許在不同類型實時數(shù)據(jù)表中關聯(lián),測站類別由 ST_TYPENAME 和ST_SUBTYPENAME 2個字段進行控制。
2.2.5 分類設計了實時類數(shù)據(jù)表
按照現(xiàn)有數(shù)據(jù)中心存儲的數(shù)據(jù)情況,設計了實時類數(shù)據(jù)表共計 15 張,列舉的一些實時數(shù)據(jù)的表結構如表6 和 7 所示。
2.2.6 參照標準命名了基礎類數(shù)據(jù)的字段名
基礎類數(shù)據(jù)的字段命名參照上海市地方標準DB31/T 362.1-3《水務信息管理標準》[2-4]執(zhí)行,分為水利、供水、排水 3 部分信息,共計 46 張表,部分河流表格如表8 所示。
表6 實時水位監(jiān)測表(TB_SHUIWEI)
表7 實時雨量表(TB_YULIANG)
表8 河流表
2.2.7 規(guī)范了政務辦公類數(shù)據(jù)、元數(shù)據(jù)類的字段命名規(guī)則
規(guī)范后的政務辦公類數(shù)據(jù)(3 類共計 28 張表)和元數(shù)據(jù)類的字段命名規(guī)則:字段前綴+字段描述。
為了解決以往局屬各單位之間網狀數(shù)據(jù)交換帶來的管理混亂和資源浪費,研究了規(guī)范的數(shù)據(jù)交換流程,提出以 Web Service 數(shù)據(jù)服務形式提供基于JSON 和 XML 格式的標準接口支持。規(guī)范了同構和異構系統(tǒng)間進行信息共享、數(shù)據(jù)交換的方法,形成了系統(tǒng)之間數(shù)據(jù)交換的標準,規(guī)范并統(tǒng)一了數(shù)據(jù)交換中數(shù)據(jù)采集、發(fā)布、交換、路由、同步等各環(huán)節(jié)。
1)數(shù)據(jù)采集。各單位實時數(shù)據(jù)通過水務公共信息平臺經由數(shù)據(jù)抓取、甄別、匯聚、規(guī)范和整合等過程,以統(tǒng)一規(guī)范的格式匯集到水務數(shù)據(jù)中心。
2)數(shù)據(jù)發(fā)布。各單位可以根據(jù)各自需要定制所需業(yè)務數(shù)據(jù),該平臺按照數(shù)據(jù)屬性、目的地、歸屬單位等條件,進行相關組合,并根據(jù)這些定制信息進行數(shù)據(jù)發(fā)布。
3)數(shù)據(jù)交換。通過統(tǒng)一消息中間件建立數(shù)據(jù)訂閱和發(fā)布單位之間的信息隧道,支持同步和異步交換方式,實現(xiàn)各單位之間多源異構數(shù)據(jù)的業(yè)務邏輯、數(shù)值轉換、數(shù)據(jù)統(tǒng)計和規(guī)范整合,使各信息系統(tǒng)之間的信息能夠更方便地共享和交互。
4)信息路由。水務業(yè)務流程復雜,涉及多個單位的協(xié)同,這些流程對協(xié)同辦公要求較高。在這些流程里,在不同環(huán)節(jié)調用不同來源、存放在不同數(shù)據(jù)庫中的數(shù)據(jù),都需要交換系統(tǒng)具備信息路由功能,在具體業(yè)務流程的運行中,配合相應的 1 個或多個系統(tǒng),在不同的環(huán)節(jié)采集、提供、處理并發(fā)布各類定制信息,實現(xiàn)數(shù)據(jù)的交互流轉。
5)數(shù)據(jù)同步。由于數(shù)據(jù)源眾多且分散布設,當某單位采集的某個信息發(fā)生變化時,相關單位都需要盡早根據(jù)這個信息更新自己數(shù)據(jù)庫中的數(shù)據(jù)??梢愿鶕?jù)不同的業(yè)務數(shù)據(jù)的實時性需求,設置不同的數(shù)據(jù)同步參數(shù),保證關鍵業(yè)務數(shù)據(jù)的實時性,不會讓關鍵數(shù)據(jù)淹沒在海量的數(shù)據(jù)流中。
在不改變原有系統(tǒng)的情況下,設計了對多源異構數(shù)據(jù)進行數(shù)據(jù)交換的 3 步驟:數(shù)據(jù)訂閱:集中處理:路由發(fā)布,具體如圖2 所示。
圖2 多源異構數(shù)據(jù)交換的3個步驟
水務數(shù)據(jù)中心對外提供基于 Web Service 方式的數(shù)據(jù)服務,包括 XML 和 JSON 等格式。訪問數(shù)據(jù)服務時,須經過系統(tǒng)身份驗證,具有訪問權限的用戶可獲得相應的數(shù)據(jù)服務。數(shù)據(jù)服務如表9 所示。
表9 數(shù)據(jù)服務一覽表
水務數(shù)據(jù)中心應采用“在線熱備、本地冷備、異地災備”的 3 級容災備份機制開展容災備份工作。局屬各單位重要系統(tǒng)的數(shù)據(jù)級異地災備放在水務數(shù)據(jù)中心。
1)提出“三層多類”的水務數(shù)據(jù)中心架構。從數(shù)據(jù)庫層面對數(shù)據(jù)分類、命名規(guī)則、庫表結構、數(shù)據(jù)存儲和冗災備份等內容進行規(guī)范,形成的水務數(shù)據(jù)中心建設規(guī)范,具有科學性、合理性和可操作性, 能夠滿足多源、多態(tài)、海量數(shù)據(jù)的科學分類、集中存儲和分級維護要求。
2)提出具有良好包容性的測站編碼規(guī)則。在不改變各類實時信息系統(tǒng)原有測站編碼規(guī)則的前提下,實現(xiàn)了水務數(shù)據(jù)中心測站統(tǒng)一編碼的包容性、唯一性及與原編碼規(guī)則的一致性;提出同一來源單位、地理位置測站對應唯一編碼,不同來源單位、同一地理位置的測站對應不同編碼的命名規(guī)則。截至目前,已在水務數(shù)據(jù)中心內有效匯聚、整合和統(tǒng)一了來自水利、供水、排水、水文、氣象、海洋、海事等 10 多個行業(yè)(部門)、40 多套系統(tǒng)近萬個實時測站的編碼。
3)運用 Web Service 技術,實現(xiàn)了基于 JSON和 XML 格式的數(shù)據(jù)服務規(guī)范接口。在不改變原有數(shù)據(jù)庫和信息系統(tǒng)的情況下,有效解決了多源、異構和海量數(shù)據(jù)的交換和共享。通過運用 Web Service 服務,解決了異構數(shù)據(jù)庫之間的互通互訪,繞開了多家應用單位直接訪問數(shù)據(jù)中心數(shù)據(jù)庫表所造成的數(shù)據(jù)庫運行穩(wěn)定與安全等問題,使得水務系統(tǒng)內的重要數(shù)據(jù)庫和信息系統(tǒng)能夠有機地關聯(lián)協(xié)同和共享。
水務數(shù)據(jù)中心標準規(guī)范的研究成果已被“數(shù)字水務”一期工程項目采用,并在水務數(shù)據(jù)中心、公共信息平臺建設和運維中發(fā)揮了實際作用。同時,通過不斷完善和深化,在“1 張圖”水務綜合管理應用系統(tǒng)中,采用 B/S 架構、REST API 輕量級開發(fā)模式,應用地圖服務、地圖熔享、高速緩存、時空 GIS等新技術,進一步提高了水、雨、工、災情信息的準確性,及時性,穩(wěn)定性。在防御 2011 年第 9 號臺風“梅花”及多次短歷時暴雨中,上海市防汛指揮部根據(jù)該平臺提供的決策支持進行現(xiàn)場指揮。據(jù)統(tǒng)計,臺風“梅花”期間,水務公共信息平臺的訪問量達 8.2 萬多次。
對外提供的多項基于 Web Service 方式的數(shù)據(jù)服務,在不改變原有數(shù)據(jù)結構的基礎上,優(yōu)化了對多源異構數(shù)據(jù)的跨庫表訪問方式,簡化了數(shù)據(jù)共享與交換的難度,實現(xiàn)了對原有系統(tǒng)的零改造,考慮了跨部門、行業(yè)數(shù)據(jù)共享的訪問權限控制,在上海迪斯尼工程項目、市堤防處、市綠化局等應用系統(tǒng)中得到實際應用。
上海水務數(shù)據(jù)中心建設規(guī)范的設計研究,研究成果與水務信息化現(xiàn)狀緊密結合,具有較強的可操作性,在水務數(shù)據(jù)中心、公共信息平臺和行業(yè)基礎數(shù)據(jù)庫建設中得到實際應用;對于提升上海水務行業(yè)信息化管理,規(guī)范全局數(shù)據(jù)庫和信息系統(tǒng)建設和運維具有參考價值;對推進資源整合、信息共享,規(guī)范系統(tǒng)運維,形成數(shù)據(jù)更新機制,具有指導意義。
[1]龔岳松,呂文斌,李佼. 水務數(shù)據(jù)統(tǒng)一交換管理平臺設計與實現(xiàn)[J]. 水利信息化,2011 (5): 21-25.
[2]胡傳廉,王華杰,鄭曉陽,等. DB31/T362.2-2006 水務信息管理 第 2 部分:數(shù)據(jù)屬性定義[S]. 上海:上海市質量技術監(jiān)督局,2006: 1-23.
[3]胡傳廉,王華杰,鄭曉陽,等. DB31/T362.1-2006 水務信息管理 第 1 部分:分類與編碼[S]. 上海:上海市質量技術監(jiān) 督局,2006: 1-7.
[4]胡傳廉,王華杰,鄭曉陽,等. DB31/T362.1-2006 水務信息管理 第 3 部分:圖示符號[S]. 上海:上海市質量技術監(jiān)督局,2006: 1-11.
[5]王華杰,鄭曉陽,俞清. 上海市水務管理信息標準的研究與應用[J]. 中國水利,2006 (11): 48-50.
[6]張欣. 水務數(shù)據(jù)庫標準化體系研究[J]. 三峽環(huán)境與生態(tài),2009 (4): 55-59.