一種數(shù)據(jù)查詢的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)查詢的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著電子技術(shù)發(fā)展,計(jì)算機(jī)的應(yīng)用也越來越廣泛,在數(shù)據(jù)庫管理中常用到兩種查詢引擎,一種是數(shù)據(jù)倉庫工具Hive引擎,另一種則是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(英文:microsoft Structured Query Language,簡稱:MySQL)引擎,若是 SQL 語言結(jié)構(gòu)引用的是SQL數(shù)據(jù)庫中的數(shù)據(jù)表時(shí),則直接通過Hive引擎來運(yùn)行,若是SQL語言結(jié)構(gòu)引用的是MySQL數(shù)據(jù)庫時(shí),則直接通過MySQL數(shù)據(jù)庫引擎來運(yùn)行。
[0003]但是,目前的數(shù)據(jù)庫查詢系統(tǒng)并不能支持混合查詢,這樣就導(dǎo)致數(shù)據(jù)庫查詢系統(tǒng)的效率較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種切換標(biāo)簽頁面的方法及電子設(shè)備,用以解決現(xiàn)有技術(shù)中數(shù)據(jù)庫查詢系統(tǒng)并不能支持混合查詢,這樣就導(dǎo)致數(shù)據(jù)庫查詢系統(tǒng)的效率較低的問題。
[0005]其具體的技術(shù)方案如下:
一種數(shù)據(jù)查詢的方法,所述方法包括:
接收到第一數(shù)據(jù)查詢請(qǐng)求;
解析所述第一數(shù)據(jù)查詢請(qǐng)求,確定所述第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)以及第二數(shù)據(jù)庫;
通過包含了臨時(shí)數(shù)據(jù)表的第一數(shù)據(jù)庫引擎響應(yīng)所述第一數(shù)據(jù)查詢請(qǐng)求,其中,所述臨時(shí)數(shù)據(jù)表包含了所述第二數(shù)據(jù)庫中的數(shù)據(jù)。
[0006]可選的,解析所述第一數(shù)據(jù)查詢請(qǐng)求,確定所述第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)以及第二數(shù)據(jù)庫,包括:
解析所述第一數(shù)據(jù)查詢請(qǐng)求的數(shù)據(jù)語言結(jié)構(gòu);
基于所述數(shù)據(jù)語言結(jié)構(gòu),確定所述第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫。
[0007]可選的,在所述第一數(shù)據(jù)查詢請(qǐng)求所引用的數(shù)據(jù)表處于第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫時(shí),通過包含了臨時(shí)數(shù)據(jù)表的第一數(shù)據(jù)庫引擎響應(yīng)所述第一數(shù)據(jù)查詢請(qǐng)求,包括:
在所述第一查詢請(qǐng)求所引用的數(shù)據(jù)表處于第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫時(shí),將所述第二數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到所述第一數(shù)據(jù)庫中,生成第一臨時(shí)表;
通過所述第一臨時(shí)表以及所述第一數(shù)據(jù)庫中的數(shù)據(jù)表響應(yīng)所述第一查詢請(qǐng)求。
[0008]可選的,還包括:
在所述第一數(shù)據(jù)查詢請(qǐng)求所引用的數(shù)據(jù)表處于第一數(shù)據(jù)庫時(shí),則通過所述第一數(shù)據(jù)庫引擎響應(yīng)所述第一數(shù)據(jù)查詢請(qǐng)求。
[0009]可選的,還包括: 在所述第一數(shù)據(jù)查詢請(qǐng)求所引用的數(shù)據(jù)表處于第二數(shù)據(jù)庫時(shí),則通過所述第二數(shù)據(jù)庫響應(yīng)所述第一數(shù)據(jù)查詢請(qǐng)求。
[0010]可選的,在通過所述第一數(shù)據(jù)庫響應(yīng)所述第一數(shù)據(jù)查詢請(qǐng)求之后,還包括:
獲取所述第一數(shù)據(jù)庫引擎輸出的結(jié)果數(shù)據(jù)表;
將所述結(jié)果數(shù)據(jù)表轉(zhuǎn)換為所述第二數(shù)據(jù)庫中的數(shù)據(jù)表,并將所述結(jié)果數(shù)據(jù)表保存在所述第二數(shù)據(jù)庫中。
[0011 ] —種數(shù)據(jù)查詢系統(tǒng),包括:
接收模塊,用于接收到第一數(shù)據(jù)查詢請(qǐng)求;
解析模塊,用于解析所述第一數(shù)據(jù)查詢請(qǐng)求,確定所述第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)以及第二數(shù)據(jù)庫;
響應(yīng)模塊,用于通過包含了臨時(shí)數(shù)據(jù)表的第一數(shù)據(jù)庫引擎響應(yīng)所述第一數(shù)據(jù)查詢請(qǐng)求,其中,所述臨時(shí)數(shù)據(jù)表包含了所述第二數(shù)據(jù)庫中的數(shù)據(jù)。
[0012]可選的,所述解析模塊,具體用于解析所述第一數(shù)據(jù)查詢請(qǐng)求的數(shù)據(jù)語言結(jié)構(gòu);基于所述數(shù)據(jù)語言結(jié)構(gòu),確定所述第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫。
[0013]可選的,所述響應(yīng)模塊,具體用于在所述第一查詢請(qǐng)求所引用的數(shù)據(jù)表處于第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫時(shí),將所述第二數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到所述第一數(shù)據(jù)庫中,生成第一臨時(shí)表;通過所述第一臨時(shí)表以及所述第一數(shù)據(jù)庫中的數(shù)據(jù)表響應(yīng)所述第一查詢請(qǐng)求。
[0014]可選的,還包括:
獲取模塊,用于獲取所述第一數(shù)據(jù)庫引擎輸出的結(jié)果數(shù)據(jù)表;
處理模塊,用于將所述結(jié)果數(shù)據(jù)表轉(zhuǎn)換為所述第二數(shù)據(jù)庫中的數(shù)據(jù)表,并將所述結(jié)果數(shù)據(jù)表保存在所述第二數(shù)據(jù)庫中。
[0015]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)查詢的方法,該方法包括:接收到第一數(shù)據(jù)查詢請(qǐng)求,解析第一數(shù)據(jù)查詢請(qǐng)求,確定第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)以及第二數(shù)據(jù)庫,通過包含了臨時(shí)數(shù)據(jù)表的第一數(shù)據(jù)庫引擎以響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,這里的臨時(shí)數(shù)據(jù)表包含了第二數(shù)據(jù)庫中的數(shù)據(jù)。簡單來講,就是在第一數(shù)據(jù)查詢請(qǐng)求是混合型數(shù)據(jù)查詢請(qǐng)求時(shí),則系統(tǒng)將第二數(shù)據(jù)庫中的數(shù)據(jù)表導(dǎo)入到第一數(shù)據(jù)庫中,然后通過第一數(shù)據(jù)庫來直接響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,這樣就可以使得第一數(shù)據(jù)查詢請(qǐng)求查詢出兩個(gè)數(shù)據(jù)庫中的數(shù)據(jù)表,從而實(shí)現(xiàn)了數(shù)據(jù)庫的混合查詢,提升了數(shù)據(jù)查詢效率。
【附圖說明】
圖1為本發(fā)明實(shí)施例中一種數(shù)據(jù)查詢的方法的流程圖;
圖2為本發(fā)明實(shí)施例中一種數(shù)據(jù)查詢系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0017]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)查詢的方法,該方法包括:接收到第一數(shù)據(jù)查詢請(qǐng)求,解析第一數(shù)據(jù)查詢請(qǐng)求,確定第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)以及第二數(shù)據(jù)庫,通過包含了臨時(shí)數(shù)據(jù)表的第一數(shù)據(jù)庫引擎以響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,這里的臨時(shí)數(shù)據(jù)表包含了第二數(shù)據(jù)庫中的數(shù)據(jù)。簡單來講,就是在第一數(shù)據(jù)查詢請(qǐng)求是混合型數(shù)據(jù)查詢請(qǐng)求時(shí),則系統(tǒng)將第二數(shù)據(jù)庫中的數(shù)據(jù)表導(dǎo)入到第一數(shù)據(jù)庫中,然后通過第一數(shù)據(jù)庫來直接響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,這樣就可以使得第一數(shù)據(jù)查詢請(qǐng)求查詢出兩個(gè)數(shù)據(jù)庫中的數(shù)據(jù)表,從而實(shí)現(xiàn)了數(shù)據(jù)庫的混合查詢,提升了數(shù)據(jù)查詢效率。
[0018]下面通過附圖以及具體實(shí)施例對(duì)本發(fā)明技術(shù)方案做詳細(xì)的說明,應(yīng)當(dāng)理解,本發(fā)明實(shí)施例以及實(shí)施例中的具體技術(shù)特征只是對(duì)本發(fā)明技術(shù)方案的說明,而不是限定,在不沖突的情況下,本發(fā)明實(shí)施例以及實(shí)施例中的具體技術(shù)特征可以相互組合。
[0019]如圖1所示為本發(fā)明實(shí)施例中一種數(shù)據(jù)查詢方法的流程圖,該方法可以應(yīng)用到一數(shù)據(jù)查詢系統(tǒng)中,該方法包括:
SlOl,接收第一數(shù)據(jù)查詢請(qǐng)求;
S102,解析第一數(shù)據(jù)查詢請(qǐng)求,確定第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)以及第二數(shù)據(jù)庫;
S103,通過包含了臨時(shí)數(shù)據(jù)表的第一數(shù)據(jù)庫引擎響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求。
[0020]具體來講,在數(shù)據(jù)庫查詢系統(tǒng)接收到第一數(shù)據(jù)查詢請(qǐng)求時(shí),該數(shù)據(jù)庫查詢系統(tǒng)將第一數(shù)據(jù)查詢請(qǐng)求進(jìn)行解析,也就是解析第一數(shù)據(jù)查詢請(qǐng)求的數(shù)據(jù)語言結(jié)構(gòu),比如說,該第一數(shù)據(jù)查詢請(qǐng)求為SQL查詢時(shí),該數(shù)據(jù)庫查詢系統(tǒng)將解析SQL查詢的語言結(jié)構(gòu)。
[0021]然后數(shù)據(jù)庫查詢系統(tǒng)將基于語言結(jié)構(gòu),確定第一數(shù)據(jù)查詢請(qǐng)求所要調(diào)用的數(shù)據(jù)表處于兩個(gè)獨(dú)立的數(shù)據(jù)庫中,即:第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫,比如說解析結(jié)果為SQL查詢需要調(diào)用SQL數(shù)據(jù)中的數(shù)據(jù)表和/或MySQL數(shù)據(jù)庫中的數(shù)據(jù)表。
[0022]若是數(shù)據(jù)庫查詢系統(tǒng)確定出第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)庫中時(shí),該數(shù)據(jù)庫查詢系統(tǒng)將調(diào)用第一數(shù)據(jù)庫對(duì)應(yīng)的數(shù)據(jù)庫引擎響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,輸出對(duì)應(yīng)的數(shù)據(jù)表。
[0023]比如說,第一數(shù)據(jù)查詢請(qǐng)求解析的結(jié)果為只查詢SQL數(shù)據(jù)庫中的數(shù)據(jù)表,并沒有Hive相關(guān)表的應(yīng)用時(shí),數(shù)據(jù)庫查詢系統(tǒng)將調(diào)度sqoop工具,然后通過sqoop工具調(diào)用MySQL數(shù)據(jù)庫引擎執(zhí)行,最后通過MySQL數(shù)據(jù)庫引擎來響應(yīng)第一數(shù)據(jù)庫查詢請(qǐng)求。從而輸出對(duì)應(yīng)數(shù)據(jù)庫中的數(shù)據(jù)表。
[0024]若是數(shù)據(jù)庫查詢系統(tǒng)確定出第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第二數(shù)據(jù)庫中時(shí),該數(shù)據(jù)庫查詢系統(tǒng)將調(diào)用第二數(shù)據(jù)庫對(duì)應(yīng)的數(shù)據(jù)庫引擎響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)表。
[0025]比如說,第一數(shù)據(jù)查詢請(qǐng)求解析的結(jié)果為只查詢Hive數(shù)據(jù)庫中的數(shù)據(jù)表,并沒有MySQL相關(guān)表的引用時(shí),此時(shí)數(shù)據(jù)庫查詢系統(tǒng)將調(diào)度sqoop工具,然后通過sqoop工具調(diào)用Hive數(shù)據(jù)庫引擎,最后通過Hive數(shù)據(jù)庫引擎來響應(yīng)第一數(shù)據(jù)庫查詢請(qǐng)求。從而輸出對(duì)應(yīng)數(shù)據(jù)庫中的數(shù)據(jù)表。
[0026]若是數(shù)據(jù)庫查詢系統(tǒng)確定出第一數(shù)據(jù)查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第二數(shù)據(jù)庫以及第二數(shù)據(jù)庫中時(shí),該數(shù)據(jù)庫查詢系統(tǒng)將調(diào)用第一數(shù)據(jù)庫引擎響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)表。
[0027]具體來講,在本發(fā)明實(shí)施例中,在第一查詢請(qǐng)求所請(qǐng)求的數(shù)據(jù)表處于第一數(shù)據(jù)庫以及第二數(shù)據(jù)時(shí),數(shù)據(jù)庫查詢系統(tǒng)會(huì)首先將第二數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到第一數(shù)據(jù)庫中,生成第一臨時(shí)表,這里的第一臨時(shí)表中包含了第二數(shù)據(jù)庫中的數(shù)據(jù),然后通過第一臨時(shí)表以及第一數(shù)據(jù)庫中的數(shù)據(jù)表響應(yīng)第一查詢請(qǐng)求。
[0028]比如說,當(dāng)前處于SQL數(shù)據(jù)庫中時(shí),數(shù)據(jù)庫查詢系統(tǒng)接收到的第一數(shù)據(jù)查詢請(qǐng)求既存在Hive相關(guān)數(shù)據(jù)表的引用,并且存在MySQL相關(guān)數(shù)據(jù)表的引用時(shí),此時(shí)數(shù)據(jù)庫查詢系統(tǒng)將MySQL數(shù)據(jù)中的數(shù)據(jù)先導(dǎo)入到SQL數(shù)據(jù)庫中,生成第一臨時(shí)表,在該第一臨時(shí)表中就包含了 MySQL數(shù)據(jù)庫中的數(shù)據(jù)。
[0029]然后數(shù)據(jù)庫查詢系統(tǒng)將基于包含了第一臨時(shí)表的Hive數(shù)據(jù)庫引擎響應(yīng)第一數(shù)據(jù)查詢請(qǐng)求,并輸出第一數(shù)據(jù)查詢請(qǐng)求對(duì)應(yīng)的結(jié)果數(shù)據(jù)表。