徐娟,劉鑫,席曉慧,張春燕
(1.甘肅省氣象信息與技術(shù)裝備保障中心,甘肅 蘭州 730020;2.國家氣象信息中心,北京 100081)
隨著信息技術(shù)的發(fā)展,氣象信息系統(tǒng)經(jīng)歷了多次迭代升級(jí),氣象數(shù)據(jù)越來越豐富,氣象數(shù)據(jù)傳輸時(shí)效和數(shù)據(jù)服務(wù)質(zhì)量有了明顯提高,數(shù)據(jù)共享服務(wù)方式也更加靈活多樣。但由于氣象信息系統(tǒng)的分批建設(shè),多套存儲(chǔ)設(shè)備共存,數(shù)據(jù)分散,現(xiàn)行各業(yè)務(wù)系統(tǒng)服務(wù)節(jié)點(diǎn)均需掛載底層存儲(chǔ)系統(tǒng),業(yè)務(wù)拓展、設(shè)備擴(kuò)充、存儲(chǔ)設(shè)備更換等場景設(shè)備關(guān)聯(lián)維護(hù)困難問題突出?;谟脩舴旨?jí)的數(shù)據(jù)安全考慮,要對(duì)不同的用戶和系統(tǒng)進(jìn)行目錄訪問授權(quán),由于多套存儲(chǔ)并存的現(xiàn)狀,存儲(chǔ)空間有效利用率受到影響,使用不同年份、不同類型的氣象數(shù)據(jù)時(shí)往往需要掛載很多存儲(chǔ)目錄,不利于數(shù)據(jù)統(tǒng)一管理。首先需要將多個(gè)存儲(chǔ)系統(tǒng)集成作為統(tǒng)一的底層數(shù)據(jù)源,為上層的數(shù)據(jù)應(yīng)用提供客戶端應(yīng)用接口和全局命名空間,其次需要通過追蹤用戶對(duì)文件的訪問記錄掌握數(shù)據(jù)存儲(chǔ)狀況和應(yīng)用情況,此外,記錄并分析用戶的操作記錄可以在數(shù)據(jù)訪問發(fā)生異常時(shí)進(jìn)行及時(shí)的溯源和問題排查。實(shí)際業(yè)務(wù)生產(chǎn)環(huán)境中,產(chǎn)品加工系統(tǒng)的應(yīng)用通過讀取文件內(nèi)容加工成新的產(chǎn)品寫入存儲(chǔ),最終服務(wù)接口需要讀取實(shí)時(shí)和歷史氣象數(shù)據(jù)并提供給應(yīng)用,穩(wěn)定統(tǒng)一的目錄視圖、按需提供的目錄權(quán)限,定額的空間使用分配都能更好地保障氣象數(shù)據(jù)服務(wù)應(yīng)用。
數(shù)據(jù)湖是一種以自然格式存儲(chǔ)數(shù)據(jù)的方法,可以容納包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)等多種數(shù)據(jù)類型,它的主要功能是對(duì)用戶的所有數(shù)據(jù)進(jìn)行統(tǒng)一存儲(chǔ),從原始數(shù)據(jù)轉(zhuǎn)換為用于報(bào)告、可視化、分析和機(jī)器學(xué)習(xí)等各種任務(wù)的轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)湖技術(shù)的引入可以有效解決因數(shù)據(jù)分散造成的技術(shù)和管理壁壘、數(shù)據(jù)質(zhì)量溯源困難、質(zhì)量提升難度大等問題,提高數(shù)據(jù)集成和治理能力、安全管控能力,實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管理、充分共享和開發(fā)應(yīng)用,為進(jìn)一步的預(yù)測分析做支撐,并且在石油化工,交通、衛(wèi)生醫(yī)療等領(lǐng)域已有廣泛應(yīng)用。
PostgreSQL 是一個(gè)免費(fèi)的對(duì)象-關(guān)系數(shù)據(jù)庫服務(wù)器(ORDBMS),支持大部分SQL 標(biāo)準(zhǔn)并且提供了包括復(fù)雜查詢、外鍵、觸發(fā)器、可更新視圖、事務(wù)完整性、多版本并發(fā)控制等許多現(xiàn)代特性。ES(Elastic Search, ES)為非關(guān)系型實(shí)時(shí)數(shù)據(jù)庫,系統(tǒng)根據(jù)具體監(jiān)視提交DI(Detail Information)最終進(jìn)入ES 庫存儲(chǔ),可通過Kibana 服務(wù)實(shí)現(xiàn)存儲(chǔ)在ES 庫中數(shù)據(jù)的查看和搜索,還能實(shí)現(xiàn)基于瀏覽器的用戶界面快速創(chuàng)建儀表板e(cuò)s 查詢動(dòng)態(tài)的實(shí)時(shí)顯示。
Redis(REmote DIctionary Server)是一種基于內(nèi)存亦可持久化的日志型、Key-Value 數(shù)據(jù)庫,并提供多種語言的應(yīng)用程序接口(Application Program Interface, API),支持應(yīng)用的配置和元數(shù)據(jù)的加速緩存,同時(shí)還支持Master-Slave(主從設(shè)備模式)的數(shù)據(jù)備份,可以作為應(yīng)用系統(tǒng)元數(shù)據(jù)的緩存加速。Redis-Sentinel 服務(wù)是一個(gè)獨(dú)立運(yùn)行的進(jìn)程,可以對(duì)Redis 的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,實(shí)現(xiàn)master 節(jié)點(diǎn)故障后主備節(jié)點(diǎn)的自動(dòng)切換。
Ansible 是一種可通過Playbooks 定制配置和對(duì)設(shè)備狀態(tài)進(jìn)行管理的輕量級(jí)自動(dòng)化運(yùn)維工具。FS Gateway(Factory Suite Gateway)可以將不同通信協(xié)議的客戶端數(shù)據(jù)源連接在一起。
省級(jí)數(shù)據(jù)湖部署在四臺(tái)建立互信并掛載了本地NAS 存儲(chǔ)的Linux 服務(wù)器上,通過應(yīng)用的部署實(shí)現(xiàn)虛擬文件系統(tǒng)搭建、存儲(chǔ)接入、元數(shù)據(jù)管理、系統(tǒng)后臺(tái)管理以及系統(tǒng)的高可用。數(shù)據(jù)湖系統(tǒng)設(shè)計(jì)管理節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)各兩臺(tái),兩個(gè)管理節(jié)點(diǎn)為高負(fù)載服務(wù)器,均需部署PostgreSQL、Redis、Redis-Sentinel 服務(wù)和es 服務(wù),其中一臺(tái)管理節(jié)點(diǎn)作為PostgreSQL主節(jié)點(diǎn)還需部署Ansible 自動(dòng)化工具和Kibana 服務(wù),另一臺(tái)管理節(jié)點(diǎn)作為PostgreSQL 備節(jié)點(diǎn)和Redis 的主節(jié)點(diǎn)還需部署FS Gateway-rest 管理服務(wù)。計(jì)算節(jié)點(diǎn)為低負(fù)載服務(wù)器,一臺(tái)部署FS Gateway-gw 存儲(chǔ)服務(wù)和Redis-Sentinel 服務(wù),另一臺(tái)則只部署FS Gateway-gw 存儲(chǔ)服務(wù)。數(shù)據(jù)湖實(shí)現(xiàn)的整體架構(gòu)如圖1所示。
圖1 數(shù)據(jù)湖實(shí)現(xiàn)架構(gòu)
2020年全國氣象部門部署了氣象大數(shù)據(jù)云平臺(tái)“天擎”系統(tǒng),該系統(tǒng)具備海量數(shù)據(jù)存儲(chǔ)、全業(yè)務(wù)貫通、數(shù)據(jù)應(yīng)用高效的能力,能夠?yàn)樘鞖忸A(yù)報(bào)、氣候預(yù)測、公眾服務(wù)、人工影響天氣等各類氣象應(yīng)用的云化融入提供技術(shù)和平臺(tái)支撐,構(gòu)建“云+端”的業(yè)務(wù)應(yīng)用模式,系統(tǒng)包括數(shù)據(jù)交換及質(zhì)控、產(chǎn)品加工、挖掘分析、數(shù)據(jù)存儲(chǔ)及服務(wù)、業(yè)務(wù)監(jiān)控五大功能。數(shù)據(jù)湖可以集成省級(jí)現(xiàn)有的文件存儲(chǔ)系統(tǒng),提供統(tǒng)一的目錄視圖,集中權(quán)限管理和目錄級(jí)別的權(quán)限設(shè)置,能夠有效實(shí)現(xiàn)用戶分級(jí)情況下的數(shù)據(jù)訪問授權(quán)應(yīng)用。數(shù)據(jù)湖軟件整合多源異構(gòu)存儲(chǔ)文件,將各類存儲(chǔ)系統(tǒng)的存儲(chǔ)目錄掛載到統(tǒng)一的目錄樹上,并且按照業(yè)務(wù)應(yīng)用重新組織目錄結(jié)構(gòu),以統(tǒng)一的命名空間對(duì)外提供文件共享服務(wù),此外,提供專用客戶端實(shí)現(xiàn)統(tǒng)一目錄空間的本地掛載,有助于各類分析手段的應(yīng)用,提升數(shù)據(jù)隱含價(jià)值。
加工流水線系統(tǒng)(DPL)通過算法庫的建立對(duì)氣象算法進(jìn)行統(tǒng)一管理,提升算法的匯集、使用、管理和共享,建立加工流水線,根據(jù)算法任務(wù)應(yīng)用場景的不同,將算法模塊部署到相應(yīng)的計(jì)算框架下,實(shí)現(xiàn)加工處理任務(wù)自動(dòng)化運(yùn)行和數(shù)據(jù)產(chǎn)品的批量生產(chǎn)。在加工流水線系統(tǒng)掛載數(shù)據(jù)湖服務(wù)客戶端,按照不同應(yīng)用系統(tǒng)的數(shù)據(jù)訪問需求進(jìn)行目錄授權(quán),實(shí)現(xiàn)各租戶即使登錄相同計(jì)算節(jié)點(diǎn)也只能訪問自己關(guān)注目錄的應(yīng)用效果。氣象數(shù)據(jù)統(tǒng)一服務(wù)接口系統(tǒng)(MUSIC)負(fù)責(zé)對(duì)分級(jí)存儲(chǔ)、分庫存儲(chǔ)的各類數(shù)據(jù)提供統(tǒng)一、便捷的數(shù)據(jù)服務(wù),在該系統(tǒng)的所有節(jié)點(diǎn)掛載數(shù)據(jù)湖客戶端并授權(quán)所有目錄訪問權(quán)限,當(dāng)接收到用戶訪問文件產(chǎn)品的請求后查找文件索引庫記錄中文件位置信息并通過數(shù)據(jù)湖獲取存儲(chǔ)中文件內(nèi)容返回用戶。存儲(chǔ)管理系統(tǒng)(SOD)采用分布式存儲(chǔ)技術(shù)對(duì)各類氣象資料數(shù)據(jù)進(jìn)行存儲(chǔ),利用數(shù)據(jù)湖提供的接口,管理底層NAS 與虛擬文件目錄的映射關(guān)系。數(shù)據(jù)湖的業(yè)務(wù)應(yīng)用流程如圖2所示。
圖2 數(shù)據(jù)湖的業(yè)務(wù)應(yīng)用流程
數(shù)據(jù)湖提供了目錄的統(tǒng)一管理,包括目錄掛載、目錄授權(quán)、日志審計(jì)、用戶管理等,多套存儲(chǔ)之間可以靈活組合來提供給用戶使用。數(shù)據(jù)湖管理頁面和菜單展示如圖3所示。
圖3 數(shù)據(jù)湖管理頁面和菜單
按照業(yè)務(wù)應(yīng)用流程,首先需要?jiǎng)?chuàng)建后端存儲(chǔ),對(duì)存儲(chǔ)進(jìn)行命名,選擇存儲(chǔ)類型、讀寫權(quán)限并填寫掛載點(diǎn),后端存儲(chǔ)(以NAS 為例)一般是指真實(shí)的NAS 地址。其次是虛擬目錄的創(chuàng)建和虛擬目錄與物理存儲(chǔ)目錄的關(guān)系映射,分為批量和手動(dòng)兩種方式。批量方式提供適用于多套NAS 或掛載點(diǎn)為“年份”級(jí)別目錄的Excel 批量掛載方式,并自動(dòng)對(duì)導(dǎo)入的掛載目錄進(jìn)行校驗(yàn)檢查,該功能還可提前指定好虛擬目錄與未來會(huì)創(chuàng)建物理目錄的映射關(guān)系,通過“導(dǎo)入標(biāo)簽?zāi)夸浳募辈藛螌⑻崆爸贫ǖ恼鎸?shí)NAS 目錄和目標(biāo)虛擬目錄映射關(guān)系導(dǎo)入來實(shí)現(xiàn)。映射成功的目錄可在“虛擬目錄掛載管理”菜單進(jìn)行查看。通過批量方式導(dǎo)入的虛擬目錄也可以進(jìn)行批量卸載。手動(dòng)方式中虛擬目錄的創(chuàng)建通過“虛擬目錄管理”菜單進(jìn)行,并在“虛擬目錄掛載管理”菜單進(jìn)行虛擬目錄與后端存儲(chǔ)目錄的關(guān)系映射和卸載操作。
用來訪問數(shù)據(jù)湖目錄的用戶稱為虛擬目錄用戶(簡稱用戶),用戶對(duì)文件的訪問操作限制通過目錄的訪問授權(quán)實(shí)現(xiàn)。通過“網(wǎng)關(guān)授權(quán)管理”菜單進(jìn)行用戶創(chuàng)建,用戶的權(quán)限范圍通過用戶所在分組的授權(quán)實(shí)現(xiàn),即數(shù)據(jù)湖中不會(huì)直接給某個(gè)用戶授予權(quán)限,而是以組為單位的,如果授予用戶組某些權(quán)限,那么該用戶組下的所有用戶也就擁有相同的權(quán)限。用戶組的授權(quán)有根據(jù)目錄路徑授權(quán)和根據(jù)時(shí)間范圍授權(quán)兩種方式。
數(shù)據(jù)湖提供Linux 客戶端和Windows 客戶端,在Linux系統(tǒng)中,數(shù)據(jù)湖客戶端是提供給Linux 系統(tǒng)連接數(shù)據(jù)湖文件管理系統(tǒng)的一個(gè)服務(wù),它類似于NAS,可以把目錄信息直接掛載到Linux 系統(tǒng)的某個(gè)目錄上,提供用戶使用。Linux客戶端的授權(quán),需將客戶端所在IP 地址和操作系統(tǒng)用戶與數(shù)據(jù)湖已授權(quán)的虛擬目錄用戶進(jìn)行關(guān)聯(lián),操作系統(tǒng)用戶便會(huì)擁有虛擬目錄用戶的相應(yīng)權(quán)限,通過修改關(guān)聯(lián)的虛擬目錄用戶權(quán)限來實(shí)現(xiàn)客戶端用戶權(quán)限的修改,刪除客戶端權(quán)限只需刪除數(shù)據(jù)湖管理平臺(tái)中客戶端對(duì)應(yīng)的IP 地址便可達(dá)到。Windows 客戶端只需要輸入虛擬目錄用戶的賬號(hào)信息即可訪問該用戶對(duì)應(yīng)的授權(quán)文件而不需要根據(jù)IP 地址進(jìn)行授權(quán)。數(shù)據(jù)湖Windows 客戶端界面如圖4所示。
圖4 數(shù)據(jù)湖Windows 客戶端界面
數(shù)據(jù)湖系統(tǒng)與氣象信息業(yè)務(wù)應(yīng)用密不可分,是統(tǒng)一氣象文件數(shù)據(jù)的管理平臺(tái),也是氣象數(shù)據(jù)訪問安全的重要保障基礎(chǔ),能夠有效解決并提高氣象數(shù)據(jù)訪問質(zhì)量,有助于更好發(fā)揮氣象數(shù)據(jù)價(jià)值。