本發(fā)明涉及醫(yī)療大數(shù)據(jù)處理,特別涉及一種基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法及系統(tǒng)。
背景技術(shù):
1、隨著信息技術(shù)和各種數(shù)字化醫(yī)療設(shè)備的快速發(fā)展,以及醫(yī)療設(shè)備的種類越來(lái)越多,各種醫(yī)療設(shè)備產(chǎn)生的數(shù)據(jù)被記錄下來(lái),使得醫(yī)療數(shù)據(jù)更加精細(xì)化和精確。醫(yī)療專業(yè)人員依靠各種醫(yī)療設(shè)備提供的數(shù)據(jù)來(lái)全面評(píng)估患者的健康狀況。利用數(shù)據(jù)探索技術(shù),從這些數(shù)據(jù)中提取和整合醫(yī)療專業(yè)人員所需的信息,可以有效地輔助醫(yī)療專業(yè)人員做出治療決策。在各種數(shù)據(jù)探索方法中,復(fù)雜查詢是醫(yī)療數(shù)據(jù)探索的常用方法,涉及復(fù)雜的多條件過(guò)濾和多表連接操作。通過(guò)對(duì)復(fù)雜查詢過(guò)程的分析,發(fā)現(xiàn)在復(fù)雜查詢的子查詢中,多條件查詢出現(xiàn)頻率高,耗時(shí)長(zhǎng)。
2、數(shù)據(jù)庫(kù)技術(shù)在醫(yī)療領(lǐng)域內(nèi)較早采用,用于處理結(jié)構(gòu)化醫(yī)療數(shù)據(jù)上的復(fù)雜查詢,為治療決策提供數(shù)據(jù)支持。它可以滿足在醫(yī)療數(shù)據(jù)較少的情況下對(duì)快速數(shù)據(jù)查詢的需求。然而,當(dāng)涉及到涉及大量數(shù)據(jù)的分析任務(wù)時(shí),數(shù)據(jù)庫(kù)技術(shù)可能會(huì)遇到局限性。為了解決這一問(wèn)題,將數(shù)據(jù)倉(cāng)庫(kù)技術(shù)應(yīng)用于管理大規(guī)模結(jié)構(gòu)化醫(yī)療數(shù)據(jù),并利用分布式集群的運(yùn)算能力來(lái)提高數(shù)據(jù)查詢效率。數(shù)據(jù)倉(cāng)庫(kù)技術(shù)為處理廣泛的數(shù)據(jù)集提供了改進(jìn)的性能。近年來(lái),由于對(duì)高效數(shù)據(jù)查詢的需求不斷增加,以及醫(yī)療保健領(lǐng)域非結(jié)構(gòu)化數(shù)據(jù)的指數(shù)級(jí)增長(zhǎng)等因素,數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)在非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)方面遇到了挑戰(zhàn)。
3、為了解決醫(yī)療數(shù)據(jù)探索中數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的問(wèn)題,研究人員開始將數(shù)據(jù)湖技術(shù)應(yīng)用于醫(yī)療數(shù)據(jù)探索?;跀?shù)據(jù)湖的數(shù)據(jù)存儲(chǔ)系統(tǒng)具有更好的數(shù)據(jù)聚合能力,可以處理具有更大規(guī)模數(shù)據(jù)的表,也能夠存儲(chǔ)和管理不同結(jié)構(gòu)的醫(yī)療數(shù)據(jù)。然而,目前基于數(shù)據(jù)湖技術(shù)的醫(yī)療領(lǐng)域數(shù)據(jù)探索框架在處理醫(yī)學(xué)數(shù)據(jù)多表連接查詢面臨著以下兩方面的挑戰(zhàn):在目前的框架,對(duì)于醫(yī)學(xué)領(lǐng)域高頻的連接查詢的解決方案總是可能產(chǎn)生不必要的空間開銷;在醫(yī)學(xué)領(lǐng)域查詢的真實(shí)場(chǎng)景中,醫(yī)療相關(guān)人員往往需要快速的顯示查詢結(jié)果,然而現(xiàn)有的框架存在對(duì)醫(yī)療領(lǐng)域常用的連接查詢效率低下的問(wèn)題,可能會(huì)時(shí)醫(yī)療相關(guān)人員無(wú)法高效的分析醫(yī)療設(shè)備產(chǎn)生的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)思路
1、為此,本發(fā)明提供一種基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法及系統(tǒng),解決現(xiàn)有醫(yī)療數(shù)據(jù)湖在執(zhí)行多條件連接查詢時(shí)存在的查詢效率偏低、查詢空間開銷大的問(wèn)題。
2、按照本發(fā)明所提供的設(shè)計(jì)方案,一方面,提供一種基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,包含:
3、在醫(yī)療數(shù)據(jù)庫(kù)中將醫(yī)療數(shù)據(jù)表劃分為主要表和次要表,并創(chuàng)建用于記錄次要表查詢頻次的查詢頻次表,所述醫(yī)療數(shù)據(jù)庫(kù)包含若干醫(yī)療數(shù)據(jù)表,所述查詢頻次表包含次要表表名字段和對(duì)應(yīng)的查詢頻次字段,所述主要表用于記錄醫(yī)療實(shí)體,所述次要表用于記錄醫(yī)療實(shí)體相關(guān)數(shù)據(jù),且次要表與主要表兩者數(shù)據(jù)存在多對(duì)一的關(guān)系;
4、依據(jù)醫(yī)療查詢行為特征為次要表建立高維索引,并根據(jù)索引值將次要表上傳至數(shù)據(jù)湖進(jìn)行存儲(chǔ);
5、依據(jù)醫(yī)療數(shù)據(jù)查詢頻次將次要表劃分為熱表和冷表,將熱表與主要表進(jìn)行融合并依據(jù)主要表表名和熱表表名生成融合表和融合表名,基于融合表名將融合表傳至數(shù)據(jù)湖,所述熱表為醫(yī)療數(shù)據(jù)查詢頻次大于查詢閾值的次要表,所述冷表為醫(yī)療數(shù)據(jù)查詢頻次小于或等于查詢閾值的次要表;
6、提取多條件連接查詢中的目標(biāo)主要表名和目標(biāo)次要表名,依據(jù)目標(biāo)次要表名的查詢頻次判斷目標(biāo)次要表類型,根據(jù)目標(biāo)次要表類型執(zhí)行預(yù)設(shè)的對(duì)應(yīng)查詢策略并獲取多條件連接查詢醫(yī)療數(shù)據(jù)。
7、作為本發(fā)明基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,進(jìn)一步地,所述主要表中醫(yī)療實(shí)體以結(jié)構(gòu)化形式進(jìn)行存儲(chǔ),且每條數(shù)據(jù)對(duì)應(yīng)一個(gè)醫(yī)療實(shí)體;所述次要表中醫(yī)療實(shí)體相關(guān)數(shù)據(jù)以結(jié)構(gòu)化形式或非結(jié)構(gòu)化形式進(jìn)行存儲(chǔ),且次要表以歷史查詢醫(yī)療數(shù)據(jù)或相關(guān)人員經(jīng)驗(yàn)數(shù)據(jù)作為連接查詢條件。
8、作為本發(fā)明基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,進(jìn)一步地,依據(jù)醫(yī)療查詢行為特征為次要表建立高維索引,包含:
9、在醫(yī)療數(shù)據(jù)庫(kù)中隨機(jī)選定一個(gè)次要表作為常用次要表,讀取常用次要表中已經(jīng)被記錄的查詢條件列名;
10、依據(jù)查詢條件列名創(chuàng)建次要表的高維索引,并通過(guò)降維方法將多個(gè)列的數(shù)值降維至單個(gè)數(shù)值,將降維后得到的索引值添加到次要表中。
11、作為本發(fā)明基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,進(jìn)一步地,根據(jù)索引值將次要表上傳至數(shù)據(jù)湖進(jìn)行存儲(chǔ),包含:
12、讀取包含索引值的次要表數(shù)據(jù),并依據(jù)索引值大小對(duì)次要表數(shù)據(jù)進(jìn)行升序排列;
13、將升序排列后的次要表數(shù)據(jù)以主鍵為記錄鍵、索引列為分區(qū)鍵上傳至數(shù)據(jù)湖。
14、作為本發(fā)明基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,進(jìn)一步地,依據(jù)醫(yī)療數(shù)據(jù)查詢頻次將次要表劃分為熱表和冷表,包含:
15、依據(jù)歷史查詢記錄或相關(guān)人員經(jīng)驗(yàn)數(shù)據(jù)設(shè)置查詢閾值;
16、以當(dāng)前查詢中次要表表名作為查詢條件,依據(jù)該查詢條件獲取查詢頻次表中對(duì)應(yīng)查詢頻次字段的查詢頻次值;
17、若查詢頻次值大于查詢閾值,則將當(dāng)前查詢中的次要表認(rèn)定為熱表,否則,將當(dāng)前查詢中的次要表認(rèn)定為冷表。
18、作為本發(fā)明基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,進(jìn)一步地,將熱表與主要表進(jìn)行融合,包含:
19、讀取主要表數(shù)據(jù)及次要表數(shù)據(jù);
20、將主要表數(shù)據(jù)和次要表數(shù)據(jù)融合成一個(gè)數(shù)據(jù)表結(jié)構(gòu),以在融合后以主要表的主鍵作為記錄鍵、次要表的索引列作為分區(qū)將融合的數(shù)據(jù)表結(jié)構(gòu)鍵入數(shù)據(jù)湖中,其中,數(shù)據(jù)表結(jié)構(gòu)的表名依據(jù)主要表表名和次要表表名設(shè)置。
21、作為本發(fā)明基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化方法,進(jìn)一步地,根據(jù)目標(biāo)次要表類型執(zhí)行預(yù)設(shè)的對(duì)應(yīng)查詢策略,包括:
22、若目標(biāo)次要表為熱表且存在融合表時(shí),查詢策略設(shè)置為:將多條件連接查詢轉(zhuǎn)變?yōu)閷?duì)融合表的單表?xiàng)l件查詢,并在融合表中執(zhí)行單表?xiàng)l件查詢;
23、若目標(biāo)次要表為熱表但不存在融合表時(shí),查詢策略設(shè)置為:執(zhí)行多條件連接查詢,獲取對(duì)應(yīng)主要表數(shù)據(jù),并將熱表與對(duì)應(yīng)主要表數(shù)據(jù)進(jìn)行融合;
24、若目標(biāo)次要表為冷表,查詢策略設(shè)置為:在醫(yī)療數(shù)據(jù)庫(kù)中執(zhí)行多條件連接查詢。
25、再一方面,本發(fā)明還提供一種基于數(shù)據(jù)湖的醫(yī)療數(shù)據(jù)多條件連接查詢優(yōu)化系統(tǒng),包含:數(shù)據(jù)劃分模塊、索引建立模塊、數(shù)據(jù)融合模塊和連接查詢模塊,其中,
26、數(shù)據(jù)劃分模塊,用于在醫(yī)療數(shù)據(jù)庫(kù)中將醫(yī)療數(shù)據(jù)表劃分為主要表和次要表,并創(chuàng)建用于記錄次要表查詢頻次的查詢頻次表,所述醫(yī)療數(shù)據(jù)庫(kù)包含若干醫(yī)療數(shù)據(jù)表,所述查詢頻次表包含次要表表名字段和對(duì)應(yīng)的查詢頻次字段,所述主要表用于記錄醫(yī)療實(shí)體,所述次要表用于記錄醫(yī)療實(shí)體相關(guān)數(shù)據(jù),且次要表與主要表兩者數(shù)據(jù)存在多對(duì)一的關(guān)系;
27、索引建立模塊,用于依據(jù)醫(yī)療查詢行為特征為次要表建立高維索引,并根據(jù)索引值將次要表上傳至數(shù)據(jù)湖進(jìn)行存儲(chǔ);
28、數(shù)據(jù)融合模塊,用于依據(jù)醫(yī)療數(shù)據(jù)查詢頻次將次要表劃分為熱表和冷表,將熱表與主要表進(jìn)行融合并依據(jù)主要表表名和熱表表名生成融合表和融合表名,基于融合表名將融合表傳至數(shù)據(jù)湖,所述熱表為醫(yī)療數(shù)據(jù)查詢頻次大于查詢閾值的次要表,所述冷表為醫(yī)療數(shù)據(jù)查詢頻次小于或等于查詢閾值的次要表;
29、連接查詢模塊,用于提取多條件連接查詢中的目標(biāo)主要表名和目標(biāo)次要表名,依據(jù)目標(biāo)次要表名的查詢頻次判斷目標(biāo)次要表類型,根據(jù)目標(biāo)次要表類型執(zhí)行預(yù)設(shè)的對(duì)應(yīng)查詢策略并獲取多條件連接查詢醫(yī)療數(shù)據(jù)。
30、本發(fā)明的有益效果:
31、本發(fā)明在醫(yī)療數(shù)據(jù)表寫入數(shù)據(jù)湖之前,將數(shù)據(jù)表區(qū)分為主要表和次要表,對(duì)次要表建立高維索引,從而加快連接查詢中的篩選過(guò)程速度;并且根據(jù)索引值來(lái)作為數(shù)據(jù)物理存儲(chǔ)的依據(jù),加快連接查詢中的讀取過(guò)程速度,并依據(jù)次要表分類執(zhí)行不同的查詢策略,達(dá)到空間消耗和時(shí)間消耗的平衡,提升醫(yī)療數(shù)據(jù)多條件查詢?cè)L問(wèn)效率,便于在醫(yī)療數(shù)據(jù)領(lǐng)域中進(jìn)行部署實(shí)施。