關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法及裝置。該方法包括:獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;將維度屬性保存入維度表;從維度表中讀取維度屬性的主鍵;按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值;保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表。通過(guò)保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系,可以在一定程度上解決相關(guān)技術(shù)中ROLAP模式下需查詢每個(gè)分區(qū)而導(dǎo)致的效率低的問(wèn)題,避免了手動(dòng)寫(xiě)slice的麻煩,提高了ROLAP下MDX查詢效率。
【專利說(shuō)明】關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002]隨著Sql Server數(shù)據(jù)庫(kù)查詢性能的不斷提升,在聯(lián)機(jī)分析處理(OnlineAnalytical Processing,簡(jiǎn)稱為0LAP)領(lǐng)域中,關(guān)系型聯(lián)機(jī)分析處理(Relat1nal OnlineAnalytical Processing,簡(jiǎn)稱為R0LAP)存儲(chǔ)方案開(kāi)始變得越來(lái)越流行。在ROLAP模式中,數(shù)據(jù)是高實(shí)時(shí)性的,關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)無(wú)需被Process到多維數(shù)據(jù)集里,OLAP使用者的多維表達(dá)式(Mult1-Dimens1nal express1ns,簡(jiǎn)稱為MDX)查詢語(yǔ)句會(huì)通過(guò)OLAP服務(wù)器轉(zhuǎn)換成Sql語(yǔ)句,直接從關(guān)系數(shù)據(jù)庫(kù)里獲取所需數(shù)據(jù)。能否為OLAP服務(wù)器提供足夠的信息,以將MDX轉(zhuǎn)換成高效的Sql查詢,將很大程度上影響ROLAP模式下的查詢性能。
[0003]在ROLAP模式下,若通過(guò)sql為多維數(shù)據(jù)集設(shè)定分區(qū),那么,當(dāng)執(zhí)行一條MDX查詢的時(shí)候,很可能會(huì)去查詢每個(gè)分區(qū)。原因是,若通過(guò)關(guān)系數(shù)據(jù)庫(kù)中某個(gè)維度表主鍵來(lái)劃分分區(qū),即使通過(guò)該維度表中的屬性去查詢多維數(shù)據(jù)集,由于OLAP引擎中不存在關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù),導(dǎo)致OLAP引擎也無(wú)法知曉該維度屬性所對(duì)應(yīng)的維度主鍵是多少,從而需要查詢每個(gè)分區(qū)。
[0004]針對(duì)相關(guān)技術(shù)中ROLAP模式下需查詢每個(gè)分區(qū)而導(dǎo)致的效率低的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法及裝置,以在一定程度上解決相關(guān)技術(shù)中ROLAP模式下需查詢每個(gè)分區(qū)而導(dǎo)致的效率低的問(wèn)題。
[0006]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法。根據(jù)本發(fā)明的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法包括:獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;將所述維度屬性保存入維度表;從所述維度表中讀取所述維度屬性的主鍵;按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值;保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表。
[0007]進(jìn)一步地,在從所述維度表中讀取所述維度屬性的主鍵之后,所述數(shù)據(jù)處理方法還包括:將所述主鍵作為分區(qū)鍵;生成攜帶有所述分區(qū)鍵和所述維度屬性的第一指令;將所述第一指令發(fā)送至所述關(guān)系型數(shù)據(jù)庫(kù)。
[0008]進(jìn)一步地,按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值包括:從接收到的所述第一指令中提取所述分區(qū)鍵和所述維度屬性;在所述關(guān)系型數(shù)據(jù)庫(kù)中檢索所述維度屬性的存儲(chǔ)區(qū)域值;生成所述分區(qū)鍵與所述存儲(chǔ)區(qū)域值的所述映射關(guān)系。
[0009]進(jìn)一步地,在保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表之后,所述數(shù)據(jù)處理方法還包括:接收數(shù)據(jù)查詢請(qǐng)求,其中,所述數(shù)據(jù)查詢請(qǐng)求中攜帶有請(qǐng)求查詢的維度屬性;從所述維度表中讀取所述維度屬性對(duì)應(yīng)的主鍵;按照所述映射關(guān)系確定所述主鍵對(duì)應(yīng)的所述存儲(chǔ)區(qū)域值;從所述存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)。
[0010]進(jìn)一步地,在接收數(shù)據(jù)查詢請(qǐng)求之后,所述數(shù)據(jù)處理方法還包括:從所述查詢請(qǐng)求中解析出所述維度屬性;從所述存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)包括:生成攜帶有所述存儲(chǔ)區(qū)域值的查詢指令,使用所述查詢指令在所述關(guān)系型數(shù)據(jù)庫(kù)中與所述存儲(chǔ)區(qū)域值對(duì)應(yīng)的區(qū)域中查詢所述事實(shí)數(shù)據(jù)。
[0011]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置。根據(jù)本發(fā)明的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置包括:獲取模塊,用于獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;第一保存模塊,用于將所述維度屬性保存入維度表;第一讀取模塊,用于從所述維度表中讀取所述維度屬性的主鍵;檢索模塊,用于按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值;第二保存模塊,用于保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表。
[0012]進(jìn)一步地,所述數(shù)據(jù)處理裝置還包括:生成模塊,用于在從所述維度表中讀取所述維度屬性的主鍵之后,將所述主鍵作為分區(qū)鍵,生成攜帶有所述分區(qū)鍵和所述維度屬性的第一指令;發(fā)送模塊,用于將所述第一指令發(fā)送至所述關(guān)系型數(shù)據(jù)庫(kù)。
[0013]進(jìn)一步地,所述檢索模塊包括:提取單元,用于從接收到的所述第一指令中提取所述分區(qū)鍵和所述維度屬性;檢索單元,用于在所述關(guān)系型數(shù)據(jù)庫(kù)中檢索所述維度屬性的存儲(chǔ)區(qū)域值;第一生成單元,用于生成所述分區(qū)鍵與所述存儲(chǔ)區(qū)域值的所述映射關(guān)系。
[0014]進(jìn)一步地,所述數(shù)據(jù)處理裝置還包括:接收模塊,在保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表之后,用于接收數(shù)據(jù)查詢請(qǐng)求,其中,所述數(shù)據(jù)查詢請(qǐng)求中攜帶有請(qǐng)求查詢的維度屬性;第二讀取模塊,用于從所述維度表中讀取所述維度屬性對(duì)應(yīng)的主鍵;確定模塊,用于按照所述映射關(guān)系確定所述主鍵對(duì)應(yīng)的所述存儲(chǔ)區(qū)域值;第三讀取模塊,用于從所述存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)。
[0015]進(jìn)一步地,所述數(shù)據(jù)處理裝置還包括:解析模塊,在接收數(shù)據(jù)查詢請(qǐng)求之后,用于從所述查詢請(qǐng)求中解析出所述維度屬性;所述第三讀取模塊包括:第二生成單元,用于生成攜帶有所述存儲(chǔ)區(qū)域值的查詢指令;查詢單元,用于使用所述查詢指令在所述關(guān)系型數(shù)據(jù)庫(kù)中與所述存儲(chǔ)區(qū)域值對(duì)應(yīng)的區(qū)域中查詢所述事實(shí)數(shù)據(jù)。
[0016]根據(jù)發(fā)明實(shí)施例,通過(guò)獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;將所述維度屬性保存入維度表;從所述維度表中讀取所述維度屬性的主鍵;按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值;保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表的方式,在一定程度上解決相關(guān)技術(shù)中ROLAP模式下需查詢每個(gè)分區(qū)而導(dǎo)致的效率低的問(wèn)題,避免了手動(dòng)寫(xiě)slice的麻煩,提高了 ROLAP下MDX查詢效率。
【專利附圖】
【附圖說(shuō)明】
[0017]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0018]圖1是根據(jù)本發(fā)明實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法的流程圖;
[0019]圖2是根據(jù)本發(fā)明實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置的示意圖;
[0020]圖3是根據(jù)本發(fā)明可選實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法的原理示意圖;
[0021]圖4是根據(jù)本發(fā)明可選實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法的流程圖。
【具體實(shí)施方式】
[0022]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0023]為了使本【技術(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ù)的范圍。
[0024]需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0025]本發(fā)明實(shí)施例提供了一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法。
[0026]圖1是根據(jù)本發(fā)明實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法的流程圖。如圖1所示,該關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法包括步驟如下:
[0027]步驟S102,獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;
[0028]步驟S104,將維度屬性保存入維度表;
[0029]步驟S106,從維度表中讀取維度屬性的主鍵;
[0030]步驟S108,按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值;
[0031]步驟SI 10,保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表。
[0032]上述各個(gè)步驟,通過(guò)獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;將維度屬性保存入維度表;從維度表中讀取維度屬性的主鍵;按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值;保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表。通過(guò)從維度表中讀取維度屬性的主鍵,可以利用上述的映射關(guān)系獲取對(duì)應(yīng)的分區(qū),從相應(yīng)的分區(qū)中檢索數(shù)據(jù),而無(wú)需從數(shù)據(jù)庫(kù)的所有分區(qū)中查找數(shù)據(jù),從而可以在一定程度上解決相關(guān)技術(shù)中ROLAP模式下需查詢每個(gè)分區(qū)而導(dǎo)致的效率低的問(wèn)題,提高了 ROLAP下MDX查詢效率。
[0033]其中,上述的ROLAP聯(lián)機(jī)分析處理(OLAP)的一種,它對(duì)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)(而非多維數(shù)據(jù)庫(kù))中的數(shù)據(jù)作動(dòng)態(tài)多維分析。MDX為數(shù)據(jù)庫(kù)的查詢語(yǔ)句,多維表達(dá)式(mult1-dimens1nal express1ns)的英文縮寫(xiě)詞,是一種編程語(yǔ)言語(yǔ)法,支持多維對(duì)象與數(shù)據(jù)的定義和操作。
[0034]在一個(gè)可選的實(shí)施例中,步驟S106之后,本發(fā)明的數(shù)據(jù)處理方法還包括:將主鍵作為分區(qū)鍵;生成攜帶有分區(qū)鍵和維度屬性的第一指令;將第一指令發(fā)送至關(guān)系型數(shù)據(jù)庫(kù)。從而可以將分區(qū)鍵和維度屬性發(fā)送至關(guān)系數(shù)據(jù)庫(kù),避免了手動(dòng)寫(xiě)slice的麻煩。
[0035]在一個(gè)可選的實(shí)施例中,步驟S108按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值,可以根據(jù)如下方式實(shí)現(xiàn):從接收到的第一指令中提取分區(qū)鍵和維度屬性;在關(guān)系型數(shù)據(jù)庫(kù)中檢索維度屬性的存儲(chǔ)區(qū)域值;生成分區(qū)鍵與存儲(chǔ)區(qū)域值的映射關(guān)系。通過(guò)獲取第一指令中的分區(qū)鍵和維度屬性,從而可以在關(guān)系型數(shù)據(jù)庫(kù)中根據(jù)第一指令找出相應(yīng)的分區(qū),在相應(yīng)的分區(qū)中進(jìn)行檢索,提高了檢索效率,實(shí)現(xiàn)了按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值。
[0036]在一個(gè)可選的實(shí)施例中,步驟SllO保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表之后,本發(fā)明的數(shù)據(jù)處理方法還可以包括:接收數(shù)據(jù)查詢請(qǐng)求,其中,該數(shù)據(jù)查詢請(qǐng)求中攜帶有請(qǐng)求查詢的維度屬性;從維度表中讀取維度屬性對(duì)應(yīng)的主鍵;按照映射關(guān)系確定主鍵對(duì)應(yīng)的存儲(chǔ)區(qū)域值;從存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)。從而可以直接根據(jù)預(yù)先存儲(chǔ)的映射關(guān)系,找到需要查詢的事實(shí)數(shù)據(jù),節(jié)省了查詢時(shí)間,提高了查詢效率。
[0037]在一個(gè)上述可選的實(shí)施例中,在接收數(shù)據(jù)查詢請(qǐng)求之后,該可選實(shí)施例還可以包括:從查詢請(qǐng)求中解析出維度屬性,從而可以從查詢請(qǐng)求中獲得維度屬性信息,再根據(jù)映射關(guān)系中維度屬性對(duì)應(yīng)的主鍵,利用分區(qū)檢索要查詢的數(shù)據(jù)。此外,該可選實(shí)施例中從存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù),可以根據(jù)如下方式實(shí)現(xiàn):生成攜帶有存儲(chǔ)區(qū)域值的查詢指令,使用查詢指令在關(guān)系型數(shù)據(jù)庫(kù)中與存儲(chǔ)區(qū)域值對(duì)應(yīng)的區(qū)域中查詢事實(shí)數(shù)據(jù)。從而可以根據(jù)查詢指令中的存儲(chǔ)區(qū)域值,直接在相應(yīng)的存儲(chǔ)區(qū)域查詢事實(shí)數(shù)據(jù),節(jié)省了查詢時(shí)間,提高了查詢效率。
[0038]本發(fā)明實(shí)施例還提供了一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置。該裝置可以通過(guò)各個(gè)模塊及單元實(shí)現(xiàn)其功能。需要說(shuō)明的是,本發(fā)明實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置可以用于執(zhí)行本發(fā)明實(shí)施例所提供的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法,本發(fā)明實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法也可以通過(guò)本發(fā)明實(shí)施例所提供的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置來(lái)執(zhí)行。
[0039]圖2是根據(jù)本發(fā)明實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置的示意圖。如圖2所示,該裝置包括:
[0040]獲取模塊20,用于獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;
[0041]第一保存模塊22,用于將維度屬性保存入維度表;
[0042]第一讀取模塊24,用于從維度表中讀取維度屬性的主鍵;
[0043]檢索模塊26,用于按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值;
[0044]第二保存模塊28,用于保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表。
[0045]上述各個(gè)模塊,利用獲取模塊20獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性;第一保存模塊22將維度屬性保存入維度表;第一讀取模塊24從維度表中讀取維度屬性的主鍵;檢索模塊26按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值;第二保存模塊28保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表,通過(guò)第一讀取模塊24從維度表中讀取維度屬性的主鍵,可以利用上述的映射關(guān)系獲取對(duì)應(yīng)的分區(qū),從相應(yīng)的分區(qū)中檢索數(shù)據(jù),而無(wú)需從數(shù)據(jù)庫(kù)的所有分區(qū)中查找數(shù)據(jù),從而可以在一定程度上解決相關(guān)技術(shù)中ROLAP模式下需查詢每個(gè)分區(qū)而導(dǎo)致的效率低的問(wèn)題,提高了 ROLAP下MDX查詢效率。
[0046]在一個(gè)可選的實(shí)施例中,數(shù)據(jù)處理裝置還可以包括:生成模塊,在從維度表中讀取維度屬性的主鍵之后,用于將主鍵作為分區(qū)鍵,生成攜帶有分區(qū)鍵和維度屬性的第一指令;發(fā)送模塊,用于將第一指令發(fā)送至關(guān)系型數(shù)據(jù)庫(kù)。從而可以將分區(qū)鍵和維度屬性發(fā)送至關(guān)系數(shù)據(jù)庫(kù),避免了手動(dòng)寫(xiě)slice的麻煩。
[0047]在一個(gè)可選的實(shí)施例中,檢索模塊26包括:提取單元,用于從接收到的第一指令中提取分區(qū)鍵和維度屬性;檢索單元,用于在關(guān)系型數(shù)據(jù)庫(kù)中檢索維度屬性的存儲(chǔ)區(qū)域值;第一生成單元,用于生成分區(qū)鍵與所述存儲(chǔ)區(qū)域值的所述映射關(guān)系。通過(guò)提取單元獲取第一指令中的分區(qū)鍵和維度屬性,從而檢索單元可以在關(guān)系型數(shù)據(jù)庫(kù)中根據(jù)第一指令找出相應(yīng)的分區(qū),在相應(yīng)的分區(qū)中進(jìn)行檢索,提高了檢索效率,實(shí)現(xiàn)了按照主鍵檢索關(guān)系型數(shù)據(jù)庫(kù)中維度屬性的存儲(chǔ)區(qū)域值。
[0048]在一個(gè)可選的實(shí)施例中,數(shù)據(jù)處理裝置還可以包括:接收模塊,在保存主鍵和存儲(chǔ)區(qū)域值的映射關(guān)系至維度表之后,用于接收數(shù)據(jù)查詢請(qǐng)求,其中,該數(shù)據(jù)查詢請(qǐng)求中攜帶有請(qǐng)求查詢的維度屬性;第二讀取模塊,用于從維度表中讀取維度屬性對(duì)應(yīng)的主鍵;確定模塊,用于按照映射關(guān)系確定主鍵對(duì)應(yīng)的存儲(chǔ)區(qū)域值;第三讀取模塊,用于從存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)。從而可以直接根據(jù)預(yù)先存儲(chǔ)的映射關(guān)系,找到需要查詢的事實(shí)數(shù)據(jù),節(jié)省了查詢時(shí)間,提高了查詢效率。
[0049]在一個(gè)可選的實(shí)施例中,數(shù)據(jù)處理裝置還可以包括:解析模塊,在接收數(shù)據(jù)查詢請(qǐng)求之后,用于從查詢請(qǐng)求中解析出維度屬性,從而可以從查詢請(qǐng)求中獲得維度屬性信息,再根據(jù)映射關(guān)系中維度屬性對(duì)應(yīng)的主鍵,利用分區(qū)檢索要查詢的數(shù)據(jù)。
[0050]此外,在一個(gè)可選的實(shí)施例中,第三讀取模塊可以采取如下單元實(shí)現(xiàn):第二生成單元,用于生成攜帶有存儲(chǔ)區(qū)域值的查詢指令;查詢單元,用于使用查詢指令在關(guān)系型數(shù)據(jù)庫(kù)中與存儲(chǔ)區(qū)域值對(duì)應(yīng)的區(qū)域中查詢事實(shí)數(shù)據(jù)。從而可以根據(jù)查詢指令中的存儲(chǔ)區(qū)域值,直接在相應(yīng)的存儲(chǔ)區(qū)域查詢事實(shí)數(shù)據(jù),節(jié)省了查詢時(shí)間,提高了查詢效率。
[0051]本實(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)。
[0052]從以上的描述中,可以看出,本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果:在ROLAP模式下,自動(dòng)為分區(qū)生成slice (即映射關(guān)系),免去了用戶手動(dòng)去為每個(gè)分區(qū)指定slice的麻煩,提高了ROLAP模式下的查詢效率。通過(guò)保存映射關(guān)系,可以直接對(duì)相應(yīng)區(qū)域進(jìn)行檢索,進(jìn)一步減少了查詢時(shí)間。
[0053]下面結(jié)合具體的應(yīng)用環(huán)境,對(duì)本發(fā)明的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法進(jìn)行描述。
[0054]圖3是根據(jù)本發(fā)明可選實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法的原理示意圖,如圖3所示,根據(jù)事實(shí)數(shù)據(jù)的某個(gè)外鍵進(jìn)行分區(qū),該外鍵對(duì)應(yīng)某維度表DimA的主鍵。DimA包含主鍵和屬性SA。當(dāng)MDX查詢時(shí),若通過(guò)屬性SA來(lái)查詢,在相關(guān)技術(shù)中,由于OLAP中沒(méi)有sql數(shù)據(jù),導(dǎo)致無(wú)法知道SA對(duì)應(yīng)的主鍵值是多少,也就沒(méi)法利用分區(qū)了。而本發(fā)明的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法就是去自動(dòng)指定該映射(slice的實(shí)質(zhì)就是該映射),也就是紅色部分的映射,這樣,就可以根據(jù)MDX指定的屬性來(lái)直接定位分區(qū)了。
[0055]其中,sql:結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL(),結(jié)構(gòu)化查詢語(yǔ)言是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。
[0056]圖4是根據(jù)本發(fā)明可選實(shí)施例的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法的流程圖,如圖4所示,該方法包括如下步驟:
[0057]步驟S402,選擇一個(gè)維度屬性作為slice屬性;
[0058]該維度屬性在MDX中最常被作為查詢條件。也就是圖3中Slice屬性SA。圖3中,SA的值包括A、B、C。
[0059]步驟S404,指定slice屬性所在維度的主鍵作為分區(qū)鍵,根據(jù)該分區(qū)鍵,生成sql分區(qū)語(yǔ)句,并生成相應(yīng)xmla命令;
[0060]圖3中,主鍵的值包括1、2和3,每個(gè)值對(duì)應(yīng)一個(gè)分區(qū)的值,即外鍵的值1、2和3。
[0061]步驟S406,根據(jù)分區(qū)鍵,檢索關(guān)系型數(shù)據(jù)庫(kù),獲得分區(qū)鍵對(duì)應(yīng)的slice屬性的值,并生成相應(yīng)xmla命令;
[0062]在圖3中,這步的作用就是指定A->1,B_>2,C_>3的映射,該映射就是Slice。
[0063]步驟S408,把slice屬性的xmla命令添加到分區(qū)的xmla命令中;
[0064]步驟S410,向SSAS發(fā)送并執(zhí)行xmla命令。其中的xmla命令為關(guān)系型數(shù)據(jù)庫(kù)與數(shù)據(jù)分析系統(tǒng)之間的指令。
[0065]其中,SSAS為數(shù)據(jù)分析系統(tǒng)。
[0066]經(jīng)過(guò)上述各個(gè)步驟后,假如一個(gè)MDX查詢通過(guò)SA屬性作為過(guò)濾條件,比如指定SA屬性值為B,那么就會(huì)直接從事實(shí)數(shù)據(jù)的分區(qū)2里檢索數(shù)據(jù)。而在原來(lái)沒(méi)指定slice的情況下,雖然查詢中指定了 SA屬性值為B,依然會(huì)從三個(gè)分區(qū)里去檢索相應(yīng)數(shù)據(jù)。
[0067]在本發(fā)明中的步驟S406中,根據(jù)分區(qū)鍵,去數(shù)據(jù)庫(kù)里自動(dòng)獲得slice屬性的值,根據(jù)該值來(lái)生成分區(qū)的slice。這種方式下,生成的slice可以提升ROLAP下的MDX查詢效率,又避免了手動(dòng)寫(xiě)slice的麻煩。
[0068]顯然,本領(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é)合。
[0069]需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0070]在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
[0071]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置,可通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
[0072]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0073]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0074]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、移動(dòng)終端、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0075]以上所述僅為本發(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.一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理方法,其特征在于,包括: 獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性; 將所述維度屬性保存入維度表; 從所述維度表中讀取所述維度屬性的主鍵; 按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值; 保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,在從所述維度表中讀取所述維度屬性的主鍵之后,所述數(shù)據(jù)處理方法還包括: 將所述主鍵作為分區(qū)鍵; 生成攜帶有所述分區(qū)鍵和所述維度屬性的第一指令; 將所述第一指令發(fā)送至所述關(guān)系型數(shù)據(jù)庫(kù)。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值包括: 從接收到的所述第一指令中提取所述分區(qū)鍵和所述維度屬性; 在所述關(guān)系型數(shù)據(jù)庫(kù)中檢索所述維度屬性的存儲(chǔ)區(qū)域值; 生成所述分區(qū)鍵與所述存儲(chǔ)區(qū)域值的所述映射關(guān)系。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,在保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表之后,所述數(shù)據(jù)處理方法還包括: 接收數(shù)據(jù)查詢請(qǐng)求,其中,所述數(shù)據(jù)查詢請(qǐng)求中攜帶有請(qǐng)求查詢的維度屬性; 從所述維度表中讀取所述維度屬性對(duì)應(yīng)的主鍵; 按照所述映射關(guān)系確定所述主鍵對(duì)應(yīng)的所述存儲(chǔ)區(qū)域值; 從所述存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理方法,其特征在于, 在接收數(shù)據(jù)查詢請(qǐng)求之后,所述數(shù)據(jù)處理方法還包括:從所述查詢請(qǐng)求中解析出所述維度屬性; 從所述存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)包括:生成攜帶有所述存儲(chǔ)區(qū)域值的查詢指令,使用所述查詢指令在所述關(guān)系型數(shù)據(jù)庫(kù)中與所述存儲(chǔ)區(qū)域值對(duì)應(yīng)的區(qū)域中查詢所述事實(shí)數(shù)據(jù)。
6.一種關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)處理裝置,其特征在于,包括: 獲取模塊,用于獲取關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的維度屬性; 第一保存模塊,用于將所述維度屬性保存入維度表; 第一讀取模塊,用于從所述維度表中讀取所述維度屬性的主鍵; 檢索模塊,用于按照所述主鍵檢索所述關(guān)系型數(shù)據(jù)庫(kù)中所述維度屬性的存儲(chǔ)區(qū)域值; 第二保存模塊,用于保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置還包括: 生成模塊,用于在從所述維度表中讀取所述維度屬性的主鍵之后,將所述主鍵作為分區(qū)鍵,生成攜帶有所述分區(qū)鍵和所述維度屬性的第一指令; 發(fā)送模塊,用于將所述第一指令發(fā)送至所述關(guān)系型數(shù)據(jù)庫(kù)。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理裝置,其特征在于,所述檢索模塊包括: 提取單元,用于從接收到的所述第一指令中提取所述分區(qū)鍵和所述維度屬性; 檢索單元,用于在所述關(guān)系型數(shù)據(jù)庫(kù)中檢索所述維度屬性的存儲(chǔ)區(qū)域值; 第一生成單元,用于生成所述分區(qū)鍵與所述存儲(chǔ)區(qū)域值的所述映射關(guān)系。
9.根據(jù)權(quán)利要求6所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置還包括: 接收模塊,在保存所述主鍵和所述存儲(chǔ)區(qū)域值的映射關(guān)系至所述維度表之后,用于接收數(shù)據(jù)查詢請(qǐng)求,其中,所述數(shù)據(jù)查詢請(qǐng)求中攜帶有請(qǐng)求查詢的維度屬性; 第二讀取模塊,用于從所述維度表中讀取所述維度屬性對(duì)應(yīng)的主鍵; 確定模塊,用于按照所述映射關(guān)系確定所述主鍵對(duì)應(yīng)的所述存儲(chǔ)區(qū)域值; 第三讀取模塊,用于從所述存儲(chǔ)區(qū)域值指示的區(qū)域內(nèi)讀取請(qǐng)求查詢的事實(shí)數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理裝置,其特征在于, 所述數(shù)據(jù)處理裝置還包括:解析模塊,在接收數(shù)據(jù)查詢請(qǐng)求之后,用于從所述查詢請(qǐng)求中解析出所述維度屬性; 所述第三讀取模塊包括:第二生成單元,用于生成攜帶有所述存儲(chǔ)區(qū)域值的查詢指令;查詢單元,用于使用所述查詢指令在所述關(guān)系型數(shù)據(jù)庫(kù)中與所述存儲(chǔ)區(qū)域值對(duì)應(yīng)的區(qū)域中查詢所述事實(shí)數(shù)據(jù)。
【文檔編號(hào)】G06F17/30GK104462430SQ201410773955
【公開(kāi)日】2015年3月25日 申請(qǐng)日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】?jī)?chǔ)雨知 申請(qǐng)人:北京國(guó)雙科技有限公司