裴秋艷,汪 進,陳春花,鄭曉磊,何 桃,吳宜燦
(1.中國科學院核能安全技術研究所 中子輸運理論與輻射安全重點實驗室,安徽 合肥 230031;2.中國科學技術大學,安徽 合肥 230027)
核事故應急管理涉及數據量大,信息來源較為分散,而且涉及公眾生命財產安全,對信息及時性和全面性要求比較高,信息調用的及時性在核事故應急早期尤為重要[1]。
隨著大數據和信息化技術的快速發展,大量多源異構數據[2]可支持核應急決策,如:互聯網時代輿情信息[3];近距離網格的氣象、交通信息[4];場內、場外實時性增強的監測數據[5,6];智能化資源、救援力量儲備、事故救援態勢信息[7];核事故后果評價系統[8]所得數據;日漸完善的法律法規預案標準體系等。信息保障不充分、信息調用不及時而導致的決策錯誤在分秒之間損失巨大[9]。
信息管理技術中,關系型數據庫有著20多年的技術歷程,可以通過事務處理保持數據的一致性,數據更新的開銷較小,因此國內外核應急與其他應急平臺所用數據庫為關系型數據庫[10],如使用廣泛的核應急決策支持系統JRODOS[11],所用數據庫為PostGres SQL,但是關系型數據庫強調對磁盤上數據的查詢和檢索,這限制了實時訪問數據并進行實時在線分析的能力[12]。針對多源異構數據種類繁雜、海量多源、格式異構以及時變性等特點,目前常見處理方式有利用云服務器和云存儲單元增強服務器處理性能[13]、基于元數據的一體化管理方法來優化檢索功能[14]等,其中非關系型數據庫NoSQL支持處理半結構化數據和非結構化數據[15],是處理多源異構數據的有效手段[16],調用速度以及系統的可用性和可擴展性較傳統關系型數據庫優勢明顯[17]。
本文面向核應急多源異構數據設計了一種關系型與非關系型耦合數據庫(G-R-M),在開源分布式關系數據庫Greenplum的基礎上整合非關系型數據庫Reds、MongoDB,速度上較傳統數據庫得以提升,同時又保持了數據的一致性,得到了核應急平臺中先進的信息管理數據庫,并應用到核應急平臺中,合理區分功能模塊管理信息,增加信息調用及時性,一定時間內可供決策者參考的信息量也大幅增加。
關系型數據庫,在海量數據的高效查詢訪問中的缺陷日益凸顯出來,比如為了維護一致性所付出的巨大代價就是其讀寫性能比較差。新型數據庫如:MongoDB、Redis、以及Google的BigTable等,他們不同于傳統數據庫采用的關系模型,而是采用Key-Value存儲方案,可以有效彌補關系型數據庫的局限性,無需經過SQL層的解析,讀寫性能很高。這些數據庫稱為非關系型數據庫,即NoSQL。
由于非關系型數據庫未經過事務處理,在增、刪、查(多表關聯、分組、排序、嵌入子查詢等)、改、事務、鎖、存儲過程、函數等處理過程中無法滿足要求。需要在保留原有關系型數據庫的基礎上添加NoSQL進行數據庫優化。在研究過程中,將關系型和非關系型數據庫克服差異,結合應用場景,揚長避短地組合工作是應用難題。
G-R-M數據庫,選取了Greenplum、Redis、MongoDB三個數據庫進行了信息管理數據庫設計。如圖1所示。

