日韩大乳视频中文字幕,亚洲一区二区三区在线免费观看,v在线,美女视频黄频a免费大全视频

您的位置:健客網(wǎng) > 新聞頻道 > 政策解讀 > 聚焦醫(yī)改 > 基于NoSQL的中醫(yī)藥數(shù)據(jù)存儲方法研究

基于NoSQL的中醫(yī)藥數(shù)據(jù)存儲方法研究

2017-07-14 來源:中國數(shù)字醫(yī)學  標簽: 掌上醫(yī)生 喝茶減肥 一天瘦一斤 安全減肥 cps聯(lián)盟 美容護膚
摘要:MongoDB是一個模式靈活、開源、高性能、可擴展的文檔型數(shù)據(jù)庫。主要特性包括:存儲模式自由,面向集合存儲;支持動態(tài)查詢和完全索引,查詢表達式豐富;自動分片機制,支持動態(tài)添加機器;支持數(shù)據(jù)復制和自動故障恢復。

  數(shù)據(jù)類型多樣、數(shù)據(jù)量大、異構(gòu)是中醫(yī)藥數(shù)據(jù)的典型特征。目前,對中醫(yī)藥數(shù)據(jù)信息的存儲和管理,主要依賴于關(guān)系數(shù)據(jù)庫(RDBMS)。然而,面對海量異構(gòu)的中醫(yī)藥數(shù)據(jù)如何實現(xiàn)高并發(fā)讀寫、高可擴展性以及異源數(shù)據(jù)間的互操作等一系列問題,RDBMS由于其自身的局限遇到了困境,難以滿足中醫(yī)藥大數(shù)據(jù)高效存儲和訪問的迫切需求。因此,亟需研究新的數(shù)據(jù)管理模型來解決中醫(yī)藥數(shù)據(jù)的管理問題,而非關(guān)系型數(shù)據(jù)庫(NoSQL)的出現(xiàn)有效地彌補了RDBMS的不足。

  不同于RDBMS,NoSQL是一種分布式、非關(guān)系型數(shù)據(jù)庫系統(tǒng),不僅能夠?qū)崿F(xiàn)各類型數(shù)據(jù)的高并發(fā)讀寫,而且支持鍵值(Key-Value)、圖、列族、文檔等常見數(shù)據(jù)類型。NoSQL可以高效管理海量數(shù)據(jù),并且具有較好的可擴展性和靈活性。MongoDB屬于NoSQL的范疇,在NoSQL領(lǐng)域占有舉足輕重的地位。本文以MongoDB為代表,研究基于NoSQL的中醫(yī)藥大數(shù)據(jù)存儲方法。采用全國各省中醫(yī)院在線公開的大量藥方數(shù)據(jù)庫資源,通過研究存儲系統(tǒng)的體系結(jié)構(gòu)和關(guān)鍵技術(shù),與傳統(tǒng)關(guān)系型數(shù)據(jù)庫在相同的大數(shù)據(jù)條件下進行實驗對比,驗證了本文提出的方法在存儲和訪問海量中醫(yī)藥數(shù)據(jù)時具有更高的性能。

  MongoDB介紹

  MongoDB是一個模式靈活、開源、高性能、可擴展的文檔型數(shù)據(jù)庫。主要特性包括:存儲模式自由,面向集合存儲;支持動態(tài)查詢和完全索引,查詢表達式豐富;自動分片機制,支持動態(tài)添加機器;支持數(shù)據(jù)復制和自動故障恢復。MongoDB的以上特性為海量、異構(gòu)、多元的中醫(yī)藥大數(shù)據(jù)的存儲和訪問提供了支持。

  中醫(yī)藥數(shù)據(jù)管理系統(tǒng)設(shè)計

  中醫(yī)藥數(shù)據(jù)管理系統(tǒng)的設(shè)計需考慮以下因素:負載均衡性、數(shù)據(jù)冗余性和水平擴展性。因此,主要進行以下三方面設(shè)計。

  2.1MongoDB分布式集群設(shè)計由于單機節(jié)點無法滿足大數(shù)據(jù)高效存儲和訪問的要求,因此需要建立分布式集群環(huán)境來解決。一個MongoDB集群通常由三個部分組成。

  2.1.1分片節(jié)點(Shard)分片節(jié)點用于存儲實際的數(shù)據(jù)塊,一個分片節(jié)點可以由多個服務(wù)器組成副本集合,每個服務(wù)器存儲的數(shù)據(jù)相同,實現(xiàn)數(shù)據(jù)冗余和系統(tǒng)擴展。

  2.1.2路由服務(wù)(RouteServer)主要功能是處理終端請求和返回執(zhí)行結(jié)果,即MongoDB把不同的請求分發(fā)給不同的Shard,最后把所有相關(guān)分片結(jié)果整合后返回。

  2.1.3配置服務(wù)器(ConfigServer)主要負責存儲集群上元數(shù)據(jù)信息。

  本文設(shè)計的MongoDB分布式集群架構(gòu)如圖1所示。

  其中,圖1中的Mongos屬于控制服務(wù)器,提供路由服務(wù)。其根據(jù)ConfigServers存儲的每個塊數(shù)據(jù)記錄確定Client的不同請求要路由到哪個分片服務(wù)器,把結(jié)果融合后返回給Client終端。對于分片節(jié)點Shard來講,兩臺以上的mongod服務(wù)器為一組,即一個分片,一組里mongod數(shù)據(jù)相同,每個分片上存放的是一定范圍的數(shù)據(jù),當一個分片的數(shù)據(jù)量過多時,為保持負載平衡,會遷移到另外的分片,這樣的分片機制提高了系統(tǒng)的訪問能力和擴展能力。

  2.2分片設(shè)計所謂數(shù)據(jù)分片是指把數(shù)據(jù)分散地存儲于多個分片服務(wù)器上,減小單個服務(wù)器的負擔,進而使系統(tǒng)性能得到提高。本文設(shè)計的存儲系統(tǒng)選擇基于ID特征的分片策略。比如對記錄ID進行取模運算,結(jié)果為n,則該記錄被分配到編號為n的分片服務(wù)器(數(shù)據(jù)分區(qū))上。數(shù)據(jù)分片流程如圖2所示。

  根據(jù)圖2流程,以數(shù)據(jù)文件作為分片對象,基本分片原理是把整個數(shù)據(jù)文件根據(jù)所獲取的分片大小進行分片計算。因此,分片流程的第一步就是獲取需要分片的數(shù)據(jù)源文件,并計算數(shù)據(jù)源文件的總大小?;赾hunksize的值,如果當前數(shù)據(jù)源文件總大小大于chunksize,則重復執(zhí)行與chunksize取模的運算,得到相應(yīng)的分片號。分片的大小等于分片的長度,一直到當前總大小減去chunksize大小小于chunksize時,把最后剩余的未分片部分分配給下一個分片服務(wù)器。

  每個已分片的數(shù)據(jù)用來作為一個記錄的值和關(guān)鍵字,并且在每個記錄里面添加分片號、數(shù)據(jù)文件名、數(shù)據(jù)文件大小、分片大小等鍵值對。

  2.3負載均衡和冗余設(shè)計本文設(shè)計的存儲系統(tǒng)采用副本集的方式來實現(xiàn)數(shù)據(jù)冗余。即在一個分片節(jié)點中包含兩個以上存儲相同數(shù)據(jù)的mongod服務(wù)器,在寫數(shù)據(jù)文件時,把該數(shù)據(jù)分片寫入到多個mongod上,保持備份mongod之間的更新。那么即使其中某一臺mongod服務(wù)器出現(xiàn)故障,也可以立即啟用分片中的其他副本提供數(shù)據(jù),避免數(shù)據(jù)丟失,保障存儲系統(tǒng)的正常工作,增強系統(tǒng)的安全性、可靠性、穩(wěn)定性。

  3實驗結(jié)果與分析

  3.1實驗環(huán)境搭建由于基于NoSQL的中醫(yī)藥大數(shù)據(jù)存儲系統(tǒng)依賴于一定的大數(shù)據(jù)平臺。選擇1臺計算機做為主機,另外8臺計算機作為從機,搭建實際的集群節(jié)點。逐步配置大數(shù)據(jù)平臺,具體步驟在此不做贅述。

  3.2數(shù)據(jù)來源采用數(shù)據(jù)源來自全國各省中醫(yī)院在線公開的大量藥方數(shù)據(jù)庫資源,數(shù)據(jù)總大小達280GB。該數(shù)據(jù)源記錄了自2006年起至今的多所中醫(yī)院公開的藥方數(shù)據(jù)。例如:復方藿香洗劑治療手足癬(克白醋500克,黃精、明礬各10克,生大黃2克,藿香25),熏洗法治足癬感染(黃柏、黃芩、白鮮皮、百部、防風各15克,萆薢20克,枯礬12克,廣丹3克)等。

  采用的藥方對象具有數(shù)據(jù)量大、關(guān)系復雜、數(shù)據(jù)異構(gòu)等特點,RDBMS針對這類數(shù)據(jù)通常很難達到預期效果。因此通過基于NoSQL的大數(shù)據(jù)存儲技術(shù)進行管理,對大量公開的藥方進行收集、整理,探究其內(nèi)在規(guī)律,以期把實驗結(jié)果提供給臨床進行檢驗。

  3.3MongoDB數(shù)據(jù)存儲系統(tǒng)與傳統(tǒng)RDBMS性能對比

  3.3.1存儲性能對比分別對基于MongoDB數(shù)據(jù)存儲系統(tǒng)與RDBMS各進行1,20,100,500,1000次文件存儲,其中每個文件所占空間大小為40KB。MongoDB與RDBMS在數(shù)據(jù)存儲性能方面的比較如圖3所示。

  由圖3可以看出,處理的文件數(shù)量越多,兩種方式所需的處理時間越長,另一方面,數(shù)據(jù)量超過某一“閾值”時,RDBMS所需時間急劇增加,而MongoDB的時間增長率一直比較平穩(wěn),甚至趨近于線性增加。由此可以看出,數(shù)據(jù)量越大MongoDB數(shù)據(jù)存儲系統(tǒng)的性能優(yōu)勢越明顯,更適用于大數(shù)據(jù)的存儲。

  3.3.2查詢性能對比分別對基于MongoDB數(shù)據(jù)存儲系統(tǒng)和RDBMS各進行數(shù)據(jù)量為500,1000,3000,6000,10000查詢操作,MongoDB與RDBMS數(shù)據(jù)查詢性能的對比如圖4所示。

  由圖4不難看出,基于MongoDB數(shù)據(jù)存儲系統(tǒng)的查詢過程耗時非常少,幾乎可以忽略不計,在數(shù)據(jù)量大幅增多的情況下,其耗時增幅沒有明顯變化。而RDBMS查詢耗時較大,隨著數(shù)據(jù)量的增加,其耗時增幅會有明顯增加。

  因此,與RDBMS相比,基于NoSQL的數(shù)據(jù)存儲系統(tǒng)具有更好的數(shù)據(jù)讀寫性能、擴展性和靈活性。

  4結(jié)論

  本文首先研究了MongoDB的特性和關(guān)鍵技術(shù),設(shè)計了基于MongoDB的中醫(yī)藥大數(shù)據(jù)存儲系統(tǒng)架構(gòu),包括集群設(shè)計、數(shù)據(jù)分片設(shè)計、負載均衡和冗余設(shè)計等關(guān)鍵方面,具有較強的可擴展性、負載均衡性和可靠性。實驗結(jié)果表明,基于NoSQL的中醫(yī)藥大數(shù)據(jù)存儲方法從系統(tǒng)架構(gòu)層面進行的設(shè)計與改進,使得對海量非結(jié)構(gòu)化、半結(jié)構(gòu)化中醫(yī)藥數(shù)據(jù)的讀寫效率大幅提高。

  不斷擴大中醫(yī)藥數(shù)據(jù)量和集群規(guī)模,從更廣的層面檢驗系統(tǒng)性能并完善系統(tǒng),以加強數(shù)據(jù)檢索能力,進一步提高中醫(yī)藥數(shù)據(jù)存儲和訪問性能是下一步的研究方向。

看本篇文章的人在健客購買了以下產(chǎn)品 更多>
有健康問題?醫(yī)生在線免費幫您解答!去提問>>
健客微信
健客藥房