數(shù)據(jù)類型多樣、數(shù)據(jù)量大、異構(gòu)是中醫(yī)藥數(shù)據(jù)的典型特征。目前,對(duì)中醫(yī)藥數(shù)據(jù)信息的存儲(chǔ)和管理,主要依賴于關(guān)系數(shù)據(jù)庫(RDBMS)。然而,面對(duì)海量異構(gòu)的中醫(yī)藥數(shù)據(jù)如何實(shí)現(xiàn)高并發(fā)讀寫、高可擴(kuò)展性以及異源數(shù)據(jù)間的互操作等一系列問題,RDBMS由于其自身的局限遇到了困境,難以滿足中醫(yī)藥大數(shù)據(jù)高效存儲(chǔ)和訪問的迫切需求。因此,亟需研究新的數(shù)據(jù)管理模型來解決中醫(yī)藥數(shù)據(jù)的管理問題,而非關(guān)系型數(shù)據(jù)庫(NoSQL)的出現(xiàn)有效地彌補(bǔ)了RDBMS的不足。
不同于RDBMS,NoSQL是一種分布式、非關(guān)系型數(shù)據(jù)庫系統(tǒng),不僅能夠?qū)崿F(xiàn)各類型數(shù)據(jù)的高并發(fā)讀寫,而且支持鍵值(Key-Value)、圖、列族、文檔等常見數(shù)據(jù)類型。NoSQL可以高效管理海量數(shù)據(jù),并且具有較好的可擴(kuò)展性和靈活性。MongoDB屬于NoSQL的范疇,在NoSQL領(lǐng)域占有舉足輕重的地位。本文以MongoDB為代表,研究基于NoSQL的中醫(yī)藥大數(shù)據(jù)存儲(chǔ)方法。采用全國(guó)各省中醫(yī)院在線公開的大量藥方數(shù)據(jù)庫資源,通過研究存儲(chǔ)系統(tǒng)的體系結(jié)構(gòu)和關(guān)鍵技術(shù),與傳統(tǒng)關(guān)系型數(shù)據(jù)庫在相同的大數(shù)據(jù)條件下進(jìn)行實(shí)驗(yàn)對(duì)比,驗(yàn)證了本文提出的方法在存儲(chǔ)和訪問海量中醫(yī)藥數(shù)據(jù)時(shí)具有更高的性能。
MongoDB介紹
MongoDB是一個(gè)模式靈活、開源、高性能、可擴(kuò)展的文檔型數(shù)據(jù)庫。主要特性包括:存儲(chǔ)模式自由,面向集合存儲(chǔ);支持動(dòng)態(tài)查詢和完全索引,查詢表達(dá)式豐富;自動(dòng)分片機(jī)制,支持動(dòng)態(tài)添加機(jī)器;支持?jǐn)?shù)據(jù)復(fù)制和自動(dòng)故障恢復(fù)。MongoDB的以上特性為海量、異構(gòu)、多元的中醫(yī)藥大數(shù)據(jù)的存儲(chǔ)和訪問提供了支持。
中醫(yī)藥數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)
中醫(yī)藥數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)需考慮以下因素:負(fù)載均衡性、數(shù)據(jù)冗余性和水平擴(kuò)展性。因此,主要進(jìn)行以下三方面設(shè)計(jì)。
2.1MongoDB分布式集群設(shè)計(jì)由于單機(jī)節(jié)點(diǎn)無法滿足大數(shù)據(jù)高效存儲(chǔ)和訪問的要求,因此需要建立分布式集群環(huán)境來解決。一個(gè)MongoDB集群通常由三個(gè)部分組成。
2.1.1分片節(jié)點(diǎn)(Shard)分片節(jié)點(diǎn)用于存儲(chǔ)實(shí)際的數(shù)據(jù)塊,一個(gè)分片節(jié)點(diǎn)可以由多個(gè)服務(wù)器組成副本集合,每個(gè)服務(wù)器存儲(chǔ)的數(shù)據(jù)相同,實(shí)現(xiàn)數(shù)據(jù)冗余和系統(tǒng)擴(kuò)展。
2.1.2路由服務(wù)(RouteServer)主要功能是處理終端請(qǐng)求和返回執(zhí)行結(jié)果,即MongoDB把不同的請(qǐng)求分發(fā)給不同的Shard,最后把所有相關(guān)分片結(jié)果整合后返回。
2.1.3配置服務(wù)器(ConfigServer)主要負(fù)責(zé)存儲(chǔ)集群上元數(shù)據(jù)信息。
本文設(shè)計(jì)的MongoDB分布式集群架構(gòu)如圖1所示。
其中,圖1中的Mongos屬于控制服務(wù)器,提供路由服務(wù)。其根據(jù)ConfigServers存儲(chǔ)的每個(gè)塊數(shù)據(jù)記錄確定Client的不同請(qǐng)求要路由到哪個(gè)分片服務(wù)器,把結(jié)果融合后返回給Client終端。對(duì)于分片節(jié)點(diǎn)Shard來講,兩臺(tái)以上的mongod服務(wù)器為一組,即一個(gè)分片,一組里mongod數(shù)據(jù)相同,每個(gè)分片上存放的是一定范圍的數(shù)據(jù),當(dāng)一個(gè)分片的數(shù)據(jù)量過多時(shí),為保持負(fù)載平衡,會(huì)遷移到另外的分片,這樣的分片機(jī)制提高了系統(tǒng)的訪問能力和擴(kuò)展能力。
2.2分片設(shè)計(jì)所謂數(shù)據(jù)分片是指把數(shù)據(jù)分散地存儲(chǔ)于多個(gè)分片服務(wù)器上,減小單個(gè)服務(wù)器的負(fù)擔(dān),進(jìn)而使系統(tǒng)性能得到提高。本文設(shè)計(jì)的存儲(chǔ)系統(tǒng)選擇基于ID特征的分片策略。比如對(duì)記錄ID進(jìn)行取模運(yùn)算,結(jié)果為n,則該記錄被分配到編號(hào)為n的分片服務(wù)器(數(shù)據(jù)分區(qū))上。數(shù)據(jù)分片流程如圖2所示。
根據(jù)圖2流程,以數(shù)據(jù)文件作為分片對(duì)象,基本分片原理是把整個(gè)數(shù)據(jù)文件根據(jù)所獲取的分片大小進(jìn)行分片計(jì)算。因此,分片流程的第一步就是獲取需要分片的數(shù)據(jù)源文件,并計(jì)算數(shù)據(jù)源文件的總大小?;赾hunksize的值,如果當(dāng)前數(shù)據(jù)源文件總大小大于chunksize,則重復(fù)執(zhí)行與chunksize取模的運(yùn)算,得到相應(yīng)的分片號(hào)。分片的大小等于分片的長(zhǎng)度,一直到當(dāng)前總大小減去chunksize大小小于chunksize時(shí),把最后剩余的未分片部分分配給下一個(gè)分片服務(wù)器。
每個(gè)已分片的數(shù)據(jù)用來作為一個(gè)記錄的值和關(guān)鍵字,并且在每個(gè)記錄里面添加分片號(hào)、數(shù)據(jù)文件名、數(shù)據(jù)文件大小、分片大小等鍵值對(duì)。
2.3負(fù)載均衡和冗余設(shè)計(jì)本文設(shè)計(jì)的存儲(chǔ)系統(tǒng)采用副本集的方式來實(shí)現(xiàn)數(shù)據(jù)冗余。即在一個(gè)分片節(jié)點(diǎn)中包含兩個(gè)以上存儲(chǔ)相同數(shù)據(jù)的mongod服務(wù)器,在寫數(shù)據(jù)文件時(shí),把該數(shù)據(jù)分片寫入到多個(gè)mongod上,保持備份mongod之間的更新。那么即使其中某一臺(tái)mongod服務(wù)器出現(xiàn)故障,也可以立即啟用分片中的其他副本提供數(shù)據(jù),避免數(shù)據(jù)丟失,保障存儲(chǔ)系統(tǒng)的正常工作,增強(qiáng)系統(tǒng)的安全性、可靠性、穩(wěn)定性。
3實(shí)驗(yàn)結(jié)果與分析
3.1實(shí)驗(yàn)環(huán)境搭建由于基于NoSQL的中醫(yī)藥大數(shù)據(jù)存儲(chǔ)系統(tǒng)依賴于一定的大數(shù)據(jù)平臺(tái)。選擇1臺(tái)計(jì)算機(jī)做為主機(jī),另外8臺(tái)計(jì)算機(jī)作為從機(jī),搭建實(shí)際的集群節(jié)點(diǎn)。逐步配置大數(shù)據(jù)平臺(tái),具體步驟在此不做贅述。
3.2數(shù)據(jù)來源采用數(shù)據(jù)源來自全國(guó)各省中醫(yī)院在線公開的大量藥方數(shù)據(jù)庫資源,數(shù)據(jù)總大小達(dá)280GB。該數(shù)據(jù)源記錄了自2006年起至今的多所中醫(yī)院公開的藥方數(shù)據(jù)。例如:復(fù)方藿香洗劑治療手足癬(克白醋500克,黃精、明礬各10克,生大黃2克,藿香25),熏洗法治足癬感染(黃柏、黃芩、白鮮皮、百部、防風(fēng)各15克,萆薢20克,枯礬12克,廣丹3克)等。
采用的藥方對(duì)象具有數(shù)據(jù)量大、關(guān)系復(fù)雜、數(shù)據(jù)異構(gòu)等特點(diǎn),RDBMS針對(duì)這類數(shù)據(jù)通常很難達(dá)到預(yù)期效果。因此通過基于NoSQL的大數(shù)據(jù)存儲(chǔ)技術(shù)進(jìn)行管理,對(duì)大量公開的藥方進(jìn)行收集、整理,探究其內(nèi)在規(guī)律,以期把實(shí)驗(yàn)結(jié)果提供給臨床進(jìn)行檢驗(yàn)。
3.3MongoDB數(shù)據(jù)存儲(chǔ)系統(tǒng)與傳統(tǒng)RDBMS性能對(duì)比
3.3.1存儲(chǔ)性能對(duì)比分別對(duì)基于MongoDB數(shù)據(jù)存儲(chǔ)系統(tǒng)與RDBMS各進(jìn)行1,20,100,500,1000次文件存儲(chǔ),其中每個(gè)文件所占空間大小為40KB。MongoDB與RDBMS在數(shù)據(jù)存儲(chǔ)性能方面的比較如圖3所示。
由圖3可以看出,處理的文件數(shù)量越多,兩種方式所需的處理時(shí)間越長(zhǎng),另一方面,數(shù)據(jù)量超過某一“閾值”時(shí),RDBMS所需時(shí)間急劇增加,而MongoDB的時(shí)間增長(zhǎng)率一直比較平穩(wěn),甚至趨近于線性增加。由此可以看出,數(shù)據(jù)量越大MongoDB數(shù)據(jù)存儲(chǔ)系統(tǒng)的性能優(yōu)勢(shì)越明顯,更適用于大數(shù)據(jù)的存儲(chǔ)。
3.3.2查詢性能對(duì)比分別對(duì)基于MongoDB數(shù)據(jù)存儲(chǔ)系統(tǒng)和RDBMS各進(jìn)行數(shù)據(jù)量為500,1000,3000,6000,10000查詢操作,MongoDB與RDBMS數(shù)據(jù)查詢性能的對(duì)比如圖4所示。
由圖4不難看出,基于MongoDB數(shù)據(jù)存儲(chǔ)系統(tǒng)的查詢過程耗時(shí)非常少,幾乎可以忽略不計(jì),在數(shù)據(jù)量大幅增多的情況下,其耗時(shí)增幅沒有明顯變化。而RDBMS查詢耗時(shí)較大,隨著數(shù)據(jù)量的增加,其耗時(shí)增幅會(huì)有明顯增加。
因此,與RDBMS相比,基于NoSQL的數(shù)據(jù)存儲(chǔ)系統(tǒng)具有更好的數(shù)據(jù)讀寫性能、擴(kuò)展性和靈活性。
4結(jié)論
本文首先研究了MongoDB的特性和關(guān)鍵技術(shù),設(shè)計(jì)了基于MongoDB的中醫(yī)藥大數(shù)據(jù)存儲(chǔ)系統(tǒng)架構(gòu),包括集群設(shè)計(jì)、數(shù)據(jù)分片設(shè)計(jì)、負(fù)載均衡和冗余設(shè)計(jì)等關(guān)鍵方面,具有較強(qiáng)的可擴(kuò)展性、負(fù)載均衡性和可靠性。實(shí)驗(yàn)結(jié)果表明,基于NoSQL的中醫(yī)藥大數(shù)據(jù)存儲(chǔ)方法從系統(tǒng)架構(gòu)層面進(jìn)行的設(shè)計(jì)與改進(jìn),使得對(duì)海量非結(jié)構(gòu)化、半結(jié)構(gòu)化中醫(yī)藥數(shù)據(jù)的讀寫效率大幅提高。
不斷擴(kuò)大中醫(yī)藥數(shù)據(jù)量和集群規(guī)模,從更廣的層面檢驗(yàn)系統(tǒng)性能并完善系統(tǒng),以加強(qiáng)數(shù)據(jù)檢索能力,進(jìn)一步提高中醫(yī)藥數(shù)據(jù)存儲(chǔ)和訪問性能是下一步的研究方向。
養(yǎng)陰生津。用于面黃肌瘦,津少口渴,腰膝酸軟,食欲不振,頭暈眼花,心悸氣短,神經(jīng)衰弱。
健客價(jià): ¥28用于單純皰疹或帶狀皰疹感染。
健客價(jià): ¥2.29瀉熱導(dǎo)滯,潤(rùn)腸通便。用于熱結(jié)便秘,長(zhǎng)期臥床便秘,一時(shí)性腹脹便秘,老年習(xí)慣性便秘。
健客價(jià): ¥8.5調(diào)節(jié)三高、提高視力、益智健腦、抗菌消炎。
健客價(jià): ¥138調(diào)節(jié)全身代謝,恢復(fù)細(xì)胞活力,改善心血管功能,健腦健身,延緩衰老,扶正固本。用于冠心病、高脂血癥、腦動(dòng)脈硬化、老年性視力減退。對(duì)甲狀腺機(jī)能減退和慢性老年性支氣管炎有輔助治療作用。
健客價(jià): ¥119清熱利濕,涼血止血。用于急、慢性腎盂腎炎血尿、腎小球腎炎血尿,泌尿結(jié)石及腎挫傷引起的血尿及不明原因引起的血尿,亦可作為治療泌尿系統(tǒng)腫瘤的輔助藥物。
健客價(jià): ¥75結(jié)腸癌輔助化療:卡培他濱適用于 Dukes’ C 期、原發(fā)腫瘤根治術(shù)后、適于接受氟嘧啶類藥物單獨(dú)治療的結(jié)腸癌患者的單藥輔助治療。其治療的無病生存期(DFS)不亞于 5-氟尿嘧啶和甲酰四氫葉酸聯(lián)合方案(5-FU/LV) ??ㄅ嗨麨I單藥或與其他藥物聯(lián)合化療均不能延長(zhǎng)總生存期(OS),但已有試驗(yàn)數(shù)據(jù)表明在聯(lián)合化療方案中卡培他濱可較 5-FU/LV 改善無病生存 期。醫(yī)師在開具處方使用卡培他濱單藥對(duì) D
健客價(jià): ¥319手機(jī)開啟網(wǎng)絡(luò)(移動(dòng)數(shù)據(jù)或無線網(wǎng)絡(luò)),接聽免費(fèi)業(yè)務(wù),移動(dòng)、聯(lián)通、電信用戶均可使用。(本軟件僅適用于智能手機(jī)的安卓、蘋果系統(tǒng))
健客價(jià): ¥100舒肝開郁,鎮(zhèn)驚安神。用于頭昏頭痛,心煩易怒,心悸不寧,胸悶少氣,少寐多夢(mèng)。
健客價(jià): ¥15解表散寒,宣肺止咳,清熱解毒。用于感冒、頭痛發(fā)燒,鼻塞流涕,咳嗽咽痛,肢體酸痛等癥,亦可作防治流感常備藥。
健客價(jià): ¥9解表散寒,宣肺止咳,清熱解毒。用于感冒、頭痛發(fā)燒,鼻塞流涕,咳嗽咽痛,肢體酸痛等癥,亦可作防治流感常備藥。
健客價(jià): ¥13解表散寒,宣肺止咳,清熱解毒。用于感冒、頭痛發(fā)燒,鼻塞流涕,咳嗽咽痛,肢體酸痛等癥,亦可作防治流感常備藥。
健客價(jià): ¥11.5清熱瀉火,解毒止痛。用于復(fù)發(fā)性口瘡(輕型口瘡或口炎性口瘡)心脾積熱證,癥見口腔潰瘍、疼痛、伴有心煩急躁、口熱口干、舌質(zhì)偏紅而干、苔黃而膩、脈弦細(xì)數(shù)等。
健客價(jià): ¥28心絞痛發(fā)作的預(yù)防性治療。眩暈和耳鳴的輔助性對(duì)癥治療。
健客價(jià): ¥25本品適用于治療有乙型肝炎病毒活動(dòng)復(fù)制證據(jù),并伴有血清氨基酸轉(zhuǎn)移酶(ALT或AST)持續(xù)升高或肝臟組織學(xué)活動(dòng)性病變的肝功能代償?shù)某赡曷砸倚透窝谆颊摺?/p> 健客價(jià): ¥33
??虅谶m用于治療下列敏感菌株引起的感染: 中耳炎:由肺炎雙球菌、流感嗜血桿菌、葡萄球菌、化膿性鏈球菌(A組β溶血性鏈球菌)和卡他莫拉氏菌引起。 下呼吸道感染(包括肺炎):山肺炎雙球菌、流感嗜血桿菌?;撔枣溓蚓?A組溶血性鏈球菌)和卡他莫拉氏菌引起。 上呼吸道感染(包括咽炎和扁桃體炎):由化膿性鏈球菌(A組溶血性鏈球菌)和卡他莫拉氏菌引起。 注:青霉素是治療和預(yù)防鏈球菌感染(包括預(yù)防風(fēng)
健客價(jià): ¥26本品為免疫刺激劑,適用于細(xì)胞免疫功能低下的下列患者: 1.呼吸道反復(fù)感染(氣管炎、支氣管炎); 2.耳鼻喉科反復(fù)感染(鼻炎、鼻竇炎、耳炎、咽炎、扁桃體炎); 3.泌尿系統(tǒng)反復(fù)感染; 4.婦科反復(fù)感染; 可用于預(yù)防感染急性期病癥、縮短病程、減輕疾病的嚴(yán)重度、減少反復(fù)發(fā)作的次數(shù)、也可作為急性感染時(shí)抗菌藥物治療的輔助用藥。
健客價(jià): ¥361、改善腸胃,2、改善體寒,3、提高免疫力,4、美容養(yǎng)顏,5、減肥瘦身,6、淡斑"。
健客價(jià): ¥17501.用于成人和1歲及1歲以上兒童的甲型和乙型流感治療(磷酸奧司他韋能夠有效治療甲型和乙型流感,但是乙型流感的臨床應(yīng)用數(shù)據(jù)尚不多)。2.用于成人和13歲及13歲以上青少年的甲型和乙型流感的預(yù)防。
健客價(jià): ¥731.化膿性鏈球菌引起的急性咽炎、急性扁桃體炎。 2.敏感細(xì)菌引起的鼻竇炎、中耳炎、急性支氣管炎、慢性支氣管炎急性發(fā)作。 3.肺炎鏈球菌、流感嗜血桿菌以及肺炎支原體所致的肺炎。 4.沙眼衣原體及非多種耐藥淋病奈瑟菌所致的尿道炎和宮頸炎。 5.敏感細(xì)菌引起的皮膚軟組織感染。
健客價(jià): ¥6.5高血糖的病機(jī)主要在于陰津虧損,燥熱偏盛,而以陰虛為本,燥熱為標(biāo),兩者互為因果,陰愈虛則燥熱愈盛,燥熱越盛則陰愈虛。高血糖進(jìn)一步發(fā)展易引起下肢動(dòng)脈硬化,此時(shí)尚是糖尿病足早期,在服用降血糖藥物的同時(shí),配合足浴外用有一定的效果。本方桂枝、丹參活血通經(jīng),忍冬藤清熱解毒,黃芪利尿托毒,乳香、沒藥活血止痛?,F(xiàn)代藥理學(xué)研究表明:桂枝、丹參、乳香、沒藥等均具有改善周圍血液循環(huán)、抗炎、鎮(zhèn)痛等作用,忍冬藤具有抗菌消炎
健客價(jià): ¥240癲癇: 對(duì)12歲以上兒童及成人的單藥治療: 簡(jiǎn)單部分性發(fā)作 復(fù)雜部分性發(fā)作 繼發(fā)性全身強(qiáng)直-陣攣性發(fā)作 原發(fā)性全身強(qiáng)直-陣攣性發(fā)作 目前暫不推薦對(duì)12歲以下兒童采用單藥治療,因?yàn)樯形吹玫綄?duì)這類特殊目標(biāo)人群所進(jìn)行的對(duì)照試驗(yàn)的相應(yīng)數(shù)據(jù)。 2歲以上兒童及成人的添加療法: 簡(jiǎn)單部分性發(fā)作 復(fù)雜部分性發(fā)作 繼發(fā)性全身強(qiáng)直-陣攣性發(fā)作 原發(fā)性全身強(qiáng)直-陣攣性發(fā)作 本品也可用于治療合并有
健客價(jià): ¥45拉莫三嗪片,適應(yīng)癥為癲癇: 對(duì)12歲以上兒童及成人的單藥治療: 1. 簡(jiǎn)單部分性發(fā)作 2. 復(fù)雜部分性發(fā)作 3. 續(xù)發(fā)性全身強(qiáng)直- 陣攣性發(fā)作 4. 原發(fā)性全身強(qiáng)直- 陣攣性發(fā)作目前暫不推薦對(duì)十二歲以下兒童采用單藥治療,因?yàn)樯形吹玫綄?duì)這類特殊目標(biāo)人群所進(jìn)行的對(duì)照試驗(yàn)的相應(yīng)數(shù)據(jù)。 兩歲以上兒童及成人的添加療法 ( add-on therapy ) : 1. 簡(jiǎn)單部分性發(fā)作 2. 復(fù)雜部
健客價(jià): ¥94