吳 丹,夏潤亮,李 濤,劉啟興
(1.黃河水利委員會 黃河水利科學研究院,河南 鄭州 450003;2.河南省智慧水利工程技術研究中心,河南 鄭州 450003)
近幾十年來,受氣候變化和人類活動的影響[1],黃河流域特別是中游水資源情勢發生重大變化,入黃水沙量減小[2]。 隨著水土保持、改變土地利用類型等治理措施的實施,黃河中游產匯流機制發生了改變[3]。 徑流預報是黃河水量調度的重要依據,隨著流域水資源管理的不斷深入,現階段對徑流預報的要求更高,如預報項目增加、預見期延長、預報精度提高等[4]。 歷史降雨、土地利用等數據是研究流域水沙變化及預測預報的基礎,但傳統的數據處理方法難以滿足海量、多源、異構的河流系統數據的存儲應用和河流的高效管理要求[5],因此構建一個具備研究性、功能性、便捷性的綜合服務數據倉庫,將其作為基礎數據的高效載體日趨迫切。 本文利用多源、異構數據匯集及ETL 處理等技術將黃河流域降雨、水文泥沙、土地利用等數據整理入庫,通過設計構建黃河水沙變化數據倉庫及公共服務平臺,為流域未來水沙變化預測提供規范統一的數據源,并對多源、異構數據進行分析建模,以期為探索流域侵蝕性降雨及水沙時空變化特征提供數據支撐。
選取黃河流域主要產沙區為研究區,包括黃河中游的河口鎮至龍門區間(簡稱河龍區間)、渭河北道水文站以上(簡稱渭河上游)、涇河景村水文站以上(簡稱涇河上中游)、北洛河劉家河水文站以上(簡稱北洛河上游)、汾河蘭村水文站以上(簡稱汾河上游),以及黃河上游的祖厲河流域、清水河同心縣以上(簡稱清水河上中游)、十大孔兌流域、湟水民和縣以上、洮河紅旗村以上,研究區分布示意見圖1。 研究區面積約占潼關以上總土地面積的35%,研究區天然時期入黃泥沙量約占潼關以上支流入黃總泥沙量的95%。 研究區內黃土丘陵溝壑區主要分布在涇河中游、河龍區間南部、北洛河中游、祖厲河和清水河,是分析產沙降雨閾值的重點區域,主要表現為土壤多孔疏松、地勢起伏大、溝壑縱橫、支離破碎[6],在水力、風力和重力侵蝕下水土流失現象非常明顯。 此外,研究區內還有風沙區(主要分布在無定河上游、窟野河上游和禿尾河上游)和土石山區(主要分布在河龍區間東部呂梁山、渭河上游秦嶺和涇河上游六盤山)。

圖1 研究區分布示意
流域內各種屬性相互影響共同刻畫了流域水文行為[7],所有屬性綜合起來形成了對流域水文模型建立、模型測試、氣候變化影響等相關研究至關重要的基礎數據集。 黃河水沙變化數據倉庫將各類型水沙數據與流域實體逐步融合,實現對數據的獲取、傳輸、存儲、更新以及分析等。
研究區數據涵蓋降雨、植被、土壤、土地利用和社會經濟等數據,這些數據形式多樣,包括音頻視頻、圖形圖像、三維模型等,其存在分散、多源、異構、語義不一等問題,無法為決策支持提供有效的數據源信息服務。 基于此,采用數據倉庫、面向對象思想、商業智能、數據挖掘等關鍵技術將流域相關數據有機集成起來,構建多源數據融合的數據倉庫,對海量數據進行抽取、轉換、加載、主題域分析以及主題設計,借助數據倉庫的傳輸功能對流域實體狀態及其變化信息進行匯集存儲。 同時利用GIS、水文分析、大數據分析、人工智能等技術構建數據挖掘分析與可視化工具,實現對海量數據中隱性數據、模糊數據的挖掘與分析,構建各類數據服務體系,從而提供綜合的智能信息服務。
黃河水沙變化數據倉庫由數據采集層、數據存儲與分析層、數據共享層和數據應用層組成,見圖2。

圖2 黃河水沙變化數據倉庫總體框架
(1)數據采集層。 從各種數據源中采集和存儲相關數據到數據庫中,通過ETL 實現對數據的抽取、轉換、加載等。 數據源包括日志、業務數據庫、Http 資源等,其中:日志存儲在備份服務器上且所占份額最大;業務數據庫包括Mysql、Oracle、SQL Server 等傳統數據庫;Http/Ftp 數據是網絡上抓取的各類接口數據;其他數據源包括Excel 等需要手工錄入的數據。
(2)數據存儲與分析層。 數據存儲采用分布式文件系統HDFS,開展離線數據分析與實時計算,采用Hive 對實時性要求不高的數據進行ETL 操作,Spark作為快速通用計算引擎,對大規模數據進行處理,同時使用Spark SQL 對Hive 進行操作。
(3)數據共享層。 由于Hive、MR、Spark、Spark SQL 分析計算結果依然保存在HDFS 上,大多數業務和應用不能直接從HDFS 上獲取數據,因此在數據共享層中通過Redis、HBase 等數據庫提供對外數據共享的數據接口。
(4)數據應用層。 用戶通過數據應用層中的報表展示、數據挖掘、數據分析、即席查詢、數據可視化獲取數據倉庫中的數據文件,該層能夠為用戶提供數據挖掘服務以及平臺服務。
數據倉庫作為基礎數據的高效載體,是面向主題的、集成的、非易失性的、隨時間變化的、支持決策的數據集合,在數據倉庫中建立數據分析模型,可為智能分析、數據挖掘等提供海量數據存儲的容器以及優化數據集成的關鍵技術[8]。
在數據分析模型建立階段,依照數據結構化程度的差異將其分為結構化數據、半結構化數據和非結構化數據。 其中:結構化數據包括結構化報表等;半結構化數據包括日志文件等;非結構化數據包括Web 頁面、文本數據等。 結構化、半結構化和非結構化數據的數據倉庫構建方案見圖3。

