摘要:本文淺談大數(shù)據(jù)相關(guān)技術(shù)及當(dāng)前大數(shù)據(jù)庫處理架構(gòu)Hdadoop,其中包括分布式文件系統(tǒng)HDFS、分布式數(shù)據(jù)庫HBase,MapReduce模型及工作流程,并且對(duì)大數(shù)據(jù)在醫(yī)療應(yīng)用方面進(jìn)行舉例及分析。
關(guān)鍵詞:大數(shù)據(jù)技術(shù);醫(yī)療應(yīng)用分析
一、大數(shù)據(jù)關(guān)鍵技術(shù)
Hadoop是開源分布式計(jì)算平臺(tái),提供了分布式基礎(chǔ)架構(gòu),支持多平臺(tái)運(yùn)行,Hadoop核心技術(shù)包括分布式文件系統(tǒng)HDFS、分布式數(shù)據(jù)庫HBase和MapReduce分布式并行編程。分布式文件系統(tǒng)HDFS能夠?qū)崿F(xiàn)較高的讀寫速度及容錯(cuò)率,能夠在廉價(jià)的集群上運(yùn)行,擁有很好的拓展性。Hadoop是分布式處理軟件架構(gòu)的典范,包含了眾多的子項(xiàng)目,其中還包括Zookepper,Hbase、Hlive、Pig等功能組件。涉及分布式并行編程、分布式數(shù)據(jù)庫、分布式文件系統(tǒng)、NoSQL數(shù)據(jù)庫、云數(shù)據(jù)庫、流計(jì)算、圖計(jì)算等等相關(guān)技術(shù)。Hadoop官方推薦使用Linux操作系統(tǒng),需要在集群的每個(gè)終端電腦上創(chuàng)建Hadoop用戶,安裝JAVA虛擬機(jī),并且設(shè)置SSH登錄權(quán)限,以便于啟動(dòng)集群中Hadoop守護(hù)進(jìn)程。對(duì)于分布式集群而言,需要通過配置文件對(duì)各個(gè)組件協(xié)同進(jìn)行配置。
HDFS(分布式文件系統(tǒng))能夠運(yùn)行在廉價(jià)服務(wù)器上,在設(shè)計(jì)之初就將服務(wù)器故障作為常見問題來考慮,充分考慮的硬件的不穩(wěn)定性。HDFS可以保證硬件不穩(wěn)定的情況下也能保證文件以文件流的形式訪問文件系統(tǒng)中的數(shù)據(jù)。HDFS分布式文件系統(tǒng)為了減少尋址開銷,64MB為單位,以塊的形式進(jìn)行存儲(chǔ)及讀取。HDFS中名稱節(jié)點(diǎn)(NameNode)和數(shù)據(jù)節(jié)點(diǎn)(DataNode),而名稱節(jié)點(diǎn)擁有兩個(gè)核心數(shù)據(jù)結(jié)構(gòu),F(xiàn)sImage和EditLog。FsImage用于保存文件系統(tǒng)的樹形結(jié)構(gòu)及文件結(jié)構(gòu)的元數(shù)據(jù),而EditLog記錄了所有對(duì)文件的創(chuàng)建、刪除等。FsImage文件加載在內(nèi)存中,所有操作記錄在EditLog中,當(dāng)重啟名稱節(jié)點(diǎn)時(shí),通過EditLog還原FsImage為最新記錄。數(shù)據(jù)節(jié)點(diǎn)(DataNode)是文件系統(tǒng)中的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),用于數(shù)據(jù)存儲(chǔ)和讀取,并定期向名稱節(jié)點(diǎn)發(fā)送該服務(wù)器上所存儲(chǔ)的塊列表信息。HDFS采用主從結(jié)構(gòu)模式進(jìn)行內(nèi)部管理, HDFS集群包含一個(gè)名稱節(jié)點(diǎn),多個(gè)數(shù)據(jù)節(jié)點(diǎn)。一個(gè)文件會(huì)被切分成多個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊會(huì)被分布存儲(chǔ)到各個(gè)數(shù)據(jù)節(jié)點(diǎn)上。當(dāng)客戶端需要訪問一個(gè)文件時(shí),首先通過名稱節(jié)點(diǎn)查找到這個(gè)文件所有的塊數(shù)據(jù)節(jié)點(diǎn)的位置,客戶端直接并行訪問數(shù)據(jù)節(jié)點(diǎn)以提高數(shù)據(jù)訪問速度。
HBase是高可靠、高性能、可伸縮、面向列的分布式數(shù)據(jù)庫,主要用來存儲(chǔ)非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。HBase分布式數(shù)據(jù)庫一般使用HDFS文件系統(tǒng)用來存儲(chǔ)底層數(shù)據(jù),使用行鍵、列族、列限定符、時(shí)間戳對(duì)數(shù)據(jù)進(jìn)行檢索,時(shí)間戳是為了保證每個(gè)單元格對(duì)同一份數(shù)據(jù)存在多個(gè)版本,不同版本通過時(shí)間戳進(jìn)行辨別。HBase數(shù)據(jù)庫中的表由行和多個(gè)列族組成,表中的每個(gè)列都?xì)w屬于一個(gè)列族,訪問表中數(shù)據(jù)時(shí),列族作為列的前綴進(jìn)行訪問的,例如,School:Name,通過四維坐標(biāo)的形式,訪問Hbase表中的數(shù)據(jù),即[行值,列族,列,時(shí)間戳]的形式。HBase數(shù)據(jù)庫是基于列式存儲(chǔ)方式進(jìn)行數(shù)據(jù)存儲(chǔ),以列為單位,具有相似屬性值得數(shù)據(jù)會(huì)被連續(xù)存放在一起,而一行中的數(shù)據(jù)會(huì)以列為單位被分開存儲(chǔ),而傳統(tǒng)關(guān)系型數(shù)據(jù)庫中一行數(shù)據(jù)會(huì)被連續(xù)存放在存儲(chǔ)磁盤頁中,當(dāng)我們需要訪問其中某些屬性值時(shí),必須將整行數(shù)據(jù)所有屬性值查詢一遍,存放在內(nèi)存中,對(duì)于大數(shù)據(jù)量時(shí)會(huì)造成IO資源及內(nèi)存資源緊張。列式數(shù)據(jù)庫適合于大批量數(shù)據(jù)的查詢,僅需處理可用的查詢列,與其無關(guān)的數(shù)據(jù)列則無需響應(yīng),但是當(dāng)需要一個(gè)完整的數(shù)據(jù)元組時(shí)將從各個(gè)數(shù)據(jù)磁盤頁中將數(shù)據(jù)進(jìn)行重組和封裝,以拼湊成完成元組數(shù)據(jù),這對(duì)于聯(lián)機(jī)型事務(wù)和實(shí)時(shí)業(yè)務(wù)而言,會(huì)造成資源極度消耗。
MapReduce是關(guān)于大數(shù)據(jù)的核心并行計(jì)算模型,將大規(guī)模集群上并行計(jì)算進(jìn)行具體抽象為Map和Reduce兩個(gè)函數(shù),編程人員只需要實(shí)現(xiàn)Map和Reduce函數(shù),而不需要關(guān)系進(jìn)程調(diào)度、負(fù)載、分片、容錯(cuò)等具體細(xì)節(jié),Map函數(shù)是作為數(shù)據(jù)輸入函數(shù),數(shù)據(jù)來自于大數(shù)據(jù)集被分割成的小數(shù)據(jù)塊,這些小的數(shù)據(jù)塊可以獨(dú)立的、并行的被多個(gè)Map任務(wù)來處理,數(shù)據(jù)塊格式是任意形式的,如文檔、圖片、二進(jìn)制格式都可以。Reduce函數(shù)的輸入來自于Map處理后的結(jié)果,將具有相同鍵值對(duì)的數(shù)據(jù)以某種方式組合在一起,形成一個(gè)合并文件或結(jié)果Map函數(shù)處理結(jié)果后通常會(huì)形成<key,value>形式的中間結(jié)果,而Reduce函數(shù)的作用則是將多個(gè)Map函數(shù)生成的結(jié)果進(jìn)行合并,將相同key鍵值的數(shù)據(jù)合并在一起,以某種計(jì)算方式進(jìn)行最總合并,最終得到我們想要的結(jié)果。
二、醫(yī)療應(yīng)用
數(shù)據(jù)特別適合醫(yī)療數(shù)據(jù)的分析和匯總,由于患者的數(shù)據(jù)非常龐大,患者的數(shù)據(jù)可以來自于物聯(lián)網(wǎng)可穿戴設(shè)備、也可以來自于醫(yī)院內(nèi)的HIS、RIS、PACS、LIS、EMR等系統(tǒng)數(shù)據(jù),同時(shí)這幾年隨著醫(yī)改不斷深化,醫(yī)保數(shù)據(jù)及DRGS數(shù)據(jù)分析都離不開大數(shù)據(jù)的支持,在醫(yī)院管理層面,領(lǐng)導(dǎo)層更希望得到整個(gè)區(qū)域患者來院及分布,某類疾病的患者外流原因及數(shù)量,醫(yī)院人員的工作效率等等,都需要大數(shù)據(jù)技術(shù)的支持,可以說大數(shù)據(jù)技術(shù)將影響醫(yī)院未來管理的方向,能夠讓管理者更宏觀的通過數(shù)據(jù)對(duì)醫(yī)院的整個(gè)運(yùn)營(yíng)狀態(tài)進(jìn)行把控,并給予相應(yīng)的原因分析。人類基因測(cè)序、區(qū)域健康大數(shù)據(jù)、流行病學(xué)的追溯及預(yù)測(cè)、智慧醫(yī)療都是大數(shù)據(jù)研究的范疇。醫(yī)療健康大數(shù)據(jù)蘊(yùn)含著巨大的價(jià)值,越來越多的人注重自身的健康管理,通過自身的查體健康檔案,可以通過大數(shù)據(jù)預(yù)測(cè)未來發(fā)生某種疾病的風(fēng)險(xiǎn),并給予健康指導(dǎo)及健康規(guī)劃、健康診療方案。大數(shù)據(jù)的發(fā)展特別能夠推動(dòng)各自醫(yī)院朝著智慧醫(yī)院方向發(fā)展,促進(jìn)更多智能化患者服務(wù),更好的為患者提供服務(wù)。
參考文獻(xiàn)
[1]張卜月.大數(shù)據(jù)技術(shù)原理與應(yīng)用探微[J].通訊世界,2019,26(01):138.
作者簡(jiǎn)介:薛凱,男,山東省青島市,1990年5月,本科,高級(jí)系統(tǒng)架構(gòu)師,軟件設(shè)計(jì)師,青島市黃島區(qū)人民醫(yī)院信息中心工作,主要從事軟件維護(hù)、軟件開發(fā)