朱承璋,劉梓汐,李文靜,肖亞龍,王晗
(1.中南大學(xué)計算機學(xué)院;2.中南大學(xué)文學(xué)與新聞傳播學(xué)院;3.移動醫(yī)療教育部—中國移動聯(lián)合實驗室湖南長沙 410083;4.湖南省人民醫(yī)院(湖南師范大學(xué)第一附屬醫(yī)院)湖南長沙 410005)
近年來,隨著信息技術(shù)飛速發(fā)展,醫(yī)療與醫(yī)學(xué)研究領(lǐng)域正步入大數(shù)據(jù)時代,醫(yī)療數(shù)據(jù)的日增長量達到了TB級別。海量的醫(yī)療數(shù)據(jù)蘊含著巨大的價值,構(gòu)建醫(yī)療數(shù)據(jù)存儲平臺,實現(xiàn)數(shù)據(jù)的統(tǒng)一存儲與檢索,有利于不同醫(yī)療機構(gòu)之間共享數(shù)據(jù)。并且,在平臺上增設(shè)數(shù)據(jù)分析服務(wù)功能,有利于推動輔助診療和疾病預(yù)測技術(shù)的發(fā)展。
醫(yī)療數(shù)據(jù)屬于大數(shù)據(jù),具有數(shù)據(jù)來源復(fù)雜、結(jié)構(gòu)多樣、規(guī)模巨大、增長迅速、多模態(tài)性等特點。其中,多模態(tài)性包括二維數(shù)據(jù)、圖像、視頻、文本文檔等。然而,在當(dāng)前醫(yī)療服務(wù)業(yè)務(wù)中,獲取數(shù)據(jù)的實時性、存儲設(shè)備的可靠性及數(shù)據(jù)分析的準(zhǔn)確性仍是亟待解決的三大問題。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫無法存儲非結(jié)構(gòu)化數(shù)據(jù)且受到單機性能限制,無法滿足數(shù)據(jù)存儲的需求。而分布式技術(shù)以其低成本、高可靠、大容量等優(yōu)點在存儲領(lǐng)域得到廣泛應(yīng)用,為存儲海量醫(yī)療數(shù)據(jù)提供了新思路。該技術(shù)通過連接多臺普通設(shè)備,分布式存儲、管理和處理海量數(shù)據(jù),并支持存儲非結(jié)構(gòu)化數(shù)據(jù)。因此,醫(yī)療大數(shù)據(jù)通常存儲在分布式文件系統(tǒng)或非關(guān)系型(Not Only SQL,NoSQL)數(shù)據(jù)庫中,通過分布式并行計算模型提高系統(tǒng)數(shù)據(jù)分析的能力,以進一步優(yōu)化存儲系統(tǒng)的查詢性能。
據(jù)統(tǒng)計,國內(nèi)外分布式醫(yī)療數(shù)據(jù)存儲系統(tǒng)的研究成果較多,但相關(guān)綜述文章較少。文獻[8]分析了不同NoSQL數(shù)據(jù)庫的特點與適用的醫(yī)療存儲場景,但并未總結(jié)基于分布式系統(tǒng)的醫(yī)療存儲研究現(xiàn)狀。本文通過分析醫(yī)療大數(shù)據(jù)的特點和存儲需求,回顧醫(yī)療數(shù)據(jù)存儲系統(tǒng)的發(fā)展歷程,梳理基于分布式技術(shù)的醫(yī)療數(shù)據(jù)存儲方案,并展望未來的研究方向,旨在探索醫(yī)療大數(shù)據(jù)存儲系統(tǒng)的創(chuàng)新發(fā)展前景。
目前,國內(nèi)成熟的醫(yī)院系統(tǒng)建設(shè)主要包括HIS(醫(yī)院信息系統(tǒng))、EMRS(電子病歷系統(tǒng))、RIS(放射科信息管理系統(tǒng))和PACS(影像歸檔和通信系統(tǒng))。院內(nèi)醫(yī)療存儲系統(tǒng)建設(shè)示意圖如圖1所示。傳統(tǒng)醫(yī)療數(shù)據(jù)存儲系統(tǒng)底層多使用關(guān)系型數(shù)據(jù)庫,例如MySQL和SQL Server。該數(shù)據(jù)庫通過關(guān)系模型組織數(shù)據(jù),將每條記錄數(shù)據(jù)以行的形式存儲在二維表中,但關(guān)系型數(shù)據(jù)庫需要滿足預(yù)先定義的關(guān)系模式,并且每條記錄都具有固定的數(shù)據(jù)長度。由于院內(nèi)系統(tǒng)僅針對醫(yī)院單一業(yè)務(wù)或單一數(shù)據(jù)類型,存儲和管理的數(shù)據(jù)量相對較小,因此關(guān)系型數(shù)據(jù)庫即可滿足需求。
Fig.1 Schematic diagram of medical institution storagesy stem construction圖1 醫(yī)療機構(gòu)存儲系統(tǒng)建設(shè)示意圖
隨著網(wǎng)絡(luò)和信息技術(shù)不斷發(fā)展,醫(yī)療數(shù)據(jù)規(guī)模越來越大、復(fù)雜性越來越高,導(dǎo)致使用關(guān)系型數(shù)據(jù)庫對于大規(guī)模醫(yī)療數(shù)據(jù)的存儲存在以下局限性:
(1)醫(yī)療數(shù)據(jù)中包含較多非結(jié)構(gòu)化數(shù)據(jù),然而關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)相對固定,無法適用于非結(jié)構(gòu)化數(shù)據(jù)的存儲。
(2)關(guān)系型數(shù)據(jù)庫受單機存儲容量限制,無法適用于醫(yī)療大數(shù)據(jù)的存儲場景。雖然關(guān)系型數(shù)據(jù)庫支持分布式擴展,但由于分布式關(guān)系型數(shù)據(jù)庫分片規(guī)則復(fù)雜,安裝和維護成本較高。
(3)關(guān)系型數(shù)據(jù)庫可擴展性較差,難以實現(xiàn)不同醫(yī)療機構(gòu)的數(shù)據(jù)共享。
(4)關(guān)系型數(shù)據(jù)庫的讀、寫必須經(jīng)過SQL解析,在大規(guī)模數(shù)據(jù)上并發(fā)進行讀、寫的性能較弱。
(5)數(shù)據(jù)量太大會導(dǎo)致數(shù)據(jù)分析軟件難以有效、準(zhǔn)確地分析數(shù)據(jù)。
綜上所述,傳統(tǒng)關(guān)系型數(shù)據(jù)庫已無法滿足大數(shù)據(jù)時代TB、PB級醫(yī)療數(shù)據(jù)的存儲需求。為此,接下來將討論基于分布式技術(shù)存儲醫(yī)療數(shù)據(jù)的解決方案。
數(shù)據(jù)存儲系統(tǒng)經(jīng)過長期發(fā)展,已由單機存儲系統(tǒng)逐步演變?yōu)橹С址植际綌U展的存儲系統(tǒng)。隨后,關(guān)系型數(shù)據(jù)庫的分布式方案和原生支持分布式存儲的NoSQL數(shù)據(jù)庫也應(yīng)運而生。本節(jié)分別介紹了Hadoop分布式存儲系統(tǒng)和NoSQL數(shù)據(jù)庫。
2.1.1 Hadoop分布式存儲系統(tǒng)
Apache Hadoop是一款主流支持海量數(shù)據(jù)存儲與處理的分布式系統(tǒng),包括Hadoop File System(HDFS)、Map Reduce、Hadoop Data Base(HBase)等重要組件。其中,HDFS是Hadoop系統(tǒng)數(shù)據(jù)存儲和管理中心,具有高容錯性、高效寫入等特點。其集群包括Name Node和Data Node兩大組成部分,Name Node負責(zé)管理文件系統(tǒng)的元數(shù)據(jù)和Data Node節(jié)點,Data Node是文件系統(tǒng)的實際工作節(jié)點,負責(zé)存儲和檢索數(shù)據(jù),并定期將存儲的塊信息發(fā)送給Name Node。HDFS架構(gòu)圖如圖2所示。
Fig.2 Architect urediagram of HDFS圖2 HDFS架構(gòu)圖
Map Reduce是一種處理和生成大規(guī)模數(shù)據(jù)集的模型,該模型以一種可靠性高、容錯性強的方式實現(xiàn)海量數(shù)據(jù)集的并行處理。Map Reduce在處理大數(shù)據(jù)集時,將任務(wù)分解給多個Hadoop運行節(jié)點處理,提高了集群處理海量數(shù)據(jù)的能力。
Fig.3 Structure diagram of HBase圖3 HBase結(jié)構(gòu)圖
對于有隨機讀取需求的應(yīng)用請求,將數(shù)據(jù)存儲于HBase中。HBase是一款面向列的非關(guān)系型數(shù)據(jù)庫,其底層數(shù)據(jù)存儲在HDFS中,可保證數(shù)據(jù)的可靠性,將其與Map Reduce集成可確保在分析海量數(shù)據(jù)時系統(tǒng)的高效性。如圖3所示,HBase由HMaster、HRegion Server、HRegion和Zoo keeper組件構(gòu)成。其中,HMaster是HBase集群的主控服務(wù)器,負責(zé)為HRegion分配HRegion Server;HRegion Server負責(zé)為客戶端提供數(shù)據(jù)寫入、刪除、查找服務(wù);HRegion是按行鍵劃分的子表,是HBase中存儲和處理的最小單位;Zoo Keeper為HBase集群提供應(yīng)用協(xié)調(diào)服務(wù),檢測并淘汰失效的Master,選舉新的活躍狀態(tài)的Master。
2.1.2 No SQL數(shù)據(jù)庫
NoSQL數(shù)據(jù)庫存儲的數(shù)據(jù)不受固定結(jié)構(gòu)限制,數(shù)據(jù)組織簡單,可擴展性好,適合存儲海量數(shù)據(jù)。該數(shù)據(jù)庫可分為列式數(shù)據(jù)庫、文檔數(shù)據(jù)庫和鍵值數(shù)據(jù)庫等。其中,以MongoDB為代表的文檔數(shù)據(jù)庫支持存儲多種結(jié)構(gòu)數(shù)據(jù),并且具有強大的查詢功能、索引能力,適用于讀、取操作頻繁的海量數(shù)據(jù)應(yīng)用場景。
國內(nèi)外專家針對醫(yī)療數(shù)據(jù)存儲系統(tǒng)的業(yè)務(wù)需求和Hadoop系統(tǒng)的局限性,進行了大量的研究和改進。通過對現(xiàn)有文獻的研究,可將基于Hadoop的醫(yī)療數(shù)據(jù)存儲系統(tǒng)的改進方法歸納為以下幾點:
(1)提升系統(tǒng)性能。HDFS使用數(shù)據(jù)塊作為數(shù)據(jù)讀寫單位,將元數(shù)據(jù)保存在Name Node的內(nèi)存中,但由于醫(yī)療數(shù)據(jù)中包含大量的檢驗數(shù)據(jù)、影像數(shù)據(jù)等小文件會占用大量的內(nèi)存資源,使得系統(tǒng)處理效率降低。此外,Hadoop副本存儲策略使得讀、寫操作頻繁的節(jié)點容易達到負載閾值,多次觸發(fā)系統(tǒng)的負載均衡操作。因此,通過優(yōu)化小文件處理策略,改進Hadoop的副本選擇策略,可實現(xiàn)基于Hadoop的醫(yī)療數(shù)據(jù)存儲系統(tǒng)的性能優(yōu)化。
(2)優(yōu)化查詢性能。Hadoop分布式系統(tǒng)具有成本低、擴展性強、可靠性高等優(yōu)點,適用于存儲時效性較差的醫(yī)療數(shù)據(jù),但無法滿足實時存儲需求。HDFS旨在以高延遲為代價實現(xiàn)高吞吐,不適合低延遲讀取請求,但醫(yī)療數(shù)據(jù)讀、取操作較多,響應(yīng)時間過長會影響用戶體驗,可通過構(gòu)建索引優(yōu)化醫(yī)療數(shù)據(jù)存儲系統(tǒng)的查詢性能。
(3)數(shù)據(jù)分析。如何結(jié)合Map Reduce、Spark等大數(shù)據(jù)分析技術(shù)對數(shù)據(jù)集進行并行處理,是分析數(shù)據(jù)價值的關(guān)鍵。
目前已有大量基于改進Hadoop存儲系統(tǒng)的醫(yī)療數(shù)據(jù)存儲解決方案,在系統(tǒng)存儲性能優(yōu)化、高效檢索和數(shù)據(jù)分析等方面均取得了較好的研究成果。具體概括如表1所示。
Table1 Medical data storages cheme based on improved Hadoop表1 基于改進Hadoop的醫(yī)療數(shù)據(jù)存儲方案
續(xù)表
MongoDB文檔數(shù)據(jù)庫是一種重要的NoSQL數(shù)據(jù)庫,支持存儲多種數(shù)據(jù)類型。根據(jù)醫(yī)療數(shù)據(jù)存儲格式,可將其分為文檔數(shù)據(jù)、二進制小文件和二進制大文件三大類。MongoDB支持文檔數(shù)據(jù)的轉(zhuǎn)換和存儲,并能夠直接存儲二進制小文件。對于二進制大文件,MongoDB的GridFS機制可對其進行切分和存儲。MongoDB存儲醫(yī)療數(shù)據(jù)的示意圖如圖4所示。
Fig.4 MongoD B-based medical data storage architecture圖4 基于MongoDB的醫(yī)療數(shù)據(jù)存儲架構(gòu)
如今,已有多名研究者使用MongoDB數(shù)據(jù)庫存儲醫(yī)療數(shù)據(jù)。例如,李偉等使用MongoDB存儲數(shù)據(jù)的流程如下:①根據(jù)疾病類型建立疾病數(shù)據(jù)庫;②根據(jù)患者ID創(chuàng)建集合,存儲患者的小文件和文檔數(shù)據(jù),并將患者的大文件數(shù)據(jù)存儲在與該集合同名的GridFS分區(qū)下;③將文件的描述信息以文檔形式插入集合中。此外,Ricardo等分別使用MySQL和MongoDB數(shù)據(jù)庫存儲電子健康記錄,實驗發(fā)現(xiàn)MongoDB的吞吐量和查詢時間都優(yōu)于MySQL,證明MongoDB數(shù)據(jù)庫更適合存儲醫(yī)療信息和查詢數(shù)據(jù)。
Roshan等為了提升MongoDB的查詢性能,提出在數(shù)據(jù)處理階段創(chuàng)建和維護文檔或文件的元數(shù)據(jù)信息,以便在檢索數(shù)據(jù)時快速定位、高效檢索所需數(shù)據(jù)。Poly等提出了一種數(shù)據(jù)模型算法,該算法使用集合保存指定的查詢屬性,通過探索數(shù)據(jù)屬性的相關(guān)性、消除重復(fù)屬性、保存屬性序列等優(yōu)化措施,使其滿足醫(yī)療數(shù)據(jù)查詢頻率和查詢多樣化的性能要求。Silva等提出了一種PACS歸檔方案,通過GridFS和多字段索引機制優(yōu)化醫(yī)療影像歸檔的性能。Mr A等設(shè)計了一種查詢語言AQL,通過使用MongoDB的持久化子部分存儲和查詢電子健康記錄摘要,以提升系統(tǒng)的查詢性能。
綜上所述,通過建立文件描述信息庫、維護文件元數(shù)據(jù)信息、索引優(yōu)化等方式均可提升基于MongoDB的醫(yī)療數(shù)據(jù)存儲系統(tǒng)的響應(yīng)速度。
分布式技術(shù)可實現(xiàn)醫(yī)療數(shù)據(jù)的統(tǒng)一存儲與查詢,但目前研究仍然存在一些問題。例如,醫(yī)療數(shù)據(jù)中包含大量患者隱私信息,而目前的存儲方案均未考慮數(shù)據(jù)隱私保護。由于醫(yī)療數(shù)據(jù)的高敏感性,各機構(gòu)通常使用中心化方式管理數(shù)據(jù),然而該管理方式不夠透明,容易造成數(shù)據(jù)篡改、隱私泄露等問題。這些問題直接威脅著醫(yī)療領(lǐng)域的數(shù)據(jù)安全和用戶隱私,使各級機構(gòu)間的數(shù)據(jù)難以實現(xiàn)相互共享,無法充分利用醫(yī)療數(shù)據(jù)的價值。
近年來,隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,其已成為保障數(shù)據(jù)安全共享的有效手段,利用密碼學(xué)知識,可確保數(shù)據(jù)不被篡改、不可偽造和去中心化傳輸訪問的安全。然而,作為一項新興技術(shù),區(qū)塊鏈對于分布式系統(tǒng)架構(gòu)仍缺乏理論支持和高并發(fā)讀寫業(yè)務(wù)的實驗測試。未來可重點研究基于分布式架構(gòu)的區(qū)塊鏈技術(shù),實現(xiàn)基于隱私保護的分布式醫(yī)療大數(shù)據(jù)存儲模型。
為更好利用醫(yī)療信息資源作出科學(xué)決策,需要深入挖掘醫(yī)療數(shù)據(jù)的價值。當(dāng)前醫(yī)療大數(shù)據(jù)分析技術(shù)都側(cè)重于統(tǒng)計分析和決策,尤其是基于MongoDB的醫(yī)療數(shù)據(jù)存儲系統(tǒng),與數(shù)據(jù)分析相關(guān)的研究較少。知識圖譜在自然語言處理領(lǐng)域興起,已成為呈現(xiàn)數(shù)據(jù)知識的有效組織形式,使用該技術(shù)組織醫(yī)療數(shù)據(jù)有助于抽取醫(yī)療知識,實現(xiàn)醫(yī)療知識推理、遠程會診、推薦用藥、疾病預(yù)測等輔助診療服務(wù)。
大數(shù)據(jù)時代,醫(yī)療數(shù)據(jù)規(guī)模急劇擴大,數(shù)據(jù)呈現(xiàn)多模態(tài)特征。傳統(tǒng)關(guān)系型數(shù)據(jù)庫已無法保證海量數(shù)據(jù)的高效存儲與快速響應(yīng),為此分布式存儲技術(shù)為存儲海量醫(yī)療數(shù)據(jù)提供了新思路?;贖adoop的醫(yī)療數(shù)據(jù)存儲系統(tǒng)在充分發(fā)揮HDFS、HBase和Map Reduce等組件優(yōu)勢的基礎(chǔ)上,進一步優(yōu)化了存儲和查詢性能,實現(xiàn)了集高吞吐、快速定位和高效分析于一體的“智慧醫(yī)療”存儲系統(tǒng)。基于MongoDB數(shù)據(jù)庫的醫(yī)療數(shù)據(jù)存儲系統(tǒng)可滿足多模態(tài)醫(yī)療數(shù)據(jù)統(tǒng)一存儲和快速響應(yīng)需求,為后續(xù)的多模態(tài)數(shù)據(jù)分析和醫(yī)療數(shù)據(jù)挖掘提供了平臺支撐。面向隱私數(shù)據(jù)保護和醫(yī)療知識推理的分布式醫(yī)療數(shù)據(jù)存儲方案將可能成為未來的發(fā)展方向。