亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多維度數(shù)據(jù)的查詢方法及裝置與流程

文檔序號(hào):12824872閱讀:543來(lái)源:國(guó)知局
本申請(qǐng)涉及數(shù)據(jù)庫(kù)領(lǐng)域,具體而言,涉及一種多維度數(shù)據(jù)的查詢方法及裝置。
背景技術(shù)
::在聯(lián)機(jī)分析處理(on-lineanalyticalprocessing,簡(jiǎn)稱olap)的環(huán)境下,目前常用的查詢引擎有hive、impala等結(jié)構(gòu)化的帶元數(shù)據(jù)的數(shù)據(jù)庫(kù)。在這些數(shù)據(jù)庫(kù)中,通常,將各類事件的數(shù)據(jù)記錄在各個(gè)事實(shí)數(shù)據(jù)表中。例如,在“教學(xué)管理系統(tǒng)”中,教學(xué)管理數(shù)據(jù)庫(kù)包含以下幾個(gè)事實(shí)數(shù)據(jù)表:“教師”表、“課程”表、“成績(jī)”表、“學(xué)生”表、“班級(jí)”表和“授課”表等,通過(guò)以上事實(shí)數(shù)據(jù)表可管理教學(xué)過(guò)程中學(xué)生、教師、課程等信息。再例如,在對(duì)互聯(lián)網(wǎng)的會(huì)話進(jìn)行監(jiān)測(cè)時(shí),一般有會(huì)話表(session)、頁(yè)面瀏覽表(pageview)、站內(nèi)搜索表(sitesearch)、訂單表(ecommerce)和自定義事件表(event)等多種代表各種業(yè)務(wù)場(chǎng)景的事實(shí)數(shù)據(jù)表,這些數(shù)據(jù)表可通過(guò)客戶的會(huì)話標(biāo)識(shí)(sessionid)進(jìn)行關(guān)聯(lián),以形成整個(gè)會(huì)話的所有實(shí)體。當(dāng)用戶需要從多個(gè)角度、跨越多個(gè)事實(shí)數(shù)據(jù)表將數(shù)據(jù)關(guān)聯(lián)以查看指標(biāo)數(shù)據(jù)和維度數(shù)據(jù)時(shí),在相關(guān)技術(shù)中,通常根據(jù)用戶查詢需求專門編寫相應(yīng)代碼,進(jìn)而實(shí)現(xiàn)在數(shù)據(jù)庫(kù)中查詢相關(guān)的指標(biāo)數(shù)據(jù)和維度數(shù)據(jù)。由于相關(guān)技術(shù)中缺乏統(tǒng)一將用戶查詢需求迅速轉(zhuǎn)化為查詢語(yǔ)言的技術(shù)方案,導(dǎo)致多維度數(shù)據(jù)查詢的執(zhí)行效率較低。針對(duì)相關(guān)技術(shù)中多維度數(shù)據(jù)查詢的執(zhí)行效率較低的問(wèn)題,目前尚未提出有效的解決方案。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)實(shí)施例提供了一種多維度數(shù)據(jù)的查詢方法及裝置,以至少解決相關(guān)技術(shù)中多維度數(shù)據(jù)查詢的執(zhí)行效率較低的技術(shù)問(wèn)題。根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種多維度數(shù)據(jù)的查詢方法,包括:獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度;根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合;根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù) 據(jù)結(jié)構(gòu);以及根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢。進(jìn)一步地,至少一個(gè)查詢維度包括第一查詢維度,根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合包括:判斷第一查詢維度是否僅包含于一個(gè)事實(shí)數(shù)據(jù)表;如果判斷出第一查詢維度僅包含于一個(gè)事實(shí)數(shù)據(jù)表,則將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合;以及如果判斷出第一查詢維度包含于至少兩個(gè)事實(shí)數(shù)據(jù)表,則獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合。進(jìn)一步地,如果判斷出第一查詢維度僅包含于一個(gè)事實(shí)數(shù)據(jù)表,將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合包括:檢測(cè)包含第一查詢維度的事實(shí)數(shù)據(jù)表是否存在于最少表集合中;以及如果檢測(cè)出包含第一查詢維度的事實(shí)數(shù)據(jù)表不存在于最少表集合,則將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合。進(jìn)一步地,如果判斷出第一查詢維度包含于至少兩個(gè)事實(shí)數(shù)據(jù)表,獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合包括:判斷至少兩個(gè)事實(shí)數(shù)據(jù)表中是否存在包含于最少表集合的事實(shí)數(shù)據(jù)表;如果判斷出至少兩個(gè)事實(shí)數(shù)據(jù)表中不存在包含于最少表集合的事實(shí)數(shù)據(jù)表,則獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合。進(jìn)一步地,如果判斷出至少兩個(gè)事實(shí)數(shù)據(jù)表中存在包含于最少表集合的事實(shí)數(shù)據(jù)表,該方法還包括:對(duì)其它查詢維度執(zhí)行根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合的操作,其中,其它查詢維度為至少一個(gè)查詢維度中除第一查詢維度之外的查詢維度。進(jìn)一步地,在判斷第一查詢維度是否僅包含于一個(gè)事實(shí)數(shù)據(jù)表之前,該方法還包括:將指標(biāo)表添加至最少表集合,其中,指標(biāo)表包括查詢指標(biāo)。進(jìn)一步地,在根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合之后,在根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)之前,該方法還包括:獲取最少表集合中各事實(shí)數(shù)據(jù)表對(duì)應(yīng)的連接鍵值;以及根據(jù)連接鍵值將最少表集合中的各個(gè)事實(shí)數(shù)據(jù)表進(jìn)行連接。進(jìn)一步地,根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)包括:確定最少表集合中各個(gè)事實(shí)數(shù)據(jù)表之間連接的順序關(guān)系;按照預(yù)設(shè)條件調(diào)整各個(gè)事實(shí)數(shù)據(jù)表之間連接的順序關(guān)系;以及根據(jù)調(diào)整后的各個(gè)事實(shí)數(shù)據(jù) 表之間連接的順序關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)。根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種多維度數(shù)據(jù)的查詢裝置,包括:第一獲取單元,用于獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度;第二獲取單元,用于根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合;生成單元,用于根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu);以及執(zhí)行單元,用于根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢。進(jìn)一步地,至少一個(gè)查詢維度包括第一查詢維度,第二獲取單元包括:判斷模塊,用于判斷第一查詢維度是否僅包含于一個(gè)事實(shí)數(shù)據(jù)表;添加模塊,用于在判斷出第一查詢維度僅包含于一個(gè)事實(shí)數(shù)據(jù)表時(shí),將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合;以及獲取模塊,用于在判斷出第一查詢維度包含于至少兩個(gè)事實(shí)數(shù)據(jù)表時(shí),獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合。在本申請(qǐng)實(shí)施例中,通過(guò)獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度;根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合;根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu);以及根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢,解決了相關(guān)技術(shù)中多維度數(shù)據(jù)查詢的執(zhí)行效率較低的技術(shù)問(wèn)題,進(jìn)而根據(jù)最少表集合建立用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu),并根據(jù)該數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言,從而可快速實(shí)現(xiàn)對(duì)多維度數(shù)據(jù)的查詢。附圖說(shuō)明此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:圖1是根據(jù)本申請(qǐng)實(shí)施例的多維度數(shù)據(jù)的查詢方法的流程圖;以及圖2是根據(jù)本申請(qǐng)實(shí)施例的多維度數(shù)據(jù)的查詢裝置的示意圖。具體實(shí)施方式為了使本
技術(shù)領(lǐng)域
:的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的 附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。需要說(shuō)明的是,本申請(qǐng)的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。下面,首先對(duì)本申請(qǐng)實(shí)施例中涉及的相關(guān)技術(shù)術(shù)語(yǔ)進(jìn)行解釋,以方便對(duì)本申請(qǐng)的理解。指標(biāo)(查詢指標(biāo)):是指可以進(jìn)行聚合運(yùn)算的值,例如,綜合瀏覽量是一個(gè)指標(biāo),使用求和進(jìn)行聚合;平均停留時(shí)間也是一個(gè)指標(biāo),使用平均進(jìn)行聚合,其中,聚合運(yùn)算包括求和、平均、計(jì)數(shù)等。維度(查詢維度):是指查看指標(biāo)的角度,例如,瀏覽器是一個(gè)維度,可以從瀏覽器這個(gè)維度查詢頁(yè)面瀏覽(pageview,簡(jiǎn)稱為pv),從而可以知道用戶使用哪些瀏覽器查看頁(yè)面,以及使用這些瀏覽器查看頁(yè)面的次數(shù);操作系統(tǒng)為另一個(gè)維度,也可以從操作系統(tǒng)這個(gè)維度查詢pv,從而可以知道用戶使用哪些操作系統(tǒng)查看頁(yè)面,以及使用這些操作系統(tǒng)查看頁(yè)面的次數(shù)。多維剖析(多維度數(shù)據(jù)查詢):是指可以從多個(gè)維度剖析多個(gè)指標(biāo)的值,例如,從操作系統(tǒng)維度查看會(huì)話量值后,選擇其中幾個(gè)成員后,繼續(xù)從瀏覽器維度查看會(huì)話值,即從兩個(gè)維度剖析會(huì)話值。依次類推,可以從多個(gè)維度進(jìn)行自由的剖析。其中,成員是指維度具體對(duì)應(yīng)的對(duì)象,例如,瀏覽器是一個(gè)維度,而ie瀏覽器、chrome瀏覽器即為該維度的一個(gè)成員。維度表:維度表可以看作是用戶來(lái)分析數(shù)據(jù)的窗口,維度表中包含事實(shí)數(shù)據(jù)表中事實(shí)記錄的特性,有些特性提供描述性信息,有些特性指定如何匯總事實(shí)數(shù)據(jù)表數(shù)據(jù),以便為分析者提供有用的信息,維度表包含幫助匯總數(shù)據(jù)的特性的層次結(jié)構(gòu)。例如,包含產(chǎn)品信息的維度表通常包含將產(chǎn)品分為食品、飲料、非消費(fèi)品等若干類的層次結(jié)構(gòu),這些產(chǎn)品中的每一類進(jìn)一步多次細(xì)分,直到各產(chǎn)品達(dá)到最低級(jí)別。在維度表中, 每個(gè)表都包含獨(dú)立于其他維度表的事實(shí)特性,例如,客戶維度表包含有關(guān)客戶的數(shù)據(jù)。維度表中的列字段可以將信息分為不同層次的結(jié)構(gòu)級(jí)。事實(shí)數(shù)據(jù)表:數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)中的中央表,它包含聯(lián)系事實(shí)與維度表的數(shù)字度量值和鍵。事實(shí)數(shù)據(jù)表包含描述業(yè)務(wù)(如銀行事務(wù)或產(chǎn)品銷售)內(nèi)特定事件的數(shù)據(jù)。一般來(lái)說(shuō),一個(gè)事實(shí)數(shù)據(jù)表都要和一個(gè)或多個(gè)維度表相關(guān)聯(lián),用戶在利用事實(shí)數(shù)據(jù)表創(chuàng)建多維數(shù)據(jù)集時(shí),可以使用一個(gè)或多個(gè)維度表。關(guān)聯(lián)鍵:是關(guān)系型數(shù)據(jù)庫(kù)的重要組成部分,是一個(gè)表中的一個(gè)或者幾個(gè)屬性,用于標(biāo)識(shí)該表的每一行或者與另一個(gè)表產(chǎn)生聯(lián)系。根據(jù)本申請(qǐng)實(shí)施例,提供了一種多維度數(shù)據(jù)的查詢方法的方法實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。圖1是根據(jù)本申請(qǐng)實(shí)施例的多維度數(shù)據(jù)的查詢方法的流程圖,如圖1所示,該方法包括如下步驟:步驟s102,獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度。在該步驟中,查詢條件(查詢維度鏈和查詢指標(biāo))可以通過(guò)讀取用戶輸入的查詢指令獲取,用戶查詢指令為用戶從多個(gè)角度、跨越多個(gè)事實(shí)數(shù)據(jù)表將數(shù)據(jù)關(guān)聯(lián)以查看指標(biāo)數(shù)據(jù)和維度數(shù)據(jù)的指令。其中,查詢維度鏈用于對(duì)多個(gè)事實(shí)數(shù)據(jù)表進(jìn)行過(guò)濾,其中,查詢維度鏈包括至少一個(gè)查詢維度。例如,查詢維度鏈包括以下各個(gè)維度節(jié)點(diǎn):操作系統(tǒng)版本(window7)>>瀏覽器(chrome)>>是否新訪問(wèn)者(是)>>頁(yè)面查看量(1)>>訪問(wèn)時(shí)長(zhǎng);查詢指標(biāo)為訪問(wèn)量??蛇x地,在獲取查詢條件之前,可配置查詢維度和查詢指標(biāo)的元數(shù)據(jù)信息,確定查詢維度和查詢指標(biāo)的相關(guān)屬性。例如,可通過(guò)以下方式進(jìn)行查詢維度的配置:"dimensions":[{"name":"sourcetype",//名稱,類型"column":"sourcetype",//列,類型"tables":["session","pageview","ecommerce","sitesearch","mouseclick","event"]},//表:會(huì)話表,頁(yè)面游覽表,訂單表,網(wǎng)站搜索表,點(diǎn)擊表,自定義事件表{"name":"channelname",//名稱,來(lái)源渠道名稱"column":"channelname",//列"tables":["session","pageview","ecommerce","sitesearch","mouseclick","event"]}//表:會(huì)話表,頁(yè)面游覽表,訂單表,網(wǎng)站搜索表,點(diǎn)擊表,自定義事件表]可以通過(guò)以下方式進(jìn)行查詢指標(biāo)的配置:"measures":[{"name":"visits",//名稱,訪問(wèn)量"table":"session",//表,會(huì)話表"column":null,"aggregatetype":"count"},{"name":"bouncesvisits",//名稱,訪問(wèn)量"table":"session",//表,會(huì)話表"column":"isbouce",//列,isbouce列"aggregatetype":"sum"}]步驟s104,根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù) 據(jù)表的集合。由于一個(gè)維度可能在多個(gè)表上出現(xiàn),且表示同樣的過(guò)濾意義,因此在進(jìn)行多維度數(shù)據(jù)查詢時(shí),判斷選取哪些事實(shí)數(shù)據(jù)表參與計(jì)算顯得尤為重要。其中,選取的參與計(jì)算的事實(shí)數(shù)據(jù)表的數(shù)量越少,查詢效率就越高,內(nèi)存開銷也越少,更有利于優(yōu)化整個(gè)系統(tǒng)的查詢性能。例如,多個(gè)事實(shí)數(shù)據(jù)表為多個(gè)銷售數(shù)據(jù)表,多個(gè)銷售數(shù)據(jù)表包括北方地區(qū)銷售數(shù)據(jù)表、南方地區(qū)銷售數(shù)據(jù)表、以及各個(gè)省份的銷售數(shù)據(jù)表。其中,在查詢維度為河北省(比如指標(biāo)為年平均銷售量)時(shí),在北方地區(qū)銷售數(shù)據(jù)表和河北省銷售數(shù)據(jù)表中均存在該維度。因此,在選擇參與計(jì)算(查詢)的事實(shí)數(shù)據(jù)表時(shí),可以只選擇上述兩個(gè)事實(shí)數(shù)據(jù)表之一,以減少不必要的計(jì)算開銷,提高查詢效率。該步驟中的最少表集合,即為數(shù)據(jù)庫(kù)中存儲(chǔ)的多個(gè)事實(shí)數(shù)據(jù)表中需要參與計(jì)算的事實(shí)數(shù)據(jù)表的集合。其中,最少表集合中的事實(shí)數(shù)據(jù)表是至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)。最少表集合中的每個(gè)事實(shí)數(shù)據(jù)表可以包括查詢維度鏈上的多個(gè)查詢維度。通過(guò)上述步驟,獲取到與查詢條件相關(guān)聯(lián)的最少表集合,即獲取到后續(xù)查詢數(shù)據(jù)的元數(shù)據(jù)信息。為了提高獲取最少表集合的效率,可選地,至少一個(gè)查詢維度包括第一查詢維度,根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合包括:判斷第一查詢維度是否僅包含于一個(gè)事實(shí)數(shù)據(jù)表;如果判斷出第一查詢維度僅包含于一個(gè)事實(shí)數(shù)據(jù)表,則將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合;以及如果判斷出第一查詢維度包含于至少兩個(gè)事實(shí)數(shù)據(jù)表,則獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合。為了保證最少表集合中保存需要參與計(jì)算的數(shù)量盡可能少的事實(shí)數(shù)據(jù)表,以提高后續(xù)的查詢效率,可選地,如果判斷出第一查詢維度僅包含于一個(gè)事實(shí)數(shù)據(jù)表,將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合包括:檢測(cè)包含第一查詢維度的事實(shí)數(shù)據(jù)表是否存在于最少表集合中;以及如果檢測(cè)出包含第一查詢維度的事實(shí)數(shù)據(jù)表不存在于最少表集合,則將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合。為了提高后續(xù)多維度數(shù)據(jù)的查詢效率,如果檢測(cè)出包含第一查詢維度的事實(shí)數(shù)據(jù)表存在于最少表集合,則可以不對(duì)最少表集合執(zhí)行事實(shí)數(shù)據(jù)表的添加處理。為了保證最少表集合中保存需要參與計(jì)算的數(shù)量盡可能少、并且數(shù)據(jù)量盡可能小的事實(shí)數(shù)據(jù)表,以提高后續(xù)的查詢效率,可選地,如果判斷出第一查詢維度包含于至少兩個(gè)事實(shí)數(shù)據(jù)表,獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù) 據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合包括:判斷至少兩個(gè)事實(shí)數(shù)據(jù)表中是否存在包含于最少表集合的事實(shí)數(shù)據(jù)表;如果判斷出至少兩個(gè)事實(shí)數(shù)據(jù)表中不存在包含于最少表集合的事實(shí)數(shù)據(jù)表,則獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合。為了提高后續(xù)多維度數(shù)據(jù)的查詢效率,如果判斷出至少兩個(gè)事實(shí)數(shù)據(jù)表中存在包含于最少表集合的事實(shí)數(shù)據(jù)表,則可以不對(duì)最少表集合執(zhí)行事實(shí)數(shù)據(jù)表的添加處理。然后,可對(duì)查詢維度鏈中的其它查詢維度執(zhí)行“根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合”的操作,其中,其它查詢維度為查詢維度鏈中的中除第一查詢維度之外的查詢維度。對(duì)其它查詢維度依次執(zhí)行與第一查詢維度相似的操作步驟,并判斷維度鏈中的維度是否均執(zhí)行了相應(yīng)操作步驟。當(dāng)判斷出對(duì)維度鏈中所有的維度均執(zhí)行了相應(yīng)的操作步驟,則此時(shí)得到的事實(shí)數(shù)據(jù)表的集合即為最終的最少表集合。可選地,在判斷第一查詢維度是否僅包含于一個(gè)事實(shí)數(shù)據(jù)表之前,該方法還包括:將指標(biāo)表添加至最少表集合,其中,指標(biāo)表包括查詢指標(biāo)。步驟s106,根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)。在該步驟中,用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)可以理解為一種解析樹的數(shù)據(jù)結(jié)構(gòu)。該解析樹是由查詢條件和連接關(guān)系生成并用于反應(yīng)數(shù)據(jù)流的過(guò)程的數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)記錄了生成結(jié)構(gòu)化查詢語(yǔ)言所需要的所有條件和樣式,根據(jù)查詢需求的維度鏈,剖析維度和指標(biāo)(即上述的查詢條件),計(jì)算出所需要的表結(jié)點(diǎn)以及過(guò)濾信息,并將所有表結(jié)點(diǎn)通過(guò)相關(guān)的關(guān)聯(lián)關(guān)系連接起來(lái)。其中,解析樹中的每一個(gè)節(jié)點(diǎn),相當(dāng)于定義了一個(gè)臨時(shí)表數(shù)據(jù)結(jié)構(gòu)。整個(gè)解析樹反映了如何從原始的數(shù)據(jù)表中通過(guò)相應(yīng)的過(guò)濾、選取、變化,逐步得到最終結(jié)果的過(guò)程,解析樹中記錄了所有的數(shù)據(jù)表結(jié)點(diǎn)??蛇x地,根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)包括:確定最少表集合中各個(gè)事實(shí)數(shù)據(jù)表之間連接的順序關(guān)系;按照預(yù)設(shè)條件調(diào)整各個(gè)事實(shí)數(shù)據(jù)表之間連接的順序關(guān)系;以及根據(jù)調(diào)整后的各個(gè)事實(shí)數(shù)據(jù)表之間連接的順序關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)。具體地,針對(duì)查詢維度鏈計(jì)算出的所有表節(jié)點(diǎn)(最少表集合中的各個(gè)事實(shí)數(shù)據(jù)表),需要進(jìn)行表連接,而表連接順序的設(shè)定對(duì)整個(gè)查詢系統(tǒng)的性能的影響較大。在本申請(qǐng)中,不對(duì)各個(gè)事實(shí)數(shù)據(jù)表之間連接的順序關(guān)系進(jìn)行具體的限定。由于各引擎的查詢的實(shí)現(xiàn)方式不同,因此可以采用不同的表連接順序。例如,可以采用大表連小表的策略(數(shù)據(jù)量大的表連接數(shù)據(jù)量小的表),該方法的性能通常優(yōu)于小表連大表的性能。可選地,在根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合之后,在根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)之前,該方法還包括:獲取最少表集合中各事實(shí)數(shù)據(jù)表對(duì)應(yīng)的連接鍵值;以及根據(jù)連接鍵值將最少表集合中的各個(gè)事實(shí)數(shù)據(jù)表進(jìn)行連接。具體地,事實(shí)數(shù)據(jù)表之間通常采用關(guān)聯(lián)鍵進(jìn)行關(guān)聯(lián)。采用關(guān)聯(lián)鍵將最少表集合中的各個(gè)事實(shí)數(shù)據(jù)表進(jìn)行關(guān)聯(lián)。例如,關(guān)聯(lián)鍵為會(huì)話標(biāo)識(shí)(sessionid)。最少表集合中各事實(shí)數(shù)據(jù)表對(duì)應(yīng)的連接鍵值為相應(yīng)的id等共有維度字段,基于id等共有維度字段將最少表集合中的各個(gè)事實(shí)數(shù)據(jù)表進(jìn)行連接。對(duì)于數(shù)據(jù)倉(cāng)庫(kù),各事實(shí)數(shù)據(jù)表都可能有相應(yīng)的關(guān)系,并且通過(guò)相應(yīng)的id等共有維度字段會(huì)進(jìn)行關(guān)聯(lián)。優(yōu)選地,可以將上述的多個(gè)事實(shí)數(shù)據(jù)表處理為展平的事實(shí)數(shù)據(jù)表。例如,會(huì)話等字段會(huì)派生到其子實(shí)體,如頁(yè)面瀏覽,電商訂單等事實(shí)數(shù)據(jù)表上,這樣在僅剖析會(huì)話類的維度時(shí),如瀏覽器等,就不需要進(jìn)行會(huì)話表的關(guān)聯(lián),從而達(dá)到性能提升的目的。步驟s108,根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢。上述的數(shù)據(jù)查詢語(yǔ)言可以為結(jié)構(gòu)化查詢語(yǔ)言(structuredquerylanguage,簡(jiǎn)稱sql)。例如,查詢維度鏈為:isbounce=0andpageduration>10andsessionpageviews>10;剖析維度為:osbrief;查詢指標(biāo)為:visits,avgsessionduration,sessionpageviews。獲取到與查詢維度鏈、剖析維度和查詢指標(biāo)相關(guān)聯(lián)的最少表集合,根據(jù)最少表集合中各個(gè)事實(shí)數(shù)據(jù)表的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)(解析樹),根據(jù)該數(shù)據(jù)結(jié)構(gòu)可生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言,如下所示:withsas(selectserversessionid,osbrief,pvcount,sessiondurationfromsessionwhereisbounce=0andpvcount>10)pvas(selectserversessionidfrompageviewgroupbyserversessionidhavingmax(pageduration)>10)selectosbrief,sum(pvcount)assessionpageviews,count(*)asvisits,avg(sessionduration)asavgsessiondurationfromsinnerjoinpvons.serversessionid=pv.serversessionidgroupbyosbrieforderbycount(*)desclimit10通過(guò)上述生成的數(shù)據(jù)查詢語(yǔ)言執(zhí)行可實(shí)現(xiàn)相應(yīng)的多維度數(shù)據(jù)查詢。又例如,查詢維度鏈為:isbounce=0andpageduration>10andsessionpageview>10;剖析維度:osbrief;查詢指標(biāo)為:visits,avgsessionduratuon,sessionpageviews。獲取到與查詢維度鏈、剖析維度和查詢指標(biāo)相關(guān)聯(lián)的最少表集合,根據(jù)最少表集合中各個(gè)事實(shí)數(shù)據(jù)表的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)(解析樹),根據(jù)該數(shù)據(jù)結(jié)構(gòu)可生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言,如下所示:pv_jion_session(selectcolumns:osbrief,measuresgroupby:osbrieforderby:visitsdescpaging:1,10)通過(guò)上述生成的數(shù)據(jù)查詢語(yǔ)言可實(shí)現(xiàn)相應(yīng)的多維度數(shù)據(jù)查詢。本申請(qǐng)通過(guò)查詢條件獲取參與多維度數(shù)據(jù)查詢的最少表集合,避免了大量事實(shí)數(shù)據(jù)表參與計(jì)算造成的查詢開銷大、查詢效率低下的問(wèn)題,進(jìn)而通過(guò)對(duì)涵蓋了查詢維度鏈上的所有查詢維度、并且數(shù)量最少的事實(shí)數(shù)據(jù)表進(jìn)行連接,很大程度上減小了查詢的開銷,可以實(shí)現(xiàn)對(duì)多維度數(shù)據(jù)的快速查詢。根據(jù)該實(shí)施例,通過(guò)獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度;根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合;根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu);以及根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢,解決了相關(guān)技術(shù)中多維度數(shù)據(jù)查詢的執(zhí)行效率較低的技術(shù)問(wèn)題,進(jìn)而根據(jù)最少表集合建立用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu),并根據(jù)該數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言,從而可快速實(shí)現(xiàn)對(duì)多維度數(shù)據(jù)的查詢。根據(jù)本申請(qǐng)實(shí)施例,提供了一種多維度數(shù)據(jù)的查詢裝置的裝置實(shí)施例,需要說(shuō)明的是。根據(jù)本發(fā)明實(shí)施例的多維度數(shù)據(jù)的查詢裝置可以用于執(zhí)行本發(fā)明實(shí)施例的多維度數(shù)據(jù)的查詢方法,根據(jù)本發(fā)明實(shí)施例的多維度數(shù)據(jù)的查詢方法也可以通過(guò)本發(fā)明實(shí)施例的多維度數(shù)據(jù)的查詢裝置來(lái)執(zhí)行。圖2是根據(jù)本申請(qǐng)實(shí)施例的多維度數(shù)據(jù)的查詢裝置的示意圖。如圖2所示,該裝置包括:第一獲取單元20、第二獲取單元22、生成單元24和執(zhí)行單元26。第一獲取單元20,用于獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指 標(biāo),查詢維度鏈包括至少一個(gè)查詢維度。第二獲取單元22,用于根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合。生成單元24,用于根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu)。執(zhí)行單元26,用于根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢。根據(jù)該實(shí)施例,通過(guò)第一獲取單元20獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度;第二獲取單元22根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合;生成單元24根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu);以及執(zhí)行單元26根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢,解決了相關(guān)技術(shù)中多維度數(shù)據(jù)查詢的執(zhí)行效率較低的技術(shù)問(wèn)題,進(jìn)而根據(jù)最少表集合建立用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu),并根據(jù)該數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言,從而可快速實(shí)現(xiàn)對(duì)多維度數(shù)據(jù)的查詢??蛇x地,至少一個(gè)查詢維度包括第一查詢維度,第二獲取單元包括:判斷模塊,用于判斷第一查詢維度是否僅包含于一個(gè)事實(shí)數(shù)據(jù)表;添加模塊,用于在判斷出第一查詢維度僅包含于一個(gè)事實(shí)數(shù)據(jù)表時(shí),將包含第一查詢維度的事實(shí)數(shù)據(jù)表添加至最少表集合;以及獲取模塊,用于在判斷出第一查詢維度包含于至少兩個(gè)事實(shí)數(shù)據(jù)表時(shí),獲取至少兩個(gè)事實(shí)數(shù)據(jù)表中數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表,并將該數(shù)據(jù)量最小的事實(shí)數(shù)據(jù)表添加至最少表集合。所述多維度數(shù)據(jù)的查詢裝置包括處理器和存儲(chǔ)器,上述第一獲取單元20、第二獲取單元22、生成單元24和執(zhí)行單元26等均作為程序單元存儲(chǔ)在存儲(chǔ)器中,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的上述程序單元。處理器中包含內(nèi)核,由內(nèi)核去存儲(chǔ)器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個(gè)或以上,通過(guò)調(diào)整內(nèi)核參數(shù)解析文本內(nèi)容。存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram),存儲(chǔ)器包括至少一個(gè)存儲(chǔ)芯片。本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品的實(shí)施例,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:獲取查詢條件,其中,查詢條件包括查詢維度鏈和查詢指標(biāo),查詢維度鏈包括至少一個(gè)查詢維度;根據(jù)查詢條件從多個(gè)事實(shí)數(shù)據(jù)表中獲取最少表集合,其中,最少表集合為多個(gè)事實(shí)數(shù)據(jù)表中至少包含一個(gè)查詢維度和一個(gè)查詢指標(biāo)的、數(shù)量最少的事實(shí)數(shù)據(jù)表的集合;根據(jù)最少表集合中的事實(shí)數(shù)據(jù)表之間的連接關(guān)系生成用于反映數(shù)據(jù)流過(guò)程的數(shù)據(jù)結(jié)構(gòu);以及根據(jù)數(shù)據(jù)結(jié)構(gòu)生成相應(yīng)的數(shù)據(jù)查詢語(yǔ)言并通過(guò)數(shù)據(jù)查詢語(yǔ)言執(zhí)行數(shù)據(jù)查詢。上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(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ī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域
:的普通技術(shù)人員來(lái)說(shuō),在不脫離本申請(qǐng)?jiān)淼那疤嵯拢€可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1