方勝吉 翁蘇湘 王彥麗 王洪偉
摘 要:醫(yī)學(xué)影像數(shù)據(jù)在臨床應(yīng)用當(dāng)中,對(duì)數(shù)據(jù)的實(shí)時(shí)性要求很高,對(duì)影像數(shù)據(jù)的傳輸要求低延時(shí),基于這個(gè)原因,目前大多數(shù)醫(yī)療機(jī)構(gòu)都采用傳統(tǒng)的集中式存儲(chǔ),但集中式存儲(chǔ)架構(gòu)不容易擴(kuò)展,成本也很昂貴,當(dāng)面臨海量數(shù)據(jù)時(shí),其傳輸帶寬也存在著瓶頸。面對(duì)海量數(shù)據(jù)存儲(chǔ),目前比較好的方式是分布式存儲(chǔ),但分布式存儲(chǔ)在面對(duì)醫(yī)學(xué)影像數(shù)據(jù)存儲(chǔ)時(shí),又顯現(xiàn)出實(shí)時(shí)性差的弱點(diǎn);基于上述原因,我們?cè)O(shè)計(jì)了一種混合存儲(chǔ)模式,將集中式存儲(chǔ)與分布式存儲(chǔ)相結(jié)合,既能存儲(chǔ)海量數(shù)據(jù),又保證了臨床應(yīng)用對(duì)醫(yī)學(xué)數(shù)據(jù)的實(shí)時(shí)性要求。
關(guān)鍵詞:醫(yī)學(xué)影像 混合存儲(chǔ) 海量 實(shí)時(shí)性
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2017)12(b)-0108-02
1 存儲(chǔ)結(jié)構(gòu)層次劃分
按功能劃分,可以將存儲(chǔ)結(jié)構(gòu)整體劃分成兩層。
1.1 數(shù)據(jù)存儲(chǔ)層
數(shù)據(jù)存儲(chǔ)層主要完成對(duì)醫(yī)學(xué)影像數(shù)據(jù)的存儲(chǔ),按照對(duì)實(shí)時(shí)性要求的不同,數(shù)據(jù)存儲(chǔ)層又劃分成兩個(gè)階段。
第一階段是對(duì)醫(yī)學(xué)影像數(shù)據(jù)的實(shí)時(shí)性存儲(chǔ):在臨床過(guò)程中,由醫(yī)療設(shè)備所產(chǎn)生的影像資料,首先存儲(chǔ)到高性能的FC SAN服務(wù)器上,利用FC SAN的存取速度快的特點(diǎn),來(lái)滿足臨床對(duì)醫(yī)學(xué)影像資料實(shí)時(shí)性的要求,但存儲(chǔ)容量對(duì)FC SAN來(lái)講是一個(gè)問(wèn)題,按照目前普通一所醫(yī)院,年數(shù)據(jù)量5T計(jì)算的話,一個(gè)區(qū)域內(nèi)的FC SAN可以連接10~20所醫(yī)療機(jī)構(gòu),總數(shù)據(jù)量在100T左右,這個(gè)數(shù)據(jù)量對(duì)FC SAN來(lái)講,非常適合處理,可以充分發(fā)揮其性能;隨著時(shí)間的推移,數(shù)據(jù)量會(huì)不斷累積,F(xiàn)C SAN的存儲(chǔ)空間就會(huì)成問(wèn)題,此時(shí)就轉(zhuǎn)為第二階段的存儲(chǔ)。
第二階段是對(duì)醫(yī)學(xué)影像數(shù)據(jù)的長(zhǎng)期、災(zāi)備存儲(chǔ),通過(guò)分布式存儲(chǔ)架構(gòu)完成;一般情況下,一所醫(yī)院的醫(yī)學(xué)影像資料超過(guò)一年后,利用率就會(huì)大大降低,所以,我們可以人為的設(shè)定,超過(guò)一年時(shí)間的影像資料數(shù)據(jù)都要從FC SAN轉(zhuǎn)存至分布式存儲(chǔ)并進(jìn)行容災(zāi)備份。這樣做有兩點(diǎn)好處,其一是提高數(shù)據(jù)的安全性,因?yàn)獒t(yī)學(xué)影像資料的數(shù)據(jù)對(duì)安全性是有很高要求的,一定時(shí)期內(nèi)人影像數(shù)據(jù)是具有法律效力的;其二存儲(chǔ)空間極易擴(kuò)展,可以滿足海量數(shù)據(jù)的存儲(chǔ)需求,這是分布式存儲(chǔ)的特點(diǎn),非常適合海量醫(yī)學(xué)影像資料的長(zhǎng)期存儲(chǔ)。
1.2 數(shù)據(jù)管理層
數(shù)據(jù)管理層位于存儲(chǔ)層上層,主要是對(duì)數(shù)據(jù)存儲(chǔ)的全過(guò)程提供自動(dòng)化的管理并且為上層用戶提供使用的接口,用戶不需要了解具體存儲(chǔ)數(shù)據(jù)的細(xì)節(jié)過(guò)程,比如對(duì)圖像的檢索、讀寫等操作全部由管理層自動(dòng)完成,對(duì)底層的細(xì)節(jié)操作進(jìn)行屏蔽;主要有下述6個(gè)部分功能。
(1)連接端口: 提供一個(gè)端口,實(shí)現(xiàn)HDFS和本地文件系統(tǒng)的互訪。
(2)處理模塊:主要處理影像數(shù)據(jù)在上傳前的優(yōu)化工作并且根據(jù)數(shù)據(jù)量制定相應(yīng)的優(yōu)化存儲(chǔ)策略以及編程實(shí)現(xiàn)的方法。
(3)檢索:實(shí)現(xiàn)對(duì)圖片的定位以及去冗余功能。
(4)寫入:從醫(yī)療設(shè)備上形成的醫(yī)學(xué)圖像,通過(guò)寫入功能存儲(chǔ)到集中式存儲(chǔ)服務(wù)器。
(5)讀?。喊凑沼脩舻恼?qǐng)求,將圖片從集中式存儲(chǔ)服務(wù)器或分布式服務(wù)器中調(diào)取出來(lái)。
(6)轉(zhuǎn)存:轉(zhuǎn)存的功能比較單一,就是把集中式存儲(chǔ)的數(shù)據(jù)定期備份后面的分布式服務(wù)器上去。
2 混合式存儲(chǔ)架構(gòu)的運(yùn)行流程
架構(gòu)的運(yùn)行流程整體可以分為3個(gè)部分,即讀取過(guò)程、寫入過(guò)程和轉(zhuǎn)換過(guò)程。
2.1 存儲(chǔ)架構(gòu)讀流程
整個(gè)架構(gòu)的讀取流程可以按照影像資料存儲(chǔ)時(shí)間的長(zhǎng)短分成兩種情況進(jìn)行,假如我們?cè)O(shè)置的存儲(chǔ)時(shí)間的閾值為一 年。
第一種情況,為了保證臨床的實(shí)時(shí)性,一年以內(nèi)的數(shù)據(jù)我們會(huì)存儲(chǔ)在集中式的高性能的FC SAN服務(wù)器上,讀取數(shù)據(jù)時(shí)用戶先通過(guò)連接端口提出訪問(wèn)請(qǐng)求,然后交由處理模塊進(jìn)行優(yōu)化處理,之后再交給讀取模塊,讀取模塊要對(duì)數(shù)據(jù)信息進(jìn)行判斷,一年內(nèi)的信息則直接通過(guò)FC SAN上的接口程序(如JAVA接口等)進(jìn)行讀取,獲取信息后,反饋給客戶,這與普通醫(yī)療機(jī)構(gòu)的讀取方式基本一致。
第二種情況,如果用戶要求的數(shù)據(jù)信息在一年以上,則要讀取分布式存儲(chǔ)架構(gòu)的內(nèi)容,此時(shí),用戶提交讀取請(qǐng)求給處理模塊,處理模塊優(yōu)化后交給讀取模塊,讀取模塊判斷為一年以上的數(shù)據(jù)信息,因此,不能直接從FC SAN中讀取,因?yàn)橐荒暌陨系臄?shù)據(jù)以經(jīng)轉(zhuǎn)存至HDFS,所以,讀取模塊將用戶信息發(fā)送給“檢索模塊”,在檢索模塊中存儲(chǔ)的是HDFS中的元數(shù)據(jù)信息,包括數(shù)據(jù)的“文件ID”以及所在的“塊ID”信息,找到后,交給“讀取模塊”,讀取模塊根據(jù)檢索出來(lái)的信息,調(diào)用HDFS接口程序?qū)?shù)據(jù)進(jìn)行讀取,反饋給用戶。在讀取數(shù)據(jù)的過(guò)程當(dāng)中,由于HDFS采用并行讀取的方式,所以讀取速度與FC SAN速度差別不大,主要是檢索過(guò)程用時(shí)較多,因此,檢索算法的優(yōu)化至關(guān)重要。
2.2 存儲(chǔ)架構(gòu)寫流程
整個(gè)架構(gòu)的寫流程非常簡(jiǎn)單,當(dāng)用戶發(fā)出寫數(shù)據(jù)請(qǐng)求時(shí),通過(guò)連接端口將用戶的請(qǐng)求交給處理模塊,處理模塊進(jìn)行優(yōu)化處理后,再通過(guò)寫入模塊調(diào)用FC SAN端口將數(shù)據(jù)寫入FC SAN當(dāng)中,這種方式與目前的醫(yī)療機(jī)構(gòu)基本相同。這里有一點(diǎn)需要說(shuō)明,我們?yōu)榱藵M足臨床的實(shí)時(shí)性要求,并不將產(chǎn)生的數(shù)據(jù)直接寫進(jìn)HDFS,因?yàn)镠DFS要對(duì)數(shù)據(jù)進(jìn)行至少3個(gè)以上的副本備份,所以,寫數(shù)據(jù)的效率較低下,而且,醫(yī)學(xué)影像的數(shù)據(jù)較小,并不適合直接寫入HDFS中。
2.3 存儲(chǔ)架構(gòu)轉(zhuǎn)換流程
在臨床的過(guò)程當(dāng)中,由于我們直接把醫(yī)學(xué)影像數(shù)據(jù)存儲(chǔ)在了FC SAN當(dāng)中,隨著時(shí)間的推移,其上的數(shù)據(jù)量會(huì)越來(lái)越多,而且利用率也會(huì)越來(lái)越低,所以,我們需要定期將FC SAN上的數(shù)據(jù)進(jìn)行轉(zhuǎn)存,比如一年為一個(gè)閾值,那一年以上的數(shù)據(jù)我們就要轉(zhuǎn)存到HDFS上,以保障FC SAN的高效運(yùn)行。
具體的執(zhí)行過(guò)程是這樣的,首先,F(xiàn)C SAN將需要轉(zhuǎn)存的文件形成文件列表;然后,轉(zhuǎn)存模塊會(huì)調(diào)用FC SAN的接口,讀取轉(zhuǎn)存文件列表,再循環(huán)將文件以鍵值對(duì)的形式形成文件數(shù)據(jù)流;接下來(lái),轉(zhuǎn)存模塊調(diào)用HDFS接口,查找可以寫入的數(shù)據(jù)塊,將由文件ID、數(shù)據(jù)和數(shù)據(jù)塊ID形成的新的文件存儲(chǔ)到可用數(shù)據(jù)塊當(dāng)中去;最后,將由二者ID號(hào)組成的元數(shù)據(jù)寫入檢索模塊元數(shù)據(jù)列表,至此整個(gè)轉(zhuǎn)換過(guò)程完成。
需要說(shuō)明的一點(diǎn)是,由于整個(gè)轉(zhuǎn)存的過(guò)程時(shí)間會(huì)比較長(zhǎng),因此在轉(zhuǎn)存時(shí),應(yīng)選擇較為空閑的醫(yī)療時(shí)間段進(jìn)行,比如選擇晚上等;轉(zhuǎn)存的時(shí)間周期不易過(guò)長(zhǎng),也不易過(guò)短,一般為一個(gè)月轉(zhuǎn)存一次較為適宜。
參考文獻(xiàn)
[1] 熊勁.大規(guī)模機(jī)群文件系統(tǒng)的關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:國(guó)防科技大學(xué),2006.
[2] 李波.基于Hadoop的海里圖像數(shù)據(jù)管理[D].上海:華東師范大學(xué),2011.
[3] Ken Dunham.The Problem with P2P[J].Information Systems Security,2006,15(2):5-8.
[4] 劉鵬.云計(jì)算[M].北京:電子工業(yè)出版社,2011.
[5] 張敏,陳云海.電信運(yùn)營(yíng)商云計(jì)算發(fā)展及應(yīng)用研究[J].信息通信技術(shù),2010,4(2):46-51.