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