裴秋艷,汪 進,陳春花,鄭曉磊,何 桃,吳宜燦
(1.中國科學(xué)院核能安全技術(shù)研究所 中子輸運理論與輻射安全重點實驗室,安徽 合肥 230031;2.中國科學(xué)技術(shù)大學(xué),安徽 合肥 230027)
核事故應(yīng)急管理涉及數(shù)據(jù)量大,信息來源較為分散,而且涉及公眾生命財產(chǎn)安全,對信息及時性和全面性要求比較高,信息調(diào)用的及時性在核事故應(yīng)急早期尤為重要[1]。
隨著大數(shù)據(jù)和信息化技術(shù)的快速發(fā)展,大量多源異構(gòu)數(shù)據(jù)[2]可支持核應(yīng)急決策,如:互聯(lián)網(wǎng)時代輿情信息[3];近距離網(wǎng)格的氣象、交通信息[4];場內(nèi)、場外實時性增強的監(jiān)測數(shù)據(jù)[5,6];智能化資源、救援力量儲備、事故救援態(tài)勢信息[7];核事故后果評價系統(tǒng)[8]所得數(shù)據(jù);日漸完善的法律法規(guī)預(yù)案標準體系等。信息保障不充分、信息調(diào)用不及時而導(dǎo)致的決策錯誤在分秒之間損失巨大[9]。
信息管理技術(shù)中,關(guān)系型數(shù)據(jù)庫有著20多年的技術(shù)歷程,可以通過事務(wù)處理保持數(shù)據(jù)的一致性,數(shù)據(jù)更新的開銷較小,因此國內(nèi)外核應(yīng)急與其他應(yīng)急平臺所用數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫[10],如使用廣泛的核應(yīng)急決策支持系統(tǒng)JRODOS[11],所用數(shù)據(jù)庫為PostGres SQL,但是關(guān)系型數(shù)據(jù)庫強調(diào)對磁盤上數(shù)據(jù)的查詢和檢索,這限制了實時訪問數(shù)據(jù)并進行實時在線分析的能力[12]。針對多源異構(gòu)數(shù)據(jù)種類繁雜、海量多源、格式異構(gòu)以及時變性等特點,目前常見處理方式有利用云服務(wù)器和云存儲單元增強服務(wù)器處理性能[13]、基于元數(shù)據(jù)的一體化管理方法來優(yōu)化檢索功能[14]等,其中非關(guān)系型數(shù)據(jù)庫NoSQL支持處理半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)[15],是處理多源異構(gòu)數(shù)據(jù)的有效手段[16],調(diào)用速度以及系統(tǒng)的可用性和可擴展性較傳統(tǒng)關(guān)系型數(shù)據(jù)庫優(yōu)勢明顯[17]。
本文面向核應(yīng)急多源異構(gòu)數(shù)據(jù)設(shè)計了一種關(guān)系型與非關(guān)系型耦合數(shù)據(jù)庫(G-R-M),在開源分布式關(guān)系數(shù)據(jù)庫Greenplum的基礎(chǔ)上整合非關(guān)系型數(shù)據(jù)庫Reds、MongoDB,速度上較傳統(tǒng)數(shù)據(jù)庫得以提升,同時又保持了數(shù)據(jù)的一致性,得到了核應(yīng)急平臺中先進的信息管理數(shù)據(jù)庫,并應(yīng)用到核應(yīng)急平臺中,合理區(qū)分功能模塊管理信息,增加信息調(diào)用及時性,一定時間內(nèi)可供決策者參考的信息量也大幅增加。
關(guān)系型數(shù)據(jù)庫,在海量數(shù)據(jù)的高效查詢訪問中的缺陷日益凸顯出來,比如為了維護一致性所付出的巨大代價就是其讀寫性能比較差。新型數(shù)據(jù)庫如:MongoDB、Redis、以及Google的BigTable等,他們不同于傳統(tǒng)數(shù)據(jù)庫采用的關(guān)系模型,而是采用Key-Value存儲方案,可以有效彌補關(guān)系型數(shù)據(jù)庫的局限性,無需經(jīng)過SQL層的解析,讀寫性能很高。這些數(shù)據(jù)庫稱為非關(guān)系型數(shù)據(jù)庫,即NoSQL。
由于非關(guān)系型數(shù)據(jù)庫未經(jīng)過事務(wù)處理,在增、刪、查(多表關(guān)聯(lián)、分組、排序、嵌入子查詢等)、改、事務(wù)、鎖、存儲過程、函數(shù)等處理過程中無法滿足要求。需要在保留原有關(guān)系型數(shù)據(jù)庫的基礎(chǔ)上添加NoSQL進行數(shù)據(jù)庫優(yōu)化。在研究過程中,將關(guān)系型和非關(guān)系型數(shù)據(jù)庫克服差異,結(jié)合應(yīng)用場景,揚長避短地組合工作是應(yīng)用難題。
G-R-M數(shù)據(jù)庫,選取了Greenplum、Redis、MongoDB三個數(shù)據(jù)庫進行了信息管理數(shù)據(jù)庫設(shè)計。如圖1所示。
圖1 G-R-M數(shù)據(jù)庫結(jié)構(gòu)圖Fig.1 The structure of G-R-M database
Greenplum數(shù)據(jù)庫基于PostgreSQL開源技術(shù),本質(zhì)上講,它是多個PostgreSQL實例一起充當一個數(shù)據(jù)庫管理系統(tǒng)。PostgreSQL為傳統(tǒng)關(guān)系型數(shù)據(jù)庫,基于PostgreSQL的開源分布式數(shù)據(jù)庫比集中式具有更高的可靠性和更好的可用性。Redis與MongoDB屬于NoSQL數(shù)據(jù)庫。Redis是一個高性能的Key-Value數(shù)據(jù)庫,本文信息管理技術(shù)利用的是Redis緩存技術(shù)與針對實時數(shù)據(jù)的格式轉(zhuǎn)換技術(shù)。MongoDB是面向集合存儲的文檔型數(shù)據(jù)庫,進行非結(jié)構(gòu)化文檔數(shù)據(jù)存儲:包括圖片、圖標、語音、工作文本以及位置數(shù)據(jù)的非結(jié)構(gòu)化的文檔數(shù)據(jù),可以實現(xiàn)文檔數(shù)據(jù)庫的存儲與調(diào)用,支持無損保存,同時,MongoDB也支持文件預(yù)覽,加速文件信息的調(diào)用。
以往大量的實時數(shù)據(jù)和歷史數(shù)據(jù)均存放于關(guān)系型數(shù)據(jù)庫之中,當業(yè)務(wù)系統(tǒng)需要某些數(shù)據(jù)時,查詢存在大量的IO操作,花費大量時間,且數(shù)據(jù)庫服務(wù)器負載壓力大,本文G-R-M數(shù)據(jù)庫將最常訪問的數(shù)據(jù)(熱數(shù)據(jù))和實時數(shù)據(jù),通過reids數(shù)據(jù)庫,以key-value的形式存放在內(nèi)存中,有效地避免了高頻操作導(dǎo)致的磁盤IO過載,降低了系統(tǒng)獲取關(guān)鍵數(shù)據(jù)的時間,有效地提高了數(shù)據(jù)庫運行效率。G-R-M數(shù)據(jù)庫相比傳統(tǒng)關(guān)系型數(shù)據(jù)庫,其優(yōu)勢在針對熱數(shù)據(jù)、動態(tài)實時數(shù)據(jù)和文檔數(shù)據(jù)進行增、刪、改、查的過程中得以體現(xiàn):
(1)在系統(tǒng)運行過程中,當需要從后臺查詢預(yù)先確定的熱數(shù)據(jù)時,優(yōu)先使用Redis數(shù)據(jù)庫查詢,避免直接從關(guān)系型數(shù)據(jù)庫進行查詢,這樣可以有效地減少系統(tǒng)IO時間,快速得到需要的數(shù)據(jù)。當預(yù)先設(shè)置的熱數(shù)據(jù)發(fā)生變化時,需要對緩存在Redis中的熱數(shù)據(jù)進行重新加載,以保證Redis數(shù)據(jù)庫中緩存的熱數(shù)據(jù)是最新的。其他常規(guī)數(shù)據(jù)讀寫改均通過直接操作關(guān)系型數(shù)據(jù)庫進行。
(2)動態(tài)實時數(shù)據(jù)通過接口傳輸,由Redis數(shù)據(jù)庫進行預(yù)處理,并將處理后的結(jié)果同步存儲于關(guān)系型數(shù)據(jù)庫中,同時,根據(jù)業(yè)務(wù)需要可以設(shè)定實時數(shù)據(jù)在Redis數(shù)據(jù)庫中的緩存的時間周期,保障當業(yè)務(wù)系統(tǒng)需要使用最近的實時數(shù)據(jù)時,可以直接通過訪問Redis數(shù)據(jù)庫獲取,有效地避免磁盤IO,快速得到所需數(shù)據(jù)。動態(tài)數(shù)據(jù)不應(yīng)該進行刪除和修改。
(3)文檔管理技術(shù)使用的數(shù)據(jù)庫為MongoDB,這樣法規(guī)標準類文件就能實現(xiàn)無損保存、及時查看。
最終得到具有非關(guān)系型數(shù)據(jù)庫優(yōu)化的核應(yīng)急信息管理數(shù)據(jù)庫—G-R-M。G-R-M數(shù)據(jù)庫工作流程圖如圖2所示。
以地方政府核應(yīng)急工作中應(yīng)急防護措施的選用作為測試背景來測試G-R-M數(shù)據(jù)庫使用效果。圖3為應(yīng)急防護措施選用技術(shù)路線[18]。
整個流程所需信息有實時氣象數(shù)據(jù)、事故源項數(shù)據(jù)、后果評價結(jié)果與地理信息數(shù)據(jù),以及相關(guān)法規(guī)標準類文件,前三項作為動態(tài)數(shù)據(jù),由Redis數(shù)據(jù)庫實現(xiàn)調(diào)用,地理信息中的人口分布情況由傳統(tǒng)關(guān)系型數(shù)據(jù)庫加載為熱數(shù)據(jù),通過Redis數(shù)據(jù)庫調(diào)用,相關(guān)法規(guī)標準類文件由MongoDB文檔數(shù)據(jù)庫存儲。
圖2 G-R-M數(shù)據(jù)庫工作流程圖Fig.2 The work flow of G-R-M database
圖3 應(yīng)急防護措施選用技術(shù)路線Fig.3 The technical route for the selection ofemergency protection measures
為了測試G-R-M數(shù)據(jù)庫的性能,與PostgreSQL、Greenplum進行查詢速度上的對比測試,數(shù)據(jù)選用以滿足實驗測試數(shù)據(jù)需求為前提。試驗建立在3臺8 G內(nèi)存Intel(R)Xeon(R)Gold 6148 CPU@2.40 GHz 4核CPU的云服務(wù)器中,選擇其中1臺作為Redis數(shù)據(jù)庫部署節(jié)點,選擇其中另外1臺作為Greenplum數(shù)據(jù)庫(基于PostgreSQL的開源分布式數(shù)據(jù)庫)的主節(jié)點,這三臺均為Greenplum數(shù)據(jù)庫的Segment節(jié)點,Greenplum和Redis服務(wù)端安裝在CentOS release 6.8 (Final)操作系統(tǒng),平臺客戶端在Windows操作系統(tǒng),試驗數(shù)據(jù)預(yù)處理有多個級別的數(shù)據(jù),所有數(shù)據(jù)總量為1 300 M。表1為實驗信息來源與管理方式。
表1 實驗信息來源與管理方式
測試步驟為:
1.按照表1收集數(shù)據(jù)。
2.PostgreSQL和Greenplum進行事務(wù)處理后,所有數(shù)據(jù)無差別存放;G-R-M預(yù)設(shè)地理信息數(shù)據(jù)為熱數(shù)據(jù),從Greenplum加載進Redis數(shù)據(jù)庫當中,法規(guī)標準類文件匯總到MongoDB文檔數(shù)據(jù)庫。
3.分別測試不同數(shù)據(jù)庫數(shù)據(jù)量為10 M、100 M、300 M、500 M、800 M、1000 M的查詢速度。
測試結(jié)果如圖4所示。
圖4 PostgreSQL、Greenplum與G-R-M查詢速度對比Fig.4 The query speed comparison of Postgre-SQL,Greenplum and G-R-M
Greenplum分布式數(shù)據(jù)庫是多個PostgreSQL實例一起充當一個數(shù)據(jù)庫管理系統(tǒng),比集中式具有更高的可靠性和更好的可用性。用于G-R-M的非關(guān)系型數(shù)據(jù)庫Redis和MongoDB,以key-value的形式存放在內(nèi)存中,解決了多源異構(gòu)數(shù)據(jù)在存儲時進行事務(wù)處理的復(fù)雜性,可以避免高頻操作導(dǎo)致的磁盤IO,提高數(shù)據(jù)庫運行效率。測試結(jié)果表明,Greenplum相比PostgreSQL較有優(yōu)勢,G-R-M數(shù)據(jù)庫的查詢優(yōu)勢更為明顯,信息調(diào)用速度為傳統(tǒng)數(shù)據(jù)庫的2到3倍。
針對核事故應(yīng)急數(shù)據(jù)多源異構(gòu)的特征,設(shè)計研究了核應(yīng)急多源異構(gòu)數(shù)據(jù)庫G-R-M,針對地方政府核應(yīng)急工作中涉及的信息,應(yīng)用G-R-M不同功能模塊分別進行技術(shù)管理。開展傳統(tǒng)數(shù)據(jù)庫與G-R-M數(shù)據(jù)庫在數(shù)據(jù)查詢性能方面的對比測試。結(jié)果表明,G-R-M數(shù)據(jù)庫的查詢優(yōu)勢更為明顯,信息調(diào)用速度為傳統(tǒng)數(shù)據(jù)庫的2到3倍,較大幅度提升了核事故早期信息的查詢調(diào)用效率,大量多源異構(gòu)數(shù)據(jù)可以支持核應(yīng)急決策,這將優(yōu)化地方政府核事故應(yīng)急職能的響應(yīng)速度,最大限度保護公眾的生命財產(chǎn)安全。
目前該工作將集成至FDS鳳麟團隊的虛擬核電站與核應(yīng)急平臺Virutal4DS[23],后期將利用所研究的數(shù)據(jù)庫進行核事故應(yīng)急決策輔助工作。
致謝
衷心感謝FDS鳳麟核能團隊全體成員對本工作的幫助和指導(dǎo)。