健康數(shù)據(jù)庫存儲架構(gòu)及高效數(shù)據(jù)訪問關(guān)鍵技術(shù)研究
發(fā)布時(shí)間:2021-03-06 21:23
健康數(shù)據(jù)庫是居民醫(yī)療健康相關(guān)的動(dòng)態(tài)檔案信息,對完善居民醫(yī)療就診、健康保健服務(wù)及對社會(huì)的醫(yī)療衛(wèi)生事業(yè)發(fā)展具有重要的意義。醫(yī)療健康數(shù)據(jù)由于其本身的模式自由與半結(jié)構(gòu)特性,同時(shí),管理居民健康檔案將面臨海量數(shù)據(jù)的處理,如何對這些信息進(jìn)行存儲設(shè)計(jì)及滿足不同用戶的高效數(shù)據(jù)訪問需求,這些因素都對全民健康檔案數(shù)據(jù)庫的發(fā)展帶來了巨大的挑戰(zhàn),因此,對健康數(shù)據(jù)庫存儲架構(gòu)及高效數(shù)據(jù)訪問的研究具有重要意義。本文主要內(nèi)容是設(shè)計(jì)實(shí)現(xiàn)以MongoDB數(shù)據(jù)庫作為數(shù)據(jù)源,進(jìn)行日常業(yè)務(wù)處理,以Hive作為目標(biāo)數(shù)據(jù)存儲,并結(jié)合Spark SQL進(jìn)行上層統(tǒng)計(jì)分析的健康數(shù)據(jù)庫存儲架構(gòu),及為了獲得更加高效的數(shù)據(jù)訪問及統(tǒng)計(jì)分析性能而進(jìn)行的基于負(fù)載驅(qū)動(dòng)的性能優(yōu)化。為了構(gòu)建健康數(shù)據(jù)庫的整體存儲架構(gòu),完成ETL過程的實(shí)現(xiàn)與優(yōu)化,設(shè)計(jì)實(shí)現(xiàn)了增量數(shù)據(jù)捕獲方法,并利用混合高斯模型(GMM)進(jìn)行異常數(shù)據(jù)的檢測,借助PDI(Pehtaho Data Integration)工具實(shí)現(xiàn)了ETL自動(dòng)化的過程。同時(shí),設(shè)計(jì)實(shí)現(xiàn)了一種數(shù)據(jù)解析方法,優(yōu)化PDI默認(rèn)解析效率;改變了原來的輪詢分區(qū),增加了一種自定義的數(shù)據(jù)分區(qū)方式。另一方面,對Hive與Spark SQ...
【文章來源】:國防科技大學(xué)湖南省 211工程院校 985工程院校
【文章頁數(shù)】:80 頁
【學(xué)位級別】:碩士
【部分圖文】:
Hive架構(gòu)圖
圖 1.3 Spark SQL 結(jié)構(gòu)圖[16]首先,根據(jù)輸入的數(shù)據(jù)源及類 SQL 語句會(huì)被 SQL 解析器解析成一個(gè)抽象語法樹,或者是利用編程接口生成的 DataFrame 對象。這時(shí)候產(chǎn)生的是一些非解析的屬性關(guān)系,叫做非解析的邏輯計(jì)劃,即其類型未與輸入的表數(shù)據(jù)進(jìn)行對應(yīng),比如我們不知道一個(gè)列名是否是有效的列名。此時(shí),Spark SQL 會(huì)利用其內(nèi)部的規(guī)則及跟蹤表數(shù)據(jù)的 Catalog 去解析這些屬性關(guān)系,生成邏輯計(jì)劃。然后 Catalyst 會(huì)在此基礎(chǔ)上執(zhí)行一些基于規(guī)則的優(yōu)化,包括常量合并,謂詞下推,投影,剪枝等,生成優(yōu)化的邏輯執(zhí)行計(jì)劃[16]。然后會(huì)把邏輯計(jì)劃轉(zhuǎn)化成匹配 Spark 具體運(yùn)行過程的操作,生成物理計(jì)劃;這時(shí)候可能會(huì)生成多個(gè)物理計(jì)劃,Spark SQL 會(huì)執(zhí)行基于代價(jià)的算法模型進(jìn)行代價(jià)預(yù)估,選擇一個(gè)最優(yōu)的執(zhí)行計(jì)劃。最后,利用代碼生成把執(zhí)行計(jì)劃轉(zhuǎn)化為每個(gè)機(jī)器上的可執(zhí)行二進(jìn)制代碼,在這個(gè)過程中,利用 Scala 的quasiquotes 特性進(jìn)行了一些優(yōu)化[16]。1.3 研究內(nèi)容與意義本部分內(nèi)容著重講述本文的課題來源,課題意義及研究的具體內(nèi)容與創(chuàng)新點(diǎn)。
圖 2.1 MongoDB 分片集群架構(gòu)圖[28]主節(jié)點(diǎn)檢測是否是主節(jié)點(diǎn)是否大多數(shù)可達(dá)是否有主節(jié)點(diǎn)主節(jié)點(diǎn)Priority 是否最高結(jié)束NNNpriority最高節(jié)點(diǎn)比其它節(jié)點(diǎn)opTime落后10s以內(nèi)N主節(jié)點(diǎn)降級為從節(jié)點(diǎn)Y YYYY圖 2.2 主節(jié)點(diǎn)檢測圖分成塊的方法來存儲集群上的內(nèi)容,每個(gè)塊(
本文編號:3067837
【文章來源】:國防科技大學(xué)湖南省 211工程院校 985工程院校
【文章頁數(shù)】:80 頁
【學(xué)位級別】:碩士
【部分圖文】:
Hive架構(gòu)圖
圖 1.3 Spark SQL 結(jié)構(gòu)圖[16]首先,根據(jù)輸入的數(shù)據(jù)源及類 SQL 語句會(huì)被 SQL 解析器解析成一個(gè)抽象語法樹,或者是利用編程接口生成的 DataFrame 對象。這時(shí)候產(chǎn)生的是一些非解析的屬性關(guān)系,叫做非解析的邏輯計(jì)劃,即其類型未與輸入的表數(shù)據(jù)進(jìn)行對應(yīng),比如我們不知道一個(gè)列名是否是有效的列名。此時(shí),Spark SQL 會(huì)利用其內(nèi)部的規(guī)則及跟蹤表數(shù)據(jù)的 Catalog 去解析這些屬性關(guān)系,生成邏輯計(jì)劃。然后 Catalyst 會(huì)在此基礎(chǔ)上執(zhí)行一些基于規(guī)則的優(yōu)化,包括常量合并,謂詞下推,投影,剪枝等,生成優(yōu)化的邏輯執(zhí)行計(jì)劃[16]。然后會(huì)把邏輯計(jì)劃轉(zhuǎn)化成匹配 Spark 具體運(yùn)行過程的操作,生成物理計(jì)劃;這時(shí)候可能會(huì)生成多個(gè)物理計(jì)劃,Spark SQL 會(huì)執(zhí)行基于代價(jià)的算法模型進(jìn)行代價(jià)預(yù)估,選擇一個(gè)最優(yōu)的執(zhí)行計(jì)劃。最后,利用代碼生成把執(zhí)行計(jì)劃轉(zhuǎn)化為每個(gè)機(jī)器上的可執(zhí)行二進(jìn)制代碼,在這個(gè)過程中,利用 Scala 的quasiquotes 特性進(jìn)行了一些優(yōu)化[16]。1.3 研究內(nèi)容與意義本部分內(nèi)容著重講述本文的課題來源,課題意義及研究的具體內(nèi)容與創(chuàng)新點(diǎn)。
圖 2.1 MongoDB 分片集群架構(gòu)圖[28]主節(jié)點(diǎn)檢測是否是主節(jié)點(diǎn)是否大多數(shù)可達(dá)是否有主節(jié)點(diǎn)主節(jié)點(diǎn)Priority 是否最高結(jié)束NNNpriority最高節(jié)點(diǎn)比其它節(jié)點(diǎn)opTime落后10s以內(nèi)N主節(jié)點(diǎn)降級為從節(jié)點(diǎn)Y YYYY圖 2.2 主節(jié)點(diǎn)檢測圖分成塊的方法來存儲集群上的內(nèi)容,每個(gè)塊(
本文編號:3067837
本文鏈接:http://sikaile.net/yixuelunwen/yiyuanguanlilunwen/3067837.html
最近更新
教材專著