徐娟,劉鑫,席曉慧,張春燕
(1.甘肅省氣象信息與技術裝備保障中心,甘肅 蘭州 730020;2.國家氣象信息中心,北京 100081)
隨著信息技術的發展,氣象信息系統經歷了多次迭代升級,氣象數據越來越豐富,氣象數據傳輸時效和數據服務質量有了明顯提高,數據共享服務方式也更加靈活多樣。但由于氣象信息系統的分批建設,多套存儲設備共存,數據分散,現行各業務系統服務節點均需掛載底層存儲系統,業務拓展、設備擴充、存儲設備更換等場景設備關聯維護困難問題突出。基于用戶分級的數據安全考慮,要對不同的用戶和系統進行目錄訪問授權,由于多套存儲并存的現狀,存儲空間有效利用率受到影響,使用不同年份、不同類型的氣象數據時往往需要掛載很多存儲目錄,不利于數據統一管理。首先需要將多個存儲系統集成作為統一的底層數據源,為上層的數據應用提供客戶端應用接口和全局命名空間,其次需要通過追蹤用戶對文件的訪問記錄掌握數據存儲狀況和應用情況,此外,記錄并分析用戶的操作記錄可以在數據訪問發生異常時進行及時的溯源和問題排查。實際業務生產環境中,產品加工系統的應用通過讀取文件內容加工成新的產品寫入存儲,最終服務接口需要讀取實時和歷史氣象數據并提供給應用,穩定統一的目錄視圖、按需提供的目錄權限,定額的空間使用分配都能更好地保障氣象數據服務應用。
數據湖是一種以自然格式存儲數據的方法,可以容納包括結構化數據、半結構化數據、非結構化數據等多種數據類型,它的主要功能是對用戶的所有數據進行統一存儲,從原始數據轉換為用于報告、可視化、分析和機器學習等各種任務的轉換數據。數據湖技術的引入可以有效解決因數據分散造成的技術和管理壁壘、數據質量溯源困難、質量提升難度大等問題,提高數據集成和治理能力、安全管控能力,實現數據的統一管理、充分共享和開發應用,為進一步的預測分析做支撐,并且在石油化工,交通、衛生醫療等領域已有廣泛應用。
PostgreSQL 是一個免費的對象-關系數據庫服務器(ORDBMS),支持大部分SQL 標準并且提供了包括復雜查詢、外鍵、觸發器、可更新視圖、事務完整性、多版本并發控制等許多現代特性。ES(Elastic Search, ES)為非關系型實時數據庫,系統根據具體監視提交DI(Detail Information)最終進入ES 庫存儲,可通過Kibana 服務實現存儲在ES 庫中數據的查看和搜索,還能實現基于瀏覽器的用戶界面快速創建儀表板es 查詢動態的實時顯示。
Redis(REmote DIctionary Server)是一種基于內存亦可持久化的日志型、Key-Value 數據庫,并提供多種語言的應用程序接口(Application Program Interface, API),支持應用的配置和元數據的加速緩存,同時還支持Master-Slave(主從設備模式)的數據備份,可以作為應用系統元數據的緩存加速。Redis-Sentinel 服務是一個獨立運行的進程,可以對Redis 的運行狀態進行監控,實現master 節點故障后主備節點的自動切換。
Ansible 是一種可通過Playbooks 定制配置和對設備狀態進行管理的輕量級自動化運維工具。FS Gateway(Factory Suite Gateway)可以將不同通信協議的客戶端數據源連接在一起。
省級數據湖部署在四臺建立互信并掛載了本地NAS 存儲的Linux 服務器上,通過應用的部署實現虛擬文件系統搭建、存儲接入、元數據管理、系統后臺管理以及系統的高可用。數據湖系統設計管理節點和計算節點各兩臺,兩個管理節點為高負載服務器,均需部署PostgreSQL、Redis、Redis-Sentinel 服務和es 服務,其中一臺管理節點作為PostgreSQL主節點還需部署Ansible 自動化工具和Kibana 服務,另一臺管理節點作為PostgreSQL 備節點和Redis 的主節點還需部署FS Gateway-rest 管理服務。計算節點為低負載服務器,一臺部署FS Gateway-gw 存儲服務和Redis-Sentinel 服務,另一臺則只部署FS Gateway-gw 存儲服務。數據湖實現的整體架構如圖1所示。

