














摘要:隨著水利信息化的快速發展,數據資源越來越豐富,數據管理與共享的需求日益迫切,建設水利數據管理與共享平臺成為一項十分重要的工作,然而建設一個高效實用的水利數據平臺需要多學科人員的配合,工作量大,研發費用高。為解決這一問題,在總結水利數據共享的需求及總體架構的基礎上,引入開源數據管理平臺CKAN,并利用其開源的優勢,提出了基于CKAN的水利數據共享平臺技術架構,提出了基于CKAN的多源異構數據實時預覽、二三維一體化展示技術、數據管理、數據上傳、數據檢索和權限管理的實施路徑,形成了基于CKAN的水利數據共享平臺快速建設方法,降低了搭建水利數據共享平臺的難度和投入成本,有助于促進水利數據的共享。
關鍵詞:水利數據;數據共享;數據管理;數據可視化;CKAN
中圖分類號:TV21;TP311.13 文獻標識碼:A 文章編號:1001-9235(2024)04-0018-09
Sharing Platform of Water Conservancy Data Based on CKAN
SONG Lili 1,WU Wei1,2,3,WANG Gaoxu1,3*,ZHANG Xuan1,XU Yi1,WU Yongxiang1,3
(1.The National Key Laboratory of Water Disaster Prevention,Nanjing Hydraulic Research Institute,Nanjing 210029,China;
2.Hohai University,Nanjing 211100,China;
3.Yangtze Institute for Conservation and Development,Nanjing 211106,China)
Abstract: With the rapid development of water conservancy informatization,data resources are becoming increasingly abundant,and the demand for data management and sharing is ever more urgent.The management and sharing platform construction of water conservancy data is an important task.The construction of an efficient and practical water conservancy data platform requires the cooperation of multidisciplinary personnel,with a heavy workload and high research and development costs.To this end,based on summarizing the requirements and overall architecture of water conservancy data sharing,this paper introduces the open source data management platform CKAN and employs its open source advantages to propose the technical architecture of the water conservancy data sharing platform based on CKAN.Meanwhile,the implementation path of CKAN-based multi-source heterogeneous data real-time preview,two-dimensional and three-dimensional integrated display technology,data management,data upload,data retrieval,and authorization management has formed a rapid construction method of water conservancy data sharing platform based on CKAN.This reduces the difficulty and input cost of building the platform and helps promote the sharing of water conservancy data.
Keywords:water conservancy data;data sharing;data management;data visualization;CKAN
“十四五”時期是全面推進智慧水利建設的重要階段,水利部積極采取措施推動水利信息化建設,僅在2021年就先后印發了《關于大力推進智慧水利建設的指導意見》《智慧水利建設頂層設計》《“十四五”智慧水利建設規劃》和《“十四五”期間推進智慧水利建設實施方案》4部相關文件[1]。水利數據的管理與信息服務是智慧水利建設的一項重要內容。由于水利數據具有種類多、數據量大、涉及系統復雜、缺乏統一規范和部分數據具有隱私性等特點[2],導致信息展示效率較低、信息共享不足等,是當前智慧水利建設面臨的一個關鍵阻礙[3-4]。因此,加快建設水利數據共享平臺已成為推進智慧水利發展亟待解決的問題。為打通“信息孤島”,實現“一數一源、一源多用”的目標[5],國內學者對共享平臺的設計進行了大量研究[6-11]。水利數據共享平臺的研究和實踐發展迅速,但其研發不僅需要相關人員具備豐富的平臺開發經驗與水利專業知識,還需要耗費大量的經費與時間,影響了平臺的推廣應用。
作為開源的數據管理平臺,CKAN專門用于收集、儲存、發布和共享數據的功能及靈活性為解決上述問題帶來新的思路。余文婷等[12]提出了社會科學開放數據服務平臺的要素、關鍵功能及其實現方式,選取CKAN平臺為基礎開發了社會科學開放數據服務平臺。陳美[13]面向地方政府數據開放需求,提出了基于CKAN的政府數據開放平臺;Mubaideen等[14]為展示國內外研究界對約旦文化遺產的收集數據,利用CKAN平臺構建了一個在線目錄和原型儲存庫,并通過定性和定量的方法評估其可用性。此外,為增加政府透明度,例如英國、美國、加拿大、澳大利亞等國家政府充分利用CKAN平臺的功能和靈活性,構建了其開放數據門戶網站[15]。目前,國內外已有基于CKAN構建共享平臺的研究,取得了較好的效果,但其在水利數據的共享應用還鮮見報道。本文以CKAN為基礎研究的水利數據共享平臺建設方法,實現水利數據共享平臺的高效率、低成本建設,為水利數據共享平臺建設提供參考。
1 水利數據共享平臺需求分析與總體架構
由于水利數據的類型眾多,根據數據的結構化和非結構化特征可將其分為結構化數據和非結構化數據。其中,根據數據的來源及更新頻率,結構化數據可以分為基礎數據和監測數據,基礎數據主要來源于已有的基礎信息數據,其特點是數據相對穩定、更新不頻繁,如河流、測站、流域等水利對象的基本屬性信息;監測數據是通過定點監測、巡測等方式獲取的水位、流量、水質、降水等動態變化的數據,數據更新頻繁。根據數據的用途,非結構化可以分為空間數據、多媒體數據和研究數據,空間數據是用于描述河流、湖泊、水利工程設施等的位置、形狀和相互關系的數據;多媒體數據是利用遙感影像進行大尺度土壤墑情、水環境調查、水土保持、防汛抗旱等方面分析的數據;研究數據是在水利相關的科學研究中或研究結束后產生的數字,是科學研究的結晶,主要存在于水利相關的論文、專著、報告和資料中。詳情數據目錄見圖1。總的來說,水利數據不僅涉及多個部門的管理,還具有多源異構的特點。因此,水利數據共享平臺的建設除了要滿足基本的信息服務(數據上傳、檢索、展示和權限管理等)外,考慮到多源異構數據,還應實現:①不同格式數據的可視化;②通過自定義的數據管理標準,分類建立數據資源目錄對數據進行管理;③數據的更新、補充和刪除;④數據共享平臺的快速更新等。
本文將數據平臺架構自底向上劃分3層:數據存儲層、業務邏輯層及應用視圖層,加上縱貫全局的權限管理和行為、硬件監控系統,形成了水利數據平臺系統架構總體架構,見圖2。
a)數據存儲層。依據不同數據類型設置不同的數據庫,如水利綜合數據庫存基礎的水利相關數據;空間數據庫存儲GIS數據、shp圖層等空間數據;多媒體數據庫存儲文檔、圖片以及視頻等數據。
b)業務邏輯層。負責處理數據操作、數據共享流程、數據發布流程、數據格式檢查、結構化數據解析等系統業務,包含大量業務功能模塊,是整個系統的功能支撐。
c)應用視圖層。在業務邏輯層各功能模塊的基礎上,形成了系統的主要應用:數據共享、可視化展示和數據管理。
d)權限管理。首先將發布單位人員、數據中心維護人員和普通用戶設置不同權限,確保各類用戶僅能訪問權限范圍內的頁面模塊;其次,在各類用戶內也設置不同權限,以普通用戶為例,科研人員和社會公眾需要通過權限區分所能下載的數據以及數據容量等內容。權限管理是確保系統有序運行的重要環節。
e)行為、硬件監控。記錄硬盤容量、數據庫、服務器等硬件的實時運行狀態,確保系統安全穩定運行,保證數據的安全性;記錄系統各類用戶所有操作,進行用戶行為統計分析,也可作為痕跡管理依據。
2 基于CKAN的平臺架構設計
2.1 CKAN概述
CKAN[16](Comprehensive Knowledge Archive Network)是英國開放知識基金會(Open Knowledge Foundation,OKFN)所開發與維護的一款的數據管理門戶開源平臺工具,專為各類有著開放數據并對其有利用需求的數據發布者而設計。CKAN終端使用Python編寫,前端使用Javascript/HTML編寫。它將Pylons網絡架構和SQLAlchemy作為對象關系映射(ORM)模型,使用對象-關系型數據管理系統Postgre SQL作為數據庫引擎,支持數據類型和接口類型豐富,功能齊全且使用自由。此外,CKAN通過Solr提供接口進行搜索;采用模塊化結構,方便使用人員根據自身需求提供額外的功能,如數據上傳等,提高了平臺的可擴展性;提供強大的API,提高了數據重用性。
2.2 技術架構
依據水利數據平臺的設計思路,結合CKAN提供的相關技術,采用前后端分離開發的B/S架構模式,以可擴展性、健壯性為原則,后端設計基于“數據層-數據訪問層-業務邏輯層”三層架構,前端設計重點在于拆分網頁設計、數據視圖和視圖模板,結合數據綁定及數據轉換方法,制定數據服務的技術路線。圖3展示了基于多插件的平臺技術架構。
a)數據訪問層作為最底層連接著基礎數據庫、監測數據庫、空間數據庫、多媒體數據庫和業務數據庫,這5個數據庫提供了所有可視化的數據源,連接通過SQLAlchemy對象關系映射和Solr搜索引擎2種方式來實現。SQLAlchemy對象關系映射幫助用戶使用Python定義類來與數據庫中的表相關聯,類的實例則對應數據表中的一行數據。Solr搜索引擎則可以在用戶輸入一段文字后,通過分詞來檢索數據。
b)自下而上的第二層為業務邏輯層,內部包括:動作功能、授權功能、后臺任務和業務邏輯。該層主要負責平臺業務的處理以及數據的生成、處理與轉換,是整個平臺的核心價值部分。
c)第三層為表示層,主要包括視圖層和API接口兩部分。視圖層主要基于Flask框架核心簡單和可擴展特性,通過使用action函數讀取和更新數據來處理請求,并通過Jinja2模板渲染返回響應。新視圖和模板分別在controllers和templates中定義,并需要相應修改路由。API接口可以幫助用戶跳過操作圖形界面而直接訪問數據庫。
d)第四層為路由層,該層定義了平臺URL和視圖層的連接方式。默認路由在config.routing中被定義,結合使用plugins.interface.IRoutes插件接進行擴展。
3 關鍵技術實現
3.1 多源異構數據實時預覽
為了實現數字表格、圖片、PDF等不同格式水利數據的可視化,利用Flask可插撥視圖作為所有視圖類的父類,引入reclineview、pdfview、textview、imageview等多種插件,通過高效的代碼復用實現多源異構數據可視化。各類可視化插件與數據格式的對應關系見表1。從中可以看出,每種數據格式都對應一種可視化插件,而每種可視化插件可以對多種數據格式實現可視化。
3.2 二三維一體化展示技術
水利數據包括水文站、氣象站、重要水利工程位置點信息,也包括河流水系分布,流域下墊面組成等其他類型要素內容,具有豐富的空間屬性和幾何特征。而CKAN的插件TerriaJS可預覽地理空間內容,它使用Cesium在瀏覽器中實現完整的3D地球儀圖景展示。Cesium作為一款專業繪制三維數字地球和二維平面地圖的開源庫,具有良好的跨平臺性和擴展性,用戶界面簡潔、訪問數據便捷,處理數據能力優越,在不需要掌握太多編程知識的前提下可以幫助開發者快速搭建Web應用,真正實現動態數據可視化。
3.3 數據管理
3.3.1 資源目錄管理
a)元數據基本屬性。針對海量異構水利數據管理,為防止出現數據同步轉換歧義,數據集無法正常上傳的情況,需要統一數據描述方式。本文在構建數據目錄前,先提出了數據集創建和維護時需要的屬性,界定了平臺管理標準。元數據的基本屬性見表2,可以完備描述數據集特征。
b)數據集分類。當數據集根據標準創建后,大量的數據集依舊零散,關聯較弱。因此,數據集分類是水利數據資源管理的關鍵,明確好數據集分類可以使原本零散的數據集建立聯系,便于數據集快速檢索。依據數據集分類穩定性、完整性和唯一性這三大基本原則,明確了水利數據集分類方式,見表3。利用組織機構、標簽、格式、授權方式和學科主題分類方式構成資料目錄,對水利數據資源形成全覆蓋管理,其中每個數據集對應只有一個數據創建者,數據創建者和數據維護者共同擁有對該數據集的增加、更新、刪除等權限。每個數據集保存了若干個格式不一數據文件,平臺用戶通過資源目錄快速檢索數據集,下載數據文件。
3.3.2 開放API管理
面對海量水利數據管理的壓力,開放API(Application Programming Interface,應用程序接口)數據管理方式可以在管理員不需要了解內部代碼具體實現的前提下,采用調用web服務的方式,達到高效率、簡單、安全地管理數據集的目的。根據水利數據共享的需求,用于數據集操作、處理的主要接口見表4,這些接口分別使用get、create、update、patch和delete這5種操作指令動作來執行,其中update和patch皆用于數據的更新操作,但一般情況下前者多用于全局更新,而后者用于局部更新。接口的詳細調用方式和功能描述如下。
3.4 數據上傳
對水利數據進行上傳時,數據提供者以項目組為單位每年按照規定時間節點提交上一年的數據,數據內容應當包括:元數據、數據文檔和實體數據資源。在項目組提交數據后,數據中心要對數據進行嚴格審核,以確保數據匯交的質量。圖5是對數據上傳功能的詳細設計流程。
3.5 數據檢索
使用Solr搜索引擎搭建數據檢索模塊,該模塊中在支持模糊查詢的基礎上采用標題檢索和關鍵詞檢索2種檢索方式,可以幫助用戶實現快速檢索數據。在實際數據檢索過程中,用戶在數據搜索框內輸入模糊的標題或關鍵詞,系統會自動形成檢索語言,而當檢索語言中的提問標識與數據庫內的數據標識有完全匹配或者部分匹配時,這些數據就會被檢索出來,并以匹配度由高到低的順序排列開來。圖6描述了數據檢索功能的設計流程。
3.6 權限管理
用戶權限管理是為管理員提供查看和編輯目前所有用戶的權限的功能。使用CKAN的用戶權限管理功能,在管理頁面可自動讀取所有用戶的權限情況,管理員對用戶信息的添加及修改,并根據角色的不同賦予其不同等級的權限,修改完成后提交,系統更新數據庫。通過對不同用戶實施分級化權限管理,保證資源安全隔離,保證數據共享過程中的信息安全。
4 系統應用
平臺利用組織機構、標簽、格式、授權方式和學科主題分類方式構成資料目錄(圖8),對水文-數據資源形成全覆蓋管理,對水文-數據資源形成全覆蓋管理,其中每個數據集對應只有一個數據創建者,數據創建者和數據維護者共同擁有對該數據集的增加、更新、刪除等權限。每個數據集保存了若干個格式不一數據文件,平臺用戶通過資源目錄快速檢索數據集,下載數據文件。
以三江源某河流的水環境要素為例,平臺利用Recline插件對表格數據展示了3種可視化方式:包括水環境數據直接展示、基于交互式圖表的水環境數據分析、基于在線地圖的水環境監測點查詢。水環境表格數據直接展示了不同采樣點在不同月份下的水環境數據,其主要監測要素主要包括:蒸發量、氣溫、降水量、pH、濁度、溶解氧等,該界面提供了數據操作欄、數據操作欄和數據查詢欄,方便用戶對數據進行簡單操作(圖9);在交互式圖表的 Graph Type 中用戶可以自主選擇點線圖、折線圖、散點圖、柱狀圖等圖表類型,并且通過使用Add Series自定義增加數據序列,進行簡單數據分析(圖10);Recline 插件還提供了在線地圖服務功能,當數據中含有經緯度坐標信息時,用戶在longitude field和latitude field兩欄中分別導入經緯度,數據點即可在在線地圖上顯示,用鼠標點擊最上方的數據點就會顯示相應屬性值,從中可以看出這個點的序號、采樣點號、經緯度、測量月份、氣溫、降雨量、pH等詳細數據信息(圖11)。
5 結語
在分析水利數據特點的基礎上,提出了水利數據平臺總體架構,設計了基于CKAN的水利數據管理與共享平臺技術架構,并且結合軟件工程技術方法對數據平臺實現的關鍵技術進行了設計分析。
a)分析了水利數據的分類和特點,明確了水利數據管理與共享平臺的建設需求,提出了基于CKAN的水利數據共享平臺架構,可為各類水利數據管理平臺的建設提供參考。
b)在數據管理開源平臺CKAN的基礎上,兼顧數據平臺穩定性和先進性,提出了多源異構數據實時預覽、二三維一體化展示技術、數據管理、數據發現、數據上傳、權限管理等關鍵技術實現方式,提升了數據平臺可拓展性、多源異構數據一體化集成能力以及數據可視化效果。
c)本文提出的基于CKAN的水利數據共享平臺研發方法,解決了水利數據多源異構的特點帶來的數據共享及平臺快速搭建的難題,能夠使得平臺面向發布單位、數據中心管理人員以及社會公眾等多類用戶提供“共享-預覽-發布”數據共享與展示服務的數據共享平臺。
水利科研數據共享是大勢所趨,數據共享平臺是數據共享的基礎,未來具有廣闊的推廣應用空間。運用最新技術加快加載速度、增加平臺實用性功能、提高平臺數據搜索精度和速度、提升平臺易用性是未來的發展趨勢。但數據共享并不能僅僅依靠數據共享平臺,需要制定更為合理的數據共享機制,鼓勵各類科研單位積極發布高質量數據產品是數據共享平臺最為核心的內容,其次需要輔以配套運維保障機制,確保數據平臺持續穩定運行,充分發揮數據價值。
參考文獻:
[1]蔡陽.以數字孿生流域建設為核心 構建具有“四預”功能智慧水利體系[J].中國水利,2022(20):2-6,60.
[2]王東.面向智慧水利的數據資源池構建[J].東北水利水電,2022,40(2):58-60,72.
[3]朱星明,耿慶齋,蔡佳男.水利科學數據共享的現狀與發展趨勢[J].中國水利,2008(14):47-50.
[4]張建云,劉九夫,金君良.關于智慧水利的認識與思考[J].水利水運工程學報,2019(6):1-7.
[5]成建國,馮鈞,楊鵬,等.水利數據資源目錄服務關鍵技術研究[J].水利信息化,2014(6):18-21,35.
[6]陳寧,許明家,高祥濤,等.基于消息的水利數據共享交換平臺設計與實現[J].水利信息化,2012(4):29-33.
[7]艾萍,趙敏,岳兆新.基于虛擬化的水利數據共享平臺設計與實現[J].信息技術,2013,37(6):75-79.
[8]張立志,李俊,呂燕枚,等.基于元數據和模型驅動的水利信息共享平臺[J].水利信息化,2015(4):8-10,28.
[9]肖玉健,姚保順,艾尼瓦爾·達吾提,等.新疆水利信息化資源整合共享平臺建設總體思路[J].中國防汛抗旱,2017,27(4):78-82.
[10]劉方,謝艾玲.安徽省水利信息化共享平臺建設與思考[J].水利信息化,2021(2):86-90.
[11]謝敏,朱松挺,許澤峣,等.基于區塊鏈的水利數據共享平臺開發與應用研究[J].水利信息化,2023(3):46-51.
[12]余文婷,梁少博,吳丹.基于CKAN的社會科學開放數據服務平臺構建初探[J].情報工程,2015,1(5):68-76.
[13]陳美.基于CKAN的政府數據開放平臺構建[J].現代情報,2019,39(3):69-76.
[14]MUBAIDEEN S,FLOHR P,SMITHIES J,et al.Assessing the MaDiH CKAN catalogue as an engagement tool for the Jordanian cultural heritage community[J].Levant,2022,54(2):277-284.
[15]CKAN for Government[EB/OL].https://ckan.org/government.
[16]CKAN documentation[EB/OL].https://docs.ckan.org/en/2.10/.
(責任編輯:向 飛)