圖1 G-R-M數據庫結構圖Fig.1 The structure of G-R-M database
Greenplum數據庫基于PostgreSQL開源技術,本質上講,它是多個PostgreSQL實例一起充當一個數據庫管理系統。PostgreSQL為傳統關系型數據庫,基于PostgreSQL的開源分布式數據庫比集中式具有更高的可靠性和更好的可用性。Redis與MongoDB屬于NoSQL數據庫。Redis是一個高性能的Key-Value數據庫,本文信息管理技術利用的是Redis緩存技術與針對實時數據的格式轉換技術。MongoDB是面向集合存儲的文檔型數據庫,進行非結構化文檔數據存儲:包括圖片、圖標、語音、工作文本以及位置數據的非結構化的文檔數據,可以實現文檔數據庫的存儲與調用,支持無損保存,同時,MongoDB也支持文件預覽,加速文件信息的調用。
以往大量的實時數據和歷史數據均存放于關系型數據庫之中,當業務系統需要某些數據時,查詢存在大量的IO操作,花費大量時間,且數據庫服務器負載壓力大,本文G-R-M數據庫將最常訪問的數據(熱數據)和實時數據,通過reids數據庫,以key-value的形式存放在內存中,有效地避免了高頻操作導致的磁盤IO過載,降低了系統獲取關鍵數據的時間,有效地提高了數據庫運行效率。G-R-M數據庫相比傳統關系型數據庫,其優勢在針對熱數據、動態實時數據和文檔數據進行增、刪、改、查的過程中得以體現:
(1)在系統運行過程中,當需要從后臺查詢預先確定的熱數據時,優先使用Redis數據庫查詢,避免直接從關系型數據庫進行查詢,這樣可以有效地減少系統IO時間,快速得到需要的數據。當預先設置的熱數據發生變化時,需要對緩存在Redis中的熱數據進行重新加載,以保證Redis數據庫中緩存的熱數據是最新的。其他常規數據讀寫改均通過直接操作關系型數據庫進行。
(2)動態實時數據通過接口傳輸,由Redis數據庫進行預處理,并將處理后的結果同步存儲于關系型數據庫中,同時,根據業務需要可以設定實時數據在Redis數據庫中的緩存的時間周期,保障當業務系統需要使用最近的實時數據時,可以直接通過訪問Redis數據庫獲取,有效地避免磁盤IO,快速得到所需數據。動態數據不應該進行刪除和修改。
(3)文檔管理技術使用的數據庫為MongoDB,這樣法規標準類文件就能實現無損保存、及時查看。
最終得到具有非關系型數據庫優化的核應急信息管理數據庫—G-R-M。G-R-M數據庫工作流程圖如圖2所示。
以地方政府核應急工作中應急防護措施的選用作為測試背景來測試G-R-M數據庫使用效果。圖3為應急防護措施選用技術路線[18]。
整個流程所需信息有實時氣象數據、事故源項數據、后果評價結果與地理信息數據,以及相關法規標準類文件,前三項作為動態數據,由Redis數據庫實現調用,地理信息中的人口分布情況由傳統關系型數據庫加載為熱數據,通過Redis數據庫調用,相關法規標準類文件由MongoDB文檔數據庫存儲。

圖2 G-R-M數據庫工作流程圖Fig.2 The work flow of G-R-M database

圖3 應急防護措施選用技術路線Fig.3 The technical route for the selection ofemergency protection measures
為了測試G-R-M數據庫的性能,與PostgreSQL、Greenplum進行查詢速度上的對比測試,數據選用以滿足實驗測試數據需求為前提。試驗建立在3臺8 G內存Intel(R)Xeon(R)Gold 6148 CPU@2.40 GHz 4核CPU的云服務器中,選擇其中1臺作為Redis數據庫部署節點,選擇其中另外1臺作為Greenplum數據庫(基于PostgreSQL的開源分布式數據庫)的主節點,這三臺均為Greenplum數據庫的Segment節點,Greenplum和Redis服務端安裝在CentOS release 6.8 (Final)操作系統,平臺客戶端在Windows操作系統,試驗數據預處理有多個級別的數據,所有數據總量為1 300 M。表1為實驗信息來源與管理方式。

表1 實驗信息來源與管理方式
測試步驟為:
1.按照表1收集數據。
2.PostgreSQL和Greenplum進行事務處理后,所有數據無差別存放;G-R-M預設地理信息數據為熱數據,從Greenplum加載進Redis數據庫當中,法規標準類文件匯總到MongoDB文檔數據庫。
3.分別測試不同數據庫數據量為10 M、100 M、300 M、500 M、800 M、1000 M的查詢速度。
測試結果如圖4所示。

圖4 PostgreSQL、Greenplum與G-R-M查詢速度對比Fig.4 The query speed comparison of Postgre-SQL,Greenplum and G-R-M
Greenplum分布式數據庫是多個PostgreSQL實例一起充當一個數據庫管理系統,比集中式具有更高的可靠性和更好的可用性。用于G-R-M的非關系型數據庫Redis和MongoDB,以key-value的形式存放在內存中,解決了多源異構數據在存儲時進行事務處理的復雜性,可以避免高頻操作導致的磁盤IO,提高數據庫運行效率。測試結果表明,Greenplum相比PostgreSQL較有優勢,G-R-M數據庫的查詢優勢更為明顯,信息調用速度為傳統數據庫的2到3倍。
針對核事故應急數據多源異構的特征,設計研究了核應急多源異構數據庫G-R-M,針對地方政府核應急工作中涉及的信息,應用G-R-M不同功能模塊分別進行技術管理。開展傳統數據庫與G-R-M數據庫在數據查詢性能方面的對比測試。結果表明,G-R-M數據庫的查詢優勢更為明顯,信息調用速度為傳統數據庫的2到3倍,較大幅度提升了核事故早期信息的查詢調用效率,大量多源異構數據可以支持核應急決策,這將優化地方政府核事故應急職能的響應速度,最大限度保護公眾的生命財產安全。
目前該工作將集成至FDS鳳麟團隊的虛擬核電站與核應急平臺Virutal4DS[23],后期將利用所研究的數據庫進行核事故應急決策輔助工作。
致謝
衷心感謝FDS鳳麟核能團隊全體成員對本工作的幫助和指導。