常強 趙偉 張磊
摘要: 氫分子生物醫(yī)學(xué)技術(shù)的發(fā)展方興未艾,大數(shù)據(jù)相關(guān)技術(shù)成為氫分子生物醫(yī)學(xué)領(lǐng)域的最新驅(qū)動力。依據(jù)氫分子生物醫(yī)學(xué)科研團隊需求,構(gòu)建氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫模型,在數(shù)據(jù)中心環(huán)境下,使用Hadoop(分布式存儲技術(shù)基礎(chǔ)框架)建立氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫,充分利用虛擬化和集群的威力,提高數(shù)據(jù)倉庫的高速運算和存儲分析能力。圍繞Hadoop生態(tài)圈及其技術(shù),實現(xiàn)了不同數(shù)據(jù)來源的氫分子生物醫(yī)學(xué)數(shù)據(jù)提取、轉(zhuǎn)換和加載,變?yōu)橥瑯?gòu)的多維數(shù)據(jù),開展數(shù)據(jù)挖掘與分析。通過基礎(chǔ)醫(yī)學(xué)研究與計算機技術(shù)相結(jié)合,為氫分子生物醫(yī)學(xué)臨床及科研提取更多有價值的信息。
【關(guān)鍵詞】氫分子 醫(yī)學(xué)數(shù)據(jù) 數(shù)據(jù)倉庫Hadoop
近年來,我國氫分子生物醫(yī)學(xué)研究不斷發(fā)展,臨床科學(xué)研究和基礎(chǔ)研究水平逐步提高,同時國內(nèi)氫健康產(chǎn)業(yè)不斷發(fā)展,相關(guān)廠家己達到600余家,相應(yīng)的氫分子生物醫(yī)學(xué)數(shù)據(jù)和產(chǎn)業(yè)數(shù)據(jù)迅速積累,這些數(shù)據(jù)中必定蘊含著大量未被發(fā)掘有價值的信息。氫分子生物醫(yī)學(xué)數(shù)據(jù)類型為文本、數(shù)字、圖像或者基因等,具有多維和異構(gòu)等特征。當前,氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫的相關(guān)分析研究還很少見。
傳統(tǒng)的數(shù)據(jù)庫對具體的業(yè)務(wù)數(shù)據(jù)進行處理,當對多個數(shù)據(jù)庫的數(shù)據(jù)進行處理分析時,需要使用到數(shù)據(jù)倉庫技術(shù),數(shù)據(jù)倉庫對操作性數(shù)據(jù)展開處理,通過對數(shù)據(jù)進行ETL等一系列過程處理,實現(xiàn)數(shù)據(jù)的信息采集和分析處理。在大數(shù)據(jù)時代,數(shù)據(jù)倉庫的重要性更勝以往。
大數(shù)據(jù)是近年來隨著以Hadoop為代表的一系列分布式計算框架的產(chǎn)生發(fā)展才流行起來。Hadoop是一個平臺,在它之上可以開發(fā)和運行大規(guī)模數(shù)據(jù)的軟件。從一個實例中我們可以看出它的優(yōu)勢:在一個10TB的醫(yī)學(xué)數(shù)據(jù)文件中,找出詞語“高密度脂蛋白”的個數(shù),最直接的辦法是按文件順序查找每個詞語,并進行統(tǒng)計,我們假設(shè)從磁盤到內(nèi)存的數(shù)據(jù)傳輸率為每秒100MB,那么在單一計算機上將這10TB的數(shù)據(jù)讀入內(nèi)存需要27.7個小時。但是我們?nèi)绻褂梅植际教摂M化技術(shù),把數(shù)據(jù)分散到10臺虛擬機上,每臺只需1TB的數(shù)據(jù),總的時間為2.7個小時。如果我們用100臺虛擬機,這個任務(wù)只需要0.27個小時??梢奌adoop分布式處理和存儲數(shù)據(jù)優(yōu)勢十分明顯。
我校氫生物醫(yī)學(xué)科研團隊積累了大量的科研數(shù)據(jù),數(shù)據(jù)來源多樣,從而在大數(shù)據(jù)主流的背景下,有必要在數(shù)據(jù)中心環(huán)境下,使用數(shù)據(jù)倉庫和Hadoop平臺技術(shù),充分利用虛擬化和集群的威力,提高數(shù)據(jù)倉庫的高速運算和存儲分析能力,將這些數(shù)據(jù)轉(zhuǎn)換為同構(gòu)的數(shù)據(jù),通過數(shù)據(jù)挖掘技術(shù),找出數(shù)據(jù)之間的關(guān)聯(lián),規(guī)律和趨勢,推動氫分子生物醫(yī)學(xué)的進一步發(fā)展。
1 總體架構(gòu)設(shè)計
氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫環(huán)境包括操作型系統(tǒng)和數(shù)據(jù)倉庫系統(tǒng)兩大部分,系統(tǒng)總體架構(gòu)圖如圖1所示。
操作型系統(tǒng)數(shù)據(jù)由業(yè)務(wù)數(shù)據(jù)組成,我校氫生物醫(yī)學(xué)研究團隊的科研臨床業(yè)務(wù)數(shù)據(jù)來源多樣非單一,既有儀器設(shè)備直接產(chǎn)生的數(shù)據(jù),又有科研管理軟件等業(yè)務(wù)軟件錄入整理后的數(shù)據(jù),還有直接從社區(qū),病患等處采集的臨床數(shù)據(jù)。
數(shù)據(jù)倉庫建立的最為重要的處理過程是ETL過程,由數(shù)據(jù)抽取、轉(zhuǎn)換和裝載過程三個過程緊密相連。經(jīng)過數(shù)據(jù)抽取過程,將操作型數(shù)據(jù)儲存到數(shù)據(jù)倉庫中,形成原始數(shù)據(jù)存儲(RDS);在經(jīng)過數(shù)據(jù)的轉(zhuǎn)換和轉(zhuǎn)載過程,變?yōu)檗D(zhuǎn)換后的數(shù)據(jù)(TDS)。
自動化調(diào)度組件的功能是定期自動執(zhí)行ETL過程。數(shù)據(jù)目錄記錄數(shù)據(jù)倉庫中數(shù)據(jù)的清單。
查詢引擎負責(zé)運行數(shù)據(jù)挖掘算法,執(zhí)行用戶查詢;最終用戶通過可視化的界面得到數(shù)據(jù)分析結(jié)果。
2 數(shù)據(jù)倉庫的構(gòu)建
2.1 建立氫生物醫(yī)學(xué)科研數(shù)據(jù)倉庫,首先要設(shè)計好數(shù)據(jù)模型
2.1.1 需求分析
本項目需求分為業(yè)務(wù)需求和技術(shù)需求。業(yè)務(wù)需求是與項目組科研人員充分溝通,了解氫生物科研業(yè)務(wù)術(shù)語和數(shù)據(jù)來源和類型等;數(shù)據(jù)倉庫從多個數(shù)據(jù)源抽取數(shù)據(jù),技術(shù)需求的作用就是確定數(shù)據(jù)源有哪些,數(shù)據(jù)需要做哪些轉(zhuǎn)換和數(shù)據(jù)更新的頻率是多少。
2.1.2 邏輯設(shè)計
細化氫生物醫(yī)學(xué)研究團隊的需求以形成數(shù)據(jù)元素列表,確定科研主題域,比如代謝組學(xué)和蛋白組學(xué)屬性,創(chuàng)建相應(yīng)的表,設(shè)計出實體關(guān)系圖,此階段的任務(wù)是發(fā)現(xiàn)邏輯對象之間的關(guān)系
2.1.3 物理設(shè)計
通過構(gòu)建物理分布模型實現(xiàn)數(shù)據(jù)倉庫的物理設(shè)計,通過Hadoop平臺實現(xiàn),將前期設(shè)計的概念模型中的表、索引和視圖轉(zhuǎn)化為物理數(shù)據(jù)庫。
經(jīng)過分析,本研究采用維度數(shù)據(jù)模型來構(gòu)建氫生物醫(yī)學(xué)數(shù)據(jù)倉庫模型,事實和維度是維度模型的核心概念,事實是對業(yè)務(wù)數(shù)據(jù)的度量,維度是觀察數(shù)據(jù)的角度。相應(yīng)地建立氫生物醫(yī)學(xué)數(shù)據(jù)倉庫不同主題域的事實表和維度表,并聲明粒度。
Select s.name as shenqv.info,sun(f.unitsqingshui) from fact_sheqvshiyan f
Innerjoin dim_date d on(fdate=d.id)
Inner join dim_xuetang x on(f.xuetang=x.id)
Inner join dim_qingshuizu q on(fqingshuizu=q.id)
Where d.date=2018.8 and and x.id<9mol/l
通過以上SQL語句可以查詢出在2018年8月份飲用富氫水后血糖平均值小于9mol/l的參與社區(qū)試驗的人員名單??梢娺x擇維度數(shù)據(jù)模型是因為其具有易理解,高性能和可擴展。
2.2 配置部署Hadoop平臺,依托模型,建立氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫
傳統(tǒng)數(shù)據(jù)倉庫一般建立在oracle,mysql等關(guān)系數(shù)據(jù)庫系統(tǒng)上,當數(shù)據(jù)量達到一定規(guī)模后,其擴展成本高并且性能不佳,因此本項目依托hadoop平臺的分布式存儲和計算優(yōu)勢,安裝部署Hadoop平臺。Hadoop可劃分為四個基本模塊,分別是基礎(chǔ)功能庫,分布式文件系統(tǒng),YARN作業(yè)調(diào)度和資源管理框架和MapReduce大數(shù)據(jù)并行處理程序。
根據(jù)前期設(shè)計好的模型,使用Hive工具將數(shù)據(jù)載入Hadoop平臺,在hadoop平臺上構(gòu)建起一個氫生物醫(yī)學(xué)數(shù)據(jù)倉庫。項目在此階段由理論研究進入具體的實踐部署。
(1)配置安裝環(huán)境:在數(shù)據(jù)中心環(huán)境下,劃分四臺組虛擬機,其中一臺為master主機,其余三臺為slave從機,地址規(guī)劃如下:
192.168.28.171 master
192.168.28.172 slavel
192.168.28.173 slave2
192.168.28.174 slave3
主機規(guī)劃:master主機運行ResourceManager進程,slave從機運DataNode和NodeManager進程。
每臺硬盤10T,內(nèi)存8G以上,操作系統(tǒng)centos,配置ip,組網(wǎng)通訊。
(2)部署調(diào)試Hadoop:建立運行Hadoop集群的Linux用戶,在hosts中添加域名解析,安裝兼容版本的jdk,編輯主要的配置文件,HDFS初始化
cd-∥安裝Hadoop
tar-xvzq hadoop-2.7.l.tar.gz
建立目錄過程:
cd-/hadoop-2.7.1
mkdir tmp
mkdir hdfs
mkdir hdfs/data
mkdir hdfs/name
將Hadoop主目錄導(dǎo)入各個從服務(wù)器:
Scp-r./hadoop-2.7.1 192.168.28.172:/home/grid/
Scp-r./hadoop-2.7.1 192.168.28.173:/home/grid/
Scp-r./hadoop-2.7.1 192.168.28.174:/home/grid/
(3)存儲數(shù)據(jù):使用使用Hive工具將原始數(shù)據(jù)RDS分布存儲到Hadoop平臺中的HDFS。
為了連接原始數(shù)據(jù)RDS,需要在Hive中建立一個名為hydrogen的數(shù)據(jù)庫,如下所示
Create database hydrogen;
單擊hydrogen,顯示內(nèi)容如下:
主機名:192.168.65.101
端口號:10001
數(shù)據(jù)庫名:hydrogen
2.3 使用Kettle工具完成數(shù)據(jù)抽取和轉(zhuǎn)換裝載過程
它的工作就是把異構(gòu)的數(shù)據(jù)轉(zhuǎn)換為同構(gòu)數(shù)據(jù)。本項目使用開源的ETL工具Kettle操作Hadoop平臺中的數(shù)據(jù),完成數(shù)據(jù)抽取和轉(zhuǎn)換裝載過程。
(1)數(shù)據(jù)抽取是ETL的第一步,也是最重要的一步。由于數(shù)據(jù)源的復(fù)雜性,數(shù)據(jù)抽取通常需要不止一次甚至多次才能完成。
(2)數(shù)據(jù)轉(zhuǎn)換是ETL中最復(fù)雜的部分,抽取上來到數(shù)據(jù)有的直接使用,有的則需要應(yīng)用一系列規(guī)則和函數(shù)進行數(shù)據(jù)清洗,目的是讓合規(guī)的數(shù)據(jù)進入到氫生物醫(yī)學(xué)數(shù)據(jù)倉庫中。如本項目中臨床數(shù)據(jù)中的性別字段,有些系統(tǒng)使用1和O,有的采用M和F或者男女,那么數(shù)據(jù)轉(zhuǎn)換后我們統(tǒng)一為M和F。
(3)數(shù)據(jù)裝載是將轉(zhuǎn)換后的數(shù)據(jù)轉(zhuǎn)載到氫生物醫(yī)學(xué)數(shù)據(jù)倉庫,此階段重點考慮兩方面問題,一是裝載效率問題,本研究從幾個方面加以解決,首先配置高性能且資源獨享的服務(wù)器,其次在轉(zhuǎn)載過程中禁用數(shù)據(jù)庫約束和索引。二是如果中途失敗,如何重復(fù)執(zhí)行裝載過程。本研究采用失敗點快照方式,重新執(zhí)行錯誤的轉(zhuǎn)載節(jié)點。
完成ETL過程后,氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫中的RDS原始數(shù)據(jù)變?yōu)檗D(zhuǎn)換后的TDS數(shù)據(jù),TDS數(shù)據(jù)是真正的氫生物醫(yī)學(xué)數(shù)據(jù)倉庫的數(shù)據(jù),至此實現(xiàn)了氫生物醫(yī)學(xué)數(shù)據(jù)倉庫的建立。
3 結(jié)論
與以往的醫(yī)學(xué)數(shù)據(jù)采集分析處理系統(tǒng)只能采集單一數(shù)據(jù)來源相比,本文的創(chuàng)新之處在于在研究了數(shù)據(jù)倉庫技術(shù)和Hadoop大數(shù)據(jù)技術(shù)的基礎(chǔ)上,根據(jù)學(xué)校學(xué)術(shù)和社會影響力日益提升的氫分子生物科研團隊的實際臨床科研需求,實現(xiàn)了將多來源,不同數(shù)據(jù)類型的臨床科研數(shù)據(jù)轉(zhuǎn)化為多維的同構(gòu)數(shù)據(jù),實現(xiàn)了數(shù)據(jù)的融合,為數(shù)據(jù)挖掘分析做好了數(shù)據(jù)基礎(chǔ);同時基于Hadoop平臺的氫分子生物醫(yī)學(xué)數(shù)據(jù)倉庫能夠體現(xiàn)出分布式計算和存儲的優(yōu)勢,可以應(yīng)對日后不斷增加的數(shù)據(jù)量。
參考文獻
[1]張譯,張廣德,于連城,羅義旺,吳彬,基于數(shù)據(jù)倉庫的電網(wǎng)數(shù)據(jù)分析系統(tǒng)的設(shè)計與開發(fā)[J].電子測量技術(shù),2018 (15):35-39.
[2]王萌,大數(shù)據(jù)時代的挑戰(zhàn)、價值與應(yīng)對策略探究[J],信息系統(tǒng)工程,2017 (01): 40.
[3]余曉平,甕正科,鄭文峰,田敏,銀行數(shù)據(jù)倉庫的系統(tǒng)設(shè)計與實現(xiàn)[J].微計算機信息,2006 (30):153-155.
[4]徐凱,壓鑄車間智能制造系統(tǒng)軟件架構(gòu)設(shè)計及開發(fā)研究[D].浙江大學(xué),2017.
[5]畢巖,基于Hadoop的并行關(guān)聯(lián)算法的研究[D].南京郵電大學(xué),2015.