數(shù)據(jù)庫(kù)查詢方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)庫(kù)查詢方法和裝置。其中,該數(shù)據(jù)庫(kù)查詢方法包括:獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表;將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù);獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列;組合第一主鍵列的第一主鍵和第二主鍵列的第二主鍵,得到第三主鍵列;將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù);合并第一數(shù)據(jù)和第二數(shù)據(jù),得到目標(biāo)數(shù)據(jù)。通過(guò)本發(fā)明,解決了現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題,實(shí)現(xiàn)了提高查詢目標(biāo)數(shù)據(jù)的效率的效果。
【專(zhuān)利說(shuō)明】數(shù)據(jù)庫(kù)查詢方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種數(shù)據(jù)庫(kù)查詢方法和裝置。
【背景技術(shù)】
[0002]在SQL數(shù)據(jù)庫(kù)中進(jìn)行查詢時(shí),若x、y表示兩個(gè)維度表,z表示指標(biāo)表,其中,指標(biāo)表Z中分別外鍵關(guān)聯(lián)X的主鍵和I的主鍵,那么在查詢數(shù)據(jù)時(shí)需要以X、y和Z為基礎(chǔ)查詢出X中的每一行在I的每一行上基于Z的指標(biāo)表現(xiàn)?,F(xiàn)有技術(shù)中,需要先將X與y交叉聯(lián)接,然后再與Z左聯(lián)接,基于X、y和z聯(lián)接后的結(jié)果進(jìn)行維度分組和指標(biāo)聚合計(jì)算得出最后的目標(biāo)查詢結(jié)果。
[0003]其中,SQL為Structured Query Language,即結(jié)構(gòu)化查詢語(yǔ)言,SQL是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);維度表即應(yīng)用系統(tǒng)中的實(shí)體表,如廣告投放系統(tǒng)中廣告、項(xiàng)目、廣告主等都是維度表;指標(biāo)表是應(yīng)用系統(tǒng)用以存儲(chǔ)檢測(cè)或計(jì)算出的指標(biāo)的表,指標(biāo)表一般會(huì)外鍵關(guān)聯(lián)一個(gè)或多個(gè)維度表,以表示維度上的指標(biāo)表現(xiàn),如廣告投放系統(tǒng)中廣告性能表,該指標(biāo)表包含點(diǎn)擊、曝光、獨(dú)立點(diǎn)擊等指標(biāo)列,且外鍵關(guān)聯(lián)維度表廣告和時(shí)間;交叉聯(lián)接不帶WHERE子句,它返回被聯(lián)接的兩個(gè)表所有數(shù)據(jù)行的笛卡爾積,返回結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù);左聯(lián)接又名左外聯(lián)接,是查詢結(jié)果集既包括聯(lián)接表的匹配行,也包括左聯(lián)接表的所有行。
[0004]現(xiàn)有技術(shù)主要有以下兩個(gè)缺點(diǎn):
[0005]1、交叉聯(lián)接性能低下,且無(wú)法應(yīng)用維度表的聚集索引。
[0006]2、未關(guān)聯(lián)任何指標(biāo)的維度行也都參與了指標(biāo)的分組聚合計(jì)算。
[0007]其中,聚集索引是一種索引,該索引中鍵值的邏輯順序決定了表中相應(yīng)行的物理順序。
[0008]針對(duì)現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的主要目的在于提供一種數(shù)據(jù)庫(kù)查詢方法和裝置,以解決現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題。
[0010]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)庫(kù)查詢方法。
[0011]根據(jù)本發(fā)明的數(shù)據(jù)庫(kù)查詢方法包括:獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表;將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù);獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列;組合第一主鍵列的第一主鍵和第二主鍵列的第二主鍵,得到第三主鍵列;將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù);合并第一數(shù)據(jù)和第二數(shù)據(jù),得到目標(biāo)數(shù)據(jù)。
[0012]進(jìn)一步地,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù)包括:將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第三數(shù)據(jù);將第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到第一數(shù)據(jù)。
[0013]進(jìn)一步地,將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù)包括:判斷第三主鍵列中的第三主鍵是否存在于第一數(shù)據(jù);若第三主鍵列中的第三主鍵存在于第一數(shù)據(jù),則舍棄第三主鍵,得到更新后的第三主鍵列;使用更新后的第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第四數(shù)據(jù);補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)。
[0014]進(jìn)一步地,補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)包括:對(duì)第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù);補(bǔ)充第五數(shù)據(jù)中的指標(biāo)列,并使用零或空設(shè)置指標(biāo)列的值,得到第二數(shù)據(jù)。
[0015]進(jìn)一步地,獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列包括:查詢第一維度表中的第一主鍵列,保存第一主鍵列至第一數(shù)據(jù)表;查詢第二維度表中的第二主鍵列,保存第二主鍵列至第二數(shù)據(jù)表;從第一數(shù)據(jù)表中讀取第一主鍵列和從第二數(shù)據(jù)表中讀取第二主鍵列。
[0016]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)庫(kù)查詢裝置。
[0017]根據(jù)本發(fā)明的數(shù)據(jù)庫(kù)查詢裝置包括:第一獲取模塊,用于獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表;第一內(nèi)聯(lián)接模塊,用于將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù);第二獲取模塊,用于獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列;組合模塊,用于組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵,得到第三主鍵列;第二內(nèi)聯(lián)接模塊,用于將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù);合并模塊,用于合并第一數(shù)據(jù)和第二數(shù)據(jù),得到目標(biāo)數(shù)據(jù)。
[0018]進(jìn)一步地,第一內(nèi)聯(lián)接模塊包括:第一內(nèi)聯(lián)接子模塊,用于將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第三數(shù)據(jù);計(jì)算模塊,用于將第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到第一數(shù)據(jù)。
[0019]進(jìn)一步地,第二內(nèi)聯(lián)接模塊包括:判斷模塊,用于判斷第三主鍵列中的第三主鍵是否存在于第一數(shù)據(jù);舍棄模塊,用于在第三主鍵列中的第三主鍵存在于第一數(shù)據(jù)的情況下,舍棄第三主鍵,得到更新后的第三主鍵列;第二內(nèi)聯(lián)接子模塊,用于使用更新后的第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第四數(shù)據(jù);補(bǔ)充模塊,用于補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)。
[0020]進(jìn)一步地,補(bǔ)充模塊包括:分組模塊,用于對(duì)第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù);補(bǔ)充子模塊,用于補(bǔ)充第五數(shù)據(jù)中的指標(biāo)列,并使用零或空設(shè)置指標(biāo)列的值,得到第二數(shù)據(jù)。
[0021]進(jìn)一步地,第二獲取模塊包括:第一查詢模塊,用于查詢第一維度表中的第一主鍵列,保存第一主鍵列至第一數(shù)據(jù)表;第二查詢模塊,用于查詢第二維度表中的第二主鍵列,保存第二主鍵列至第二數(shù)據(jù)表;從第一數(shù)據(jù)表中讀取第一主鍵列和從第二數(shù)據(jù)表中讀取第二主鍵列。
[0022]采用本發(fā)明實(shí)施例,在從數(shù)據(jù)庫(kù)中獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的第一維度表、第二維度表以及指標(biāo)表之后,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理得到第一數(shù)據(jù);然后獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列,組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵得到第三主鍵列,并將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理得到第二數(shù)據(jù);合并第一數(shù)據(jù)和第二數(shù)據(jù),即可得到目標(biāo)數(shù)據(jù)。在本發(fā)明上述實(shí)施例中,將目標(biāo)數(shù)據(jù)拆分為兩個(gè)部分分別進(jìn)行查詢,通過(guò)第一維度表和第二維度表與指標(biāo)表的內(nèi)聯(lián)接計(jì)算得到有意義的數(shù)據(jù)(即上述實(shí)施例中的第一數(shù)據(jù)),并遍歷維度表補(bǔ)充內(nèi)聯(lián)接中刪除的數(shù)據(jù)得到無(wú)意義的數(shù)據(jù)(即上述實(shí)施例中的第二數(shù)據(jù)),合并第一數(shù)據(jù)和第二數(shù)據(jù)得到目標(biāo)數(shù)據(jù),無(wú)需對(duì)兩個(gè)維度表和指標(biāo)表進(jìn)行交叉聯(lián)接,避免了現(xiàn)有技術(shù)中對(duì)維度表中無(wú)意義的維度行參與指標(biāo)表的分組聚合計(jì)算,提高了獲取目標(biāo)數(shù)據(jù)的效率,并且使用內(nèi)聯(lián)接可以應(yīng)用聚集索引,通過(guò)使用聚集索引可以進(jìn)一步提高獲取目標(biāo)數(shù)據(jù)的效率。通過(guò)本發(fā)明實(shí)施例,解決了現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題,實(shí)現(xiàn)了提高查詢目標(biāo)數(shù)據(jù)的效率的效果。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0023]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0024]圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)查詢方法的流程圖;
[0025]圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)庫(kù)查詢方法的流程圖;以及
[0026]圖3是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)查詢裝置的示意圖。
【具體實(shí)施方式】
[0027]首先,在對(duì)本發(fā)明實(shí)施例進(jìn)行描述的過(guò)程中出現(xiàn)的部分名詞或術(shù)語(yǔ)適用于如下解釋:
[0028]SQL為Structured Query Language,即結(jié)構(gòu)化查詢語(yǔ)言,SQL是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。
[0029]維度表即應(yīng)用系統(tǒng)中的實(shí)體表,如廣告投放系統(tǒng)中廣告、項(xiàng)目、廣告主等都是維度表。
[0030]指標(biāo)表是應(yīng)用系統(tǒng)用以存儲(chǔ)檢測(cè)或計(jì)算出的指標(biāo)的表,指標(biāo)表一般會(huì)外鍵關(guān)聯(lián)一個(gè)或多個(gè)維度表,以表不維度上的指標(biāo)表現(xiàn),如廣告投放系統(tǒng)中廣告性能表,該指標(biāo)表包含點(diǎn)擊、曝光、獨(dú)立點(diǎn)擊等指標(biāo)列,且外鍵關(guān)聯(lián)維度表廣告和時(shí)間。
[0031]交叉聯(lián)接不帶WHERE子句,它返回被聯(lián)接的兩個(gè)表所有數(shù)據(jù)行的笛卡爾積,返回結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)。
[0032]左聯(lián)接又名左外聯(lián)接,是查詢結(jié)果集既包括聯(lián)接表的匹配行,也包括左聯(lián)接表的所有行。
[0033]聚集索引是一種索引,該索引中鍵值的邏輯順序決定了表中相應(yīng)行的物理順序,由于聚集索引規(guī)定數(shù)據(jù)在表中的物理存儲(chǔ)順序,因此一個(gè)表只能包含一個(gè)聚集索引,但該索引可以包含多個(gè)列(組合索引)。
[0034]內(nèi)聯(lián)接也叫聯(lián)接,是最早的一種聯(lián)接,還可以被稱(chēng)為普通聯(lián)接或者自然聯(lián)接,內(nèi)聯(lián)接是從結(jié)果表中刪除與其他被聯(lián)接表中沒(méi)有匹配行的所有行。
[0035]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0036]需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類(lèi)似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0037]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0038]圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)查詢方法的流程圖,如圖1所示,該數(shù)據(jù)庫(kù)查詢方法可以包括如下的步驟S102至步驟SI 12:
[0039]步驟S102,獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表。
[0040]步驟S104,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù)。
[0041]步驟S106,獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列。
[0042]步驟S108,組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵,得到第三主鍵列。
[0043]步驟S110,將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù)。
[0044]步驟SI 12,合并第一數(shù)據(jù)和第二數(shù)據(jù),得到目標(biāo)數(shù)據(jù)。
[0045]采用本發(fā)明實(shí)施例,在從數(shù)據(jù)庫(kù)中獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的第一維度表、第二維度表以及指標(biāo)表之后,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理得到第一數(shù)據(jù);然后獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列,組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵得到第三主鍵列,并將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理得到第二數(shù)據(jù);合并第一數(shù)據(jù)和第二數(shù)據(jù),即可得到目標(biāo)數(shù)據(jù)。在本發(fā)明上述實(shí)施例中,將目標(biāo)數(shù)據(jù)拆分為兩個(gè)部分分別進(jìn)行查詢,通過(guò)第一維度表和第二維度表與指標(biāo)表的內(nèi)聯(lián)接計(jì)算得到有意義的數(shù)據(jù)(即上述實(shí)施例中的第一數(shù)據(jù)),并遍歷維度表補(bǔ)充內(nèi)聯(lián)接中刪除的數(shù)據(jù)得到無(wú)意義的數(shù)據(jù)(即上述實(shí)施例中的第二數(shù)據(jù)),合并第一數(shù)據(jù)和第二數(shù)據(jù)得到目標(biāo)數(shù)據(jù),無(wú)需對(duì)兩個(gè)維度表和指標(biāo)表進(jìn)行交叉聯(lián)接,避免了現(xiàn)有技術(shù)中對(duì)維度表中無(wú)意義的維度行參與指標(biāo)表的分組聚合計(jì)算,提高了獲取目標(biāo)數(shù)據(jù)的效率,并且使用內(nèi)聯(lián)接可以應(yīng)用聚集索引,通過(guò)使用聚集索引可以進(jìn)一步提高獲取目標(biāo)數(shù)據(jù)的效率。通過(guò)本發(fā)明實(shí)施例,解決了現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題,實(shí)現(xiàn)了提高查詢目標(biāo)數(shù)據(jù)的效率的效果。
[0046]根據(jù)本發(fā)明上述實(shí)施例,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù)可以包括:將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第三數(shù)據(jù);將第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到第一數(shù)據(jù)。
[0047]具體地,將第一維度表和第二維度表與指標(biāo)表進(jìn)行內(nèi)聯(lián)接得到第三數(shù)據(jù),然后對(duì)得到的第三數(shù)據(jù)進(jìn)行維度分組和指標(biāo)聚合計(jì)算,得到第一數(shù)據(jù)。
[0048]通過(guò)本發(fā)明實(shí)施例,通過(guò)對(duì)維度表和指標(biāo)表進(jìn)行內(nèi)聯(lián)接處理,無(wú)需對(duì)維度表和指標(biāo)表進(jìn)行交叉聯(lián)接處理,避免了維度表中無(wú)意義的維度行與指標(biāo)表中的各個(gè)指標(biāo)行進(jìn)行分組聚合計(jì)算,提高了獲得第一數(shù)據(jù)的效率,進(jìn)而提高了查詢目標(biāo)數(shù)據(jù)的效率。
[0049]根據(jù)本發(fā)明上述實(shí)施例,將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù)可以包括:判斷第三主鍵列中的第三主鍵是否存在于第一數(shù)據(jù);若第三主鍵列中的第三主鍵存在于第一數(shù)據(jù),則舍棄第三主鍵,得到更新后的第三主鍵列;使用更新后的第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第四數(shù)據(jù);補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)。
[0050]具體地,在將第三主鍵列與第一維度表和第二維度表進(jìn)行內(nèi)聯(lián)接時(shí),首先判斷第三主鍵列中的第三主鍵是否存在于第一數(shù)據(jù),并在第三主鍵列中的第三主鍵存在于第一數(shù)據(jù)時(shí),舍棄第三主鍵,得到更新后的第三主鍵列,并使用更新后的第三主鍵列與第一維度表和第二維度表進(jìn)行內(nèi)聯(lián)接得到第四數(shù)據(jù),然后補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)。
[0051]通過(guò)本發(fā)明上述實(shí)施例,將第三主鍵列中與第一數(shù)據(jù)中的主鍵重復(fù)的主鍵刪除,并使用更新后的第三主鍵列與兩個(gè)維度表進(jìn)行內(nèi)聯(lián)接,無(wú)需對(duì)第一數(shù)據(jù)中已存在的數(shù)據(jù)進(jìn)行再次處理,可以進(jìn)一步地提高查詢目標(biāo)數(shù)據(jù)的效率。
[0052]進(jìn)一步地,補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)可以包括:對(duì)第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù);補(bǔ)充第五數(shù)據(jù)中的指標(biāo)列,并使用零或空設(shè)置指標(biāo)列的值,得到第二數(shù)據(jù)。
[0053]具體地,在對(duì)第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù)之后,將第五數(shù)據(jù)中的指標(biāo)列補(bǔ)充為默認(rèn)空值(如O或空),將補(bǔ)充后的第五數(shù)據(jù)作為第二數(shù)據(jù)。
[0054]通過(guò)本發(fā)明上述實(shí)施例,將內(nèi)聯(lián)接處理刪除無(wú)意義的指標(biāo)列的值重新補(bǔ)充為默認(rèn)空值,保證了目標(biāo)數(shù)據(jù)中的各個(gè)維度值和指標(biāo)值的完整性,避免了由于數(shù)據(jù)丟失而導(dǎo)致的目標(biāo)數(shù)據(jù)不準(zhǔn)確,提高了查詢目標(biāo)數(shù)據(jù)的準(zhǔn)確度。
[0055]在本發(fā)明的上述實(shí)施例中,獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列可以包括:查詢第一維度表中的第一主鍵列,保存第一主鍵列至第一數(shù)據(jù)表;查詢第二維度表中的第二主鍵列,保存第二主鍵列至第二數(shù)據(jù)表;從第一數(shù)據(jù)表中讀取第一主鍵列和從第二數(shù)據(jù)表中讀取第二主鍵列。
[0056]具體地,在獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列時(shí),將查詢到的第一維度表中的第一主鍵列保存至第一數(shù)據(jù)表,將查詢到的第二維度表中的第二主鍵列保存至第二數(shù)據(jù)表,然后讀取第一數(shù)據(jù)表中的第一主鍵列和第二數(shù)據(jù)表中的第二主鍵列。
[0057]進(jìn)一步地,可以通過(guò)遍歷第一數(shù)據(jù)表中的第一主鍵列,并在遍歷第一主鍵列中的每一行時(shí),遍歷第二數(shù)據(jù)表中的第二主鍵列的各個(gè)行,得到組合行,將得到的組合行作為第三主鍵列。通過(guò)本發(fā)明上述實(shí)施例,實(shí)現(xiàn)了組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵得到第三主鍵列。
[0058]圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)庫(kù)查詢方法的流程圖,如圖2所示,該數(shù)據(jù)庫(kù)查詢方法可以包括如下步驟:
[0059]步驟S202,將維度表X、維度表y與指標(biāo)表z做內(nèi)聯(lián)接,得到第三數(shù)據(jù)。
[0060]其中,維度表X即本發(fā)明上述實(shí)施例中的第一維度表,維度表y即本發(fā)明上述實(shí)施例中的第二維度表,維度表z即本發(fā)明上述實(shí)施例中的指標(biāo)表。
[0061]步驟S204,對(duì)第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到有意義的數(shù)據(jù)R1。
[0062]其中,數(shù)據(jù)Rl即本發(fā)明上述實(shí)施例中的第一數(shù)據(jù)。
[0063]步驟S206,查詢出數(shù)據(jù)表X的主鍵列并存入臨時(shí)表Xl (x_id)。
[0064]步驟S208,查詢出數(shù)據(jù)表y的主鍵列并存入臨時(shí)表yl (y_id)。
[0065]步驟S210,先遍歷臨時(shí)表xl (x_id)的所有行,在遍歷臨時(shí)表xl (x_id)的每一行時(shí),遍歷臨時(shí)表yl (y_id)中的所有行,得到[x_id, y_id]的組合行。
[0066]其中,組合行即本發(fā)明上述實(shí)施例中的第三主鍵列。
[0067]步驟S212,依次判斷[x_id,y_id]中的各行是否在數(shù)據(jù)Rl中。
[0068]其中,如果[x_id,y_id]中的一行在數(shù)據(jù)Rl中,執(zhí)行步驟S214 ;如果[x_id,y_id]中的一行不在數(shù)據(jù)Rl中,執(zhí)行步驟S216。
[0069]步驟S214,舍棄該行。
[0070]步驟S216,將該行存入臨時(shí)表[x_y_id]。
[0071]其中,臨時(shí)表[x_y_id]即本發(fā)明上述實(shí)施例中的更新后的第三主鍵列。
[0072]步驟S218,將臨時(shí)表[x_y_id]與維度表x和維度表y做內(nèi)聯(lián)接,得到第四數(shù)據(jù)。
[0073]步驟S220,對(duì)第四數(shù)據(jù)做維度分組,并補(bǔ)充指標(biāo)列為默認(rèn)空值(如,O或空),得到無(wú)意義的數(shù)據(jù)R2。
[0074]其中,數(shù)據(jù)R2即本發(fā)明上述實(shí)施例中的第二數(shù)據(jù)。
[0075]步驟S222,將數(shù)據(jù)Rl和數(shù)據(jù)R2合并后得到目標(biāo)數(shù)據(jù)。
[0076]通過(guò)本發(fā)明上述實(shí)施例,通過(guò)將目標(biāo)數(shù)據(jù)拆分為有意義和無(wú)意義的兩部分?jǐn)?shù)據(jù)分別進(jìn)行查詢計(jì)算,以內(nèi)聯(lián)接計(jì)算出有意義的數(shù)據(jù)部分,以遍歷維度表并補(bǔ)充指標(biāo)列為默認(rèn)空值的方法計(jì)算出無(wú)意義的數(shù)據(jù)部分,將有意義和無(wú)意義的兩部分?jǐn)?shù)據(jù)合并在一起得到目標(biāo)數(shù)據(jù),可以避免在維度表之間進(jìn)行交叉聯(lián)接以及維度表中無(wú)意義的維度行參與指標(biāo)列的分組聚合計(jì)算,使用內(nèi)聯(lián)接可以更好地使用聚集索引,提高了查詢目標(biāo)數(shù)據(jù)的效率。
[0077]需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0078]圖3是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)查詢裝置的示意圖,如圖3所示,該數(shù)據(jù)庫(kù)查詢裝置可以包括:第一獲取模塊10,用于獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表;第一內(nèi)聯(lián)接模塊30,用于將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù);第二獲取模塊50,用于獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列;組合模塊70,用于組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵,得到第三主鍵列;第二內(nèi)聯(lián)接模塊90,用于將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù);合并模塊110,用于合并第一數(shù)據(jù)和第二數(shù)據(jù),得到目標(biāo)數(shù)據(jù)。
[0079]采用本發(fā)明實(shí)施例,在從數(shù)據(jù)庫(kù)中獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的第一維度表、第二維度表以及指標(biāo)表之后,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理得到第一數(shù)據(jù);然后獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列,組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵得到第三主鍵列,并將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理得到第二數(shù)據(jù);合并第一數(shù)據(jù)和第二數(shù)據(jù),即可得到目標(biāo)數(shù)據(jù)。在本發(fā)明上述實(shí)施例中,將目標(biāo)數(shù)據(jù)拆分為兩個(gè)部分分別進(jìn)行查詢,通過(guò)第一維度表和第二維度表與指標(biāo)表的內(nèi)聯(lián)接計(jì)算得到有意義的數(shù)據(jù)(即上述實(shí)施例中的第一數(shù)據(jù)),并遍歷維度表補(bǔ)充內(nèi)聯(lián)接中刪除的數(shù)據(jù)得到無(wú)意義的數(shù)據(jù)(即上述實(shí)施例中的第二數(shù)據(jù)),合并第一數(shù)據(jù)和第二數(shù)據(jù)得到目標(biāo)數(shù)據(jù),無(wú)需對(duì)兩個(gè)維度表和指標(biāo)表進(jìn)行交叉聯(lián)接,避免了現(xiàn)有技術(shù)中對(duì)維度表中無(wú)意義的維度行參與指標(biāo)表的分組聚合計(jì)算,提高了獲取目標(biāo)數(shù)據(jù)的效率,并且使用內(nèi)聯(lián)接可以應(yīng)用聚集索引,通過(guò)使用聚集索引可以進(jìn)一步提高獲取目標(biāo)數(shù)據(jù)的效率。通過(guò)本發(fā)明實(shí)施例,解決了現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題,實(shí)現(xiàn)了提高查詢目標(biāo)數(shù)據(jù)的效率的效果。
[0080]根據(jù)本發(fā)明上述實(shí)施例,第一內(nèi)聯(lián)接模塊可以包括:第一內(nèi)聯(lián)接子模塊,用于將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理,得到第三數(shù)據(jù);計(jì)算模塊,用于將第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到第一數(shù)據(jù)。
[0081]具體地,將第一維度表和第二維度表與指標(biāo)表進(jìn)行內(nèi)聯(lián)接得到第三數(shù)據(jù),然后對(duì)得到的第三數(shù)據(jù)進(jìn)行維度分組和指標(biāo)聚合計(jì)算,得到第一數(shù)據(jù)。
[0082]通過(guò)本發(fā)明實(shí)施例,通過(guò)對(duì)維度表和指標(biāo)表進(jìn)行內(nèi)聯(lián)接處理,無(wú)需對(duì)維度表和指標(biāo)表進(jìn)行交叉聯(lián)接處理,避免了維度表中無(wú)意義的維度行與指標(biāo)表中的各個(gè)指標(biāo)行進(jìn)行分組聚合計(jì)算,提高了獲得第一數(shù)據(jù)的效率,進(jìn)而提高了查詢目標(biāo)數(shù)據(jù)的效率。
[0083]根據(jù)本發(fā)明上述實(shí)施例,第二內(nèi)聯(lián)接模塊可以包括:判斷模塊,用于判斷第三主鍵列中的第三主鍵是否存在于第一數(shù)據(jù);舍棄模塊,用于在第三主鍵列中的第三主鍵存在于第一數(shù)據(jù)的情況下,舍棄第三主鍵,得到更新后的第三主鍵列;第二內(nèi)聯(lián)接子模塊,用于使用更新后的第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理,得到第四數(shù)據(jù);補(bǔ)充模塊,用于補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)。
[0084]具體地,在將第三主鍵列與第一維度表和第二維度表進(jìn)行內(nèi)聯(lián)接時(shí),首先判斷第三主鍵列中的第三主鍵是否存在于第一數(shù)據(jù),并在第三主鍵列中的第三主鍵存在于第一數(shù)據(jù)時(shí),舍棄第三主鍵,得到更新后的第三主鍵列,并使用更新后的第三主鍵列與第一維度表和第二維度表進(jìn)行內(nèi)聯(lián)接得到第四數(shù)據(jù),然后補(bǔ)充第四數(shù)據(jù)中的指標(biāo)列,得到第二數(shù)據(jù)。
[0085]通過(guò)本發(fā)明上述實(shí)施例,將第三主鍵列中與第一數(shù)據(jù)中的主鍵重復(fù)的主鍵刪除,并使用更新后的第三主鍵列與兩個(gè)維度表進(jìn)行內(nèi)聯(lián)接,無(wú)需對(duì)第一數(shù)據(jù)中已存在的數(shù)據(jù)進(jìn)行再次處理,可以進(jìn)一步地提高查詢目標(biāo)數(shù)據(jù)的效率。
[0086]進(jìn)一步地,補(bǔ)充模塊可以包括:分組模塊,用于對(duì)第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù);補(bǔ)充子模塊,用于補(bǔ)充第五數(shù)據(jù)中的指標(biāo)列,并使用零或空設(shè)置指標(biāo)列的值,得到第二數(shù)據(jù)。
[0087]具體地,在對(duì)第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù)之后,將第五數(shù)據(jù)中的指標(biāo)列補(bǔ)充為默認(rèn)空值(如O或空),將補(bǔ)充后的第五數(shù)據(jù)作為第二數(shù)據(jù)。
[0088]通過(guò)本發(fā)明上述實(shí)施例,將內(nèi)聯(lián)接處理刪除無(wú)意義的指標(biāo)列的值重新補(bǔ)充為默認(rèn)空值,保證了目標(biāo)數(shù)據(jù)中的各個(gè)維度值和指標(biāo)值的完整性,避免了由于數(shù)據(jù)丟失而導(dǎo)致的目標(biāo)數(shù)據(jù)不準(zhǔn)確,提高了查詢目標(biāo)數(shù)據(jù)的準(zhǔn)確度。
[0089]在本發(fā)明的上述實(shí)施例中,第二獲取模塊可以包括:第一查詢模塊,用于查詢第一維度表中的第一主鍵列,保存第一主鍵列至第一數(shù)據(jù)表;第二查詢模塊,用于查詢第二維度表中的第二主鍵列,保存第二主鍵列至第二數(shù)據(jù)表;從第一數(shù)據(jù)表中讀取第一主鍵列和從第二數(shù)據(jù)表中讀取第二主鍵列。
[0090]具體地,在獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列時(shí),將查詢到的第一維度表中的第一主鍵列保存至第一數(shù)據(jù)表,將查詢到的第二維度表中的第二主鍵列保存至第二數(shù)據(jù)表,然后讀取第一數(shù)據(jù)表中的第一主鍵列和第二數(shù)據(jù)表中的第二主鍵列。
[0091 ] 進(jìn)一步地,可以通過(guò)遍歷第一數(shù)據(jù)表中的第一主鍵列,并在遍歷第一主鍵列中的每一行時(shí),遍歷第二數(shù)據(jù)表中的第二主鍵列的各個(gè)行,得到組合行,將得到的組合行作為第三主鍵列。通過(guò)本發(fā)明上述實(shí)施例,實(shí)現(xiàn)了組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵得到第三主鍵列。
[0092]本實(shí)施例中所提供的各個(gè)模塊與方法實(shí)施例對(duì)應(yīng)步驟所提供的使用方法相同、應(yīng)用場(chǎng)景也可以相同。當(dāng)然,需要注意的是,上述模塊涉及的方案可以不限于上述實(shí)施例中的內(nèi)容和場(chǎng)景,且上述模塊可以運(yùn)行在計(jì)算機(jī)終端或移動(dòng)終端,可以通過(guò)軟件或硬件實(shí)現(xiàn)。
[0093]從以上的描述中,可以看出,本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果:
[0094]采用本發(fā)明實(shí)施例,在從數(shù)據(jù)庫(kù)中獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的第一維度表、第二維度表以及指標(biāo)表之后,將第一維度表和第二維度表與指標(biāo)表做內(nèi)聯(lián)接處理得到第一數(shù)據(jù);然后獲取第一維度表的第一主鍵列和第二維度表的第二主鍵列,組合第一主鍵列中的第一主鍵和第二主鍵列中的第二主鍵得到第三主鍵列,并將第三主鍵列與第一維度表和第二維度表做內(nèi)聯(lián)接處理得到第二數(shù)據(jù);合并第一數(shù)據(jù)和第二數(shù)據(jù),即可得到目標(biāo)數(shù)據(jù)。在本發(fā)明上述實(shí)施例中,將目標(biāo)數(shù)據(jù)拆分為兩個(gè)部分分別進(jìn)行查詢,通過(guò)第一維度表和第二維度表與指標(biāo)表的內(nèi)聯(lián)接計(jì)算得到有意義的數(shù)據(jù)(即上述實(shí)施例中的第一數(shù)據(jù)),并遍歷維度表補(bǔ)充內(nèi)聯(lián)接中刪除的數(shù)據(jù)得到無(wú)意義的數(shù)據(jù)(即上述實(shí)施例中的第二數(shù)據(jù)),合并第一數(shù)據(jù)和第二數(shù)據(jù)得到目標(biāo)數(shù)據(jù),無(wú)需對(duì)兩個(gè)維度表和指標(biāo)表進(jìn)行交叉聯(lián)接,避免了現(xiàn)有技術(shù)中對(duì)維度表中無(wú)意義的維度行參與指標(biāo)表的分組聚合計(jì)算,提高了獲取目標(biāo)數(shù)據(jù)的效率,并且使用內(nèi)聯(lián)接可以應(yīng)用聚集索引,通過(guò)使用聚集索引可以進(jìn)一步提高獲取目標(biāo)數(shù)據(jù)的效率。通過(guò)本發(fā)明實(shí)施例,解決了現(xiàn)有技術(shù)中在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的效率低的問(wèn)題,實(shí)現(xiàn)了提高查詢目標(biāo)數(shù)據(jù)的效率的效果。
[0095]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0096]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)庫(kù)查詢方法,其特征在于,包括: 獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表; 將所述第一維度表和所述第二維度表與所述指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù); 獲取所述第一維度表的第一主鍵列和所述第二維度表的第二主鍵列; 組合所述第一主鍵列的第一主鍵和所述第二主鍵列的第二主鍵,得到第三主鍵列; 將所述第三主鍵列與所述第一維度表和所述第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù); 合并所述第一數(shù)據(jù)和所述第二數(shù)據(jù),得到所述目標(biāo)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)查詢方法,其特征在于,將所述第一維度表和所述第二維度表與所述指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù)包括: 將所述第一維度表和所述第二維度表與所述指標(biāo)表做內(nèi)聯(lián)接處理,得到第三數(shù)據(jù); 將所述第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到所述第一數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)查詢方法,其特征在于,將所述第三主鍵列與所述第一維度表和所述第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù)包括: 判斷所述第三主鍵列中的第三主鍵是否存在于所述第一數(shù)據(jù); 若所述第三主鍵列中的所述第三主鍵存在于所述第一數(shù)據(jù),則舍棄所述第三主鍵,得到更新后的所述第三主鍵列; 使用更新后的所述第三主鍵列與所述第一維度表和所述第二維度表做內(nèi)聯(lián)接處理,得到第四數(shù)據(jù); 補(bǔ)充所述第四數(shù)據(jù)中的指標(biāo)列,得到所述第二數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)庫(kù)查詢方法,其特征在于,補(bǔ)充所述第四數(shù)據(jù)中的指標(biāo)列,得到所述第二數(shù)據(jù)包括: 對(duì)所述第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù); 補(bǔ)充所述第五數(shù)據(jù)中的所述指標(biāo)列,并使用零或空設(shè)置所述指標(biāo)列的值,得到所述第二數(shù)據(jù)。
5.根據(jù)權(quán)利要求1至4中任意一項(xiàng)所述的數(shù)據(jù)庫(kù)查詢方法,其特征在于,獲取所述第一維度表的第一主鍵列和所述第二維度表的第二主鍵列包括: 查詢所述第一維度表中的所述第一主鍵列,保存所述第一主鍵列至第一數(shù)據(jù)表; 查詢所述第二維度表中的所述第二主鍵列,保存所述第二主鍵列至第二數(shù)據(jù)表; 從所述第一數(shù)據(jù)表中讀取所述第一主鍵列和從所述第二數(shù)據(jù)表中讀取所述第二主鍵列。
6.一種數(shù)據(jù)庫(kù)查詢裝置,其特征在于,包括: 第一獲取模塊,用于獲取待查詢的目標(biāo)數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)庫(kù)中的第一維度表、第二維度表以及指標(biāo)表; 第一內(nèi)聯(lián)接模塊,用于將所述第一維度表和所述第二維度表與所述指標(biāo)表做內(nèi)聯(lián)接處理,得到第一數(shù)據(jù); 第二獲取模塊,用于獲取所述第一維度表的第一主鍵列和所述第二維度表的第二主鍵列; 組合模塊,用于組合所述第一主鍵列中的第一主鍵和所述第二主鍵列中的第二主鍵,得到第二主鍵列; 第二內(nèi)聯(lián)接模塊,用于將所述第三主鍵列與所述第一維度表和所述第二維度表做內(nèi)聯(lián)接處理,得到第二數(shù)據(jù); 合并模塊,用于合并所述第一數(shù)據(jù)和所述第二數(shù)據(jù),得到所述目標(biāo)數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫(kù)查詢裝置,其特征在于,所述第一內(nèi)聯(lián)接模塊包括: 第一內(nèi)聯(lián)接子模塊,用于將所述第一維度表和所述第二維度表與所述指標(biāo)表做內(nèi)聯(lián)接處理,得到第三數(shù)據(jù); 計(jì)算模塊,用于將所述第三數(shù)據(jù)做維度分組和指標(biāo)聚合計(jì)算,得到所述第一數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫(kù)查詢裝置,其特征在于,所述第二內(nèi)聯(lián)接模塊包括: 判斷模塊,用于判斷所述第三主鍵列中的第三主鍵是否存在于所述第一數(shù)據(jù); 舍棄模塊,用于在所述第三主鍵列中的所述第三主鍵存在于所述第一數(shù)據(jù)的情況下,舍棄所述第三主鍵,得到更新后的所述第三主鍵列; 第二內(nèi)聯(lián)接子模塊,用于使用更新后的所述第三主鍵列與所述第一維度表和所述第二維度表做內(nèi)聯(lián)接處理,得到第四數(shù)據(jù); 補(bǔ)充模塊,用于補(bǔ)充所述第四數(shù)據(jù)中的指標(biāo)列,得到所述第二數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)庫(kù)查詢裝置,其特征在于,所述補(bǔ)充模塊包括: 分組模塊,用于對(duì)所述第四數(shù)據(jù)進(jìn)行維度分組得到第五數(shù)據(jù); 補(bǔ)充子模塊,用于補(bǔ)充所述第五數(shù)據(jù)中的所述指標(biāo)列,并使用零或空設(shè)置所述指標(biāo)列的值,得到所述第二數(shù)據(jù)。
10.根據(jù)權(quán)利要求6至9中任意一項(xiàng)所述的數(shù)據(jù)庫(kù)查詢裝置,其特征在于,所述第二獲取模塊包括: 第一查詢模塊,用于查詢所述第一維度表中的所述第一主鍵列,保存所述第一主鍵列至第一數(shù)據(jù)表; 第二查詢模塊,用于查詢所述第二維度表中的所述第二主鍵列,保存所述第二主鍵列至第二數(shù)據(jù)表; 從所述第一數(shù)據(jù)表中讀取所述第一主鍵列和從所述第二數(shù)據(jù)表中讀取所述第二主鍵列。
【文檔編號(hào)】G06F17/30GK104392001SQ201410779290
【公開(kāi)日】2015年3月4日 申請(qǐng)日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】廖小利 申請(qǐng)人:北京國(guó)雙科技有限公司