圖1 數據湖實現架構
2020年全國氣象部門部署了氣象大數據云平臺“天擎”系統,該系統具備海量數據存儲、全業務貫通、數據應用高效的能力,能夠為天氣預報、氣候預測、公眾服務、人工影響天氣等各類氣象應用的云化融入提供技術和平臺支撐,構建“云+端”的業務應用模式,系統包括數據交換及質控、產品加工、挖掘分析、數據存儲及服務、業務監控五大功能。數據湖可以集成省級現有的文件存儲系統,提供統一的目錄視圖,集中權限管理和目錄級別的權限設置,能夠有效實現用戶分級情況下的數據訪問授權應用。數據湖軟件整合多源異構存儲文件,將各類存儲系統的存儲目錄掛載到統一的目錄樹上,并且按照業務應用重新組織目錄結構,以統一的命名空間對外提供文件共享服務,此外,提供專用客戶端實現統一目錄空間的本地掛載,有助于各類分析手段的應用,提升數據隱含價值。
加工流水線系統(DPL)通過算法庫的建立對氣象算法進行統一管理,提升算法的匯集、使用、管理和共享,建立加工流水線,根據算法任務應用場景的不同,將算法模塊部署到相應的計算框架下,實現加工處理任務自動化運行和數據產品的批量生產。在加工流水線系統掛載數據湖服務客戶端,按照不同應用系統的數據訪問需求進行目錄授權,實現各租戶即使登錄相同計算節點也只能訪問自己關注目錄的應用效果。氣象數據統一服務接口系統(MUSIC)負責對分級存儲、分庫存儲的各類數據提供統一、便捷的數據服務,在該系統的所有節點掛載數據湖客戶端并授權所有目錄訪問權限,當接收到用戶訪問文件產品的請求后查找文件索引庫記錄中文件位置信息并通過數據湖獲取存儲中文件內容返回用戶。存儲管理系統(SOD)采用分布式存儲技術對各類氣象資料數據進行存儲,利用數據湖提供的接口,管理底層NAS 與虛擬文件目錄的映射關系。數據湖的業務應用流程如圖2所示。

圖2 數據湖的業務應用流程
數據湖提供了目錄的統一管理,包括目錄掛載、目錄授權、日志審計、用戶管理等,多套存儲之間可以靈活組合來提供給用戶使用。數據湖管理頁面和菜單展示如圖3所示。

圖3 數據湖管理頁面和菜單
按照業務應用流程,首先需要創建后端存儲,對存儲進行命名,選擇存儲類型、讀寫權限并填寫掛載點,后端存儲(以NAS 為例)一般是指真實的NAS 地址。其次是虛擬目錄的創建和虛擬目錄與物理存儲目錄的關系映射,分為批量和手動兩種方式。批量方式提供適用于多套NAS 或掛載點為“年份”級別目錄的Excel 批量掛載方式,并自動對導入的掛載目錄進行校驗檢查,該功能還可提前指定好虛擬目錄與未來會創建物理目錄的映射關系,通過“導入標簽目錄文件”菜單將提前制定的真實NAS 目錄和目標虛擬目錄映射關系導入來實現。映射成功的目錄可在“虛擬目錄掛載管理”菜單進行查看。通過批量方式導入的虛擬目錄也可以進行批量卸載。手動方式中虛擬目錄的創建通過“虛擬目錄管理”菜單進行,并在“虛擬目錄掛載管理”菜單進行虛擬目錄與后端存儲目錄的關系映射和卸載操作。
用來訪問數據湖目錄的用戶稱為虛擬目錄用戶(簡稱用戶),用戶對文件的訪問操作限制通過目錄的訪問授權實現。通過“網關授權管理”菜單進行用戶創建,用戶的權限范圍通過用戶所在分組的授權實現,即數據湖中不會直接給某個用戶授予權限,而是以組為單位的,如果授予用戶組某些權限,那么該用戶組下的所有用戶也就擁有相同的權限。用戶組的授權有根據目錄路徑授權和根據時間范圍授權兩種方式。
數據湖提供Linux 客戶端和Windows 客戶端,在Linux系統中,數據湖客戶端是提供給Linux 系統連接數據湖文件管理系統的一個服務,它類似于NAS,可以把目錄信息直接掛載到Linux 系統的某個目錄上,提供用戶使用。Linux客戶端的授權,需將客戶端所在IP 地址和操作系統用戶與數據湖已授權的虛擬目錄用戶進行關聯,操作系統用戶便會擁有虛擬目錄用戶的相應權限,通過修改關聯的虛擬目錄用戶權限來實現客戶端用戶權限的修改,刪除客戶端權限只需刪除數據湖管理平臺中客戶端對應的IP 地址便可達到。Windows 客戶端只需要輸入虛擬目錄用戶的賬號信息即可訪問該用戶對應的授權文件而不需要根據IP 地址進行授權。數據湖Windows 客戶端界面如圖4所示。

圖4 數據湖Windows 客戶端界面
數據湖系統與氣象信息業務應用密不可分,是統一氣象文件數據的管理平臺,也是氣象數據訪問安全的重要保障基礎,能夠有效解決并提高氣象數據訪問質量,有助于更好發揮氣象數據價值。