圖3 結構化、半結構化和非結構化數據的數據倉庫構建方案
針對決策信息的快速獲取與綜合集成,通過構建面向主題的多維數據分析模型來實現。 該模型在統一水利視圖模型的基礎上,采用商務智能技術并根據應用需求確定時間維度、空間維度等,使基礎、空間、業務等數據間的多維度復雜關系整合成直觀有序的有機整體。 在流域業務決策主題和主題域分析的基礎上,開展與決策主體相對應的決策信息模型或概念模型的研究與設計,采用多維分析架構(見圖4),逐步推導出主題的數據層次、數據關聯關系、事實表等。

圖4 多維分析架構
黃河水沙變化數據倉庫邏輯設計階段主要把概念多維模型轉換為邏輯模型,并對數據倉庫ETL 過程中涉及的映射和轉換過程進行定義設計。 邏輯模型主要對水量、沙量主題域進行數據分析,確定每個主題的數據倉庫多維概念模型框架,在局部概念模型的基礎上,通過分析水沙調度方案和數據信息的關聯關系,確定水沙調度方案的數據倉庫局部邏輯模型。 通過星型模型進行邏輯模型設計,即在星型模型中設計邏輯模型維表、多維事實表。
以降雨量為例,建立其星型模型邏輯結構(見圖5),降雨量信息包括:①降雨量要素={降雨量要素值,降雨量要素值值域,降雨量要素維度描述};②度量維={匯總,累計,極值,均值};③時間維={年,月,旬,日,時,分};④空間維={緯度,經度,流域,子流域,高程,區域};⑤水文測站維={站名,測流方法,站址,基準基面,高程};⑥行政區劃維={省,市,縣};⑦流域維={流域,水系,干流,一級支流,二級支流,三級支流,四級支流}。

圖5 降雨量星型模型邏輯結構
采用ETL 可將多源、異構的水沙數據有效地抽取、轉換、集成到數據倉庫中,使系統進行數據挖掘時能夠從數據倉庫訪問到所需信息并快速支持決策[9],從而解決分散在不同部門、不同類別的數據資源的集成增值問題[10]。 ETL 設計主要包括數據抽取、轉換、清洗、加載、計算等[11-12],流程見圖6。 其中:數據抽取就是從不同的操作系統、數據庫、數據格式、應用中抽取數據;數據清洗就是對數據源進行精簡處理,除去重復記錄,使數據呈現準確性、完整性、一致性、適時性、有效性,滿足決策主題分析的需求;數據轉換就是對數據進行合并、匯總、過濾、轉換等。 從整體角度來看,ETL 為各種基于數據倉庫的數據挖掘分析和應用提供統一的數據接口。

圖6 ETL 設計流程
以黃河水沙基礎數據中的氣象數據為例,其需要大量的空間數據進行輔助決策。 由于傳統數據倉庫技術在處理空間數據時具有較大的局限性,沒有強大的空間分析能力,不能支持圖形等復雜數據的處理,因此在數據倉庫的基礎上,引入空間數據倉庫管理技術對空間數據進行擴展,截取區域(河段)直至全流域的不同規模時空尺度的信息,有效地管理、分析空間數據并從中挖掘出有用的知識與規律,從而為決策提供重要依據。 空間數據倉庫及ETL 過程見圖7。

圖7 空間數據倉庫及ETL 過程
為有效利用黃河水沙變化數據倉庫所涵蓋的數據資源,設計開發黃河水沙變化數據公共服務平臺(見圖8),對黃河水沙決策分析成果進行展現。 該服務平臺集合多維度數據查詢、實時計算、挖掘分析、可視化展示等功能,開放自定義的二次開發接口,切實服務于黃河水沙變化基礎研究工作。 對其中的數據資源進行分類,根據各類數據特點,以API 封裝和服務方式開發數據關系服務、地圖服務和影像服務等。 利用成熟穩定的GIS 網絡平臺以及Web 服務技術實現數據資源分布式訪問,提供不同權限的數據瀏覽、查詢、可視化、空間分析等功能。 該平臺采用.NET 框架開發,結合MS SQL Server 數據管理與Citrix Xen 云資源管理平臺,組建成包括用戶體驗端、數據供給端、資源服務端的完備基礎數據應用系統,形成PC 端與移動端的同步界面適配、多重網絡環境下的多資源適配、結構化數據與非結構化數據的存儲與管理適配的技術框架,實現B/S 架構體系下黃河水沙變化數據分析與應用的公共服務。

圖8 黃河水沙變化數據公共服務平臺
黃河流域水環境復雜,水沙數據多樣,構建黃河水沙變化數據倉庫能夠收集整理各類水沙基礎數據,對影響黃河水沙變化的降雨、水文泥沙、土地覆被、林草結構、工程等數據進行深度挖掘,通過分析黃河水沙研究業務需求,實現各類型主題數據的高效利用,為預測黃河流域未來水沙變化提供規范統一的數據源,進一步滿足黃河治理開發的科技需求。