本發(fā)明涉及大數(shù)據(jù)處理
技術(shù)領(lǐng)域:
:,特別涉及一種社保大數(shù)據(jù)OLAP預(yù)處理方法及在線分析查詢方法。
背景技術(shù):
::隨著信息數(shù)據(jù)時(shí)代的來臨,政府、企業(yè)等機(jī)構(gòu)累積產(chǎn)生了大量社保數(shù)據(jù),這些數(shù)據(jù)蘊(yùn)含著大量的信息,但是需要合理的挖掘才能形成有用的可供處理的信息,以便于對(duì)未來進(jìn)行預(yù)測(cè)和適時(shí)地做出決策。許多企業(yè)級(jí)別的系統(tǒng)能夠達(dá)到TB、PB的數(shù)據(jù)量,而對(duì)于分析決策者而言,需要從中提取出可供參考的信息。目前通用的做法是,使用OLAP(OnlineAnalyticalProcessing,在線分析處理)數(shù)據(jù)倉(cāng)庫,將歷史數(shù)據(jù)經(jīng)過一系列的提取、清理、裝載等步驟存放到數(shù)據(jù)變動(dòng)相對(duì)較小的數(shù)據(jù)倉(cāng)庫中,再進(jìn)行在線分析處理OLAP,就能得到相關(guān)的信息以供決策。我國(guó)的社保信息化管理已經(jīng)經(jīng)過多年的發(fā)展完善,但當(dāng)下對(duì)五種社保信息系統(tǒng)的管理,仍然很難獨(dú)立的進(jìn)行有效的處理,更不用說直接進(jìn)行操作。在線分析處理(OLAP)可以將原始數(shù)據(jù)轉(zhuǎn)化為貼近用戶所理解的業(yè)務(wù)維度,提供從各種角度(切片、聚集等)觀察信息的技術(shù),便于分析管理人員快速、一致、交互地訪問數(shù)據(jù)。OLAP的功能特點(diǎn)是提供動(dòng)態(tài)多維的查詢、分析、整合數(shù)據(jù),支持多用戶的分析活動(dòng),包括各個(gè)維度的計(jì)算和查詢應(yīng)用,通過多層次結(jié)構(gòu)進(jìn)行趨勢(shì)分析,進(jìn)行子集切片細(xì)致查看,鉆取到更深的層次,旋轉(zhuǎn)到新的維度進(jìn)行可見的區(qū)域比較等。數(shù)據(jù)分析應(yīng)用程序經(jīng)常對(duì)聚集在不同的層面上的數(shù)據(jù)挖掘一些非常理的模式。對(duì)于這種問題,傳統(tǒng)方法是使用GROUPBY操作,但它已被證明不適合大量的數(shù)據(jù)分析應(yīng)用。所以在1997年提出了一個(gè)新的替代它的方法,它的名字是立方體(CUBE),并已成為OLAP系統(tǒng)中一個(gè)非常熱門的研究領(lǐng)域。針對(duì)OLAP的查詢效率問題,經(jīng)過了將近20年的發(fā)展,已經(jīng)形成了一套完整的理論和方法,主要就是使用CUBE來提升查詢的速度。對(duì)海量社保數(shù)據(jù)的多維查詢分析,查詢速度是評(píng)價(jià)系統(tǒng)性能的關(guān)鍵因素。隨著數(shù)據(jù)立方體(CUBE)在OLAP中的作用日漸重要,需要一種更為高效、快速的算法來計(jì)算和存儲(chǔ)CUBE。然而,已知的CUBE算法仍然存在很多缺點(diǎn),如查詢時(shí)的計(jì)算,長(zhǎng)方體和立方體的具體化和壓縮等。針對(duì)多維立方體查詢的優(yōu)化,有幾個(gè)比較常見的方法:CUBE壓縮,局部物化等。局部物化是一種典型的用空間換取時(shí)間的方法,通過提前建立CUBE達(dá)到減少表連接消耗時(shí)間,當(dāng)涉及到多維的社保數(shù)據(jù),為每一列建立視圖將會(huì)帶來時(shí)間信息、地理信息等方面的巨大冗余,因此這種方法是不盡如人意的,同時(shí)CUBE壓縮同樣存在在高維度下效率低下的情況。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種社保大數(shù)據(jù)OLAP預(yù)處理方法,能夠有效的表達(dá)多維查詢的數(shù)據(jù)模型的結(jié)果并減少其所占用的存儲(chǔ)空間。本發(fā)明的另一目的在于提供一種基于上述預(yù)處理方法的在線分析查詢方法,能夠有效的表達(dá)多維查詢的數(shù)據(jù)模型的結(jié)果并減少其所占用的存儲(chǔ)空間。本發(fā)明的目的通過以下的技術(shù)方案實(shí)現(xiàn):一種社保大數(shù)據(jù)OLAP預(yù)處理方法,包括以下步驟:S1、從原始數(shù)據(jù)庫提取數(shù)據(jù)構(gòu)建數(shù)據(jù)倉(cāng)庫;S2、從數(shù)據(jù)倉(cāng)庫提取單維數(shù)據(jù);S3、對(duì)單維數(shù)據(jù)以及單維數(shù)據(jù)的組合構(gòu)建從屬性到ID的反向映射,并利用反向映射構(gòu)建鍵值對(duì)數(shù)據(jù)倉(cāng)庫;S4、篩選合適的數(shù)據(jù)屬性的組合,保證對(duì)多維屬性的組合可以得到多維數(shù)據(jù)聚合的結(jié)果;S5、由數(shù)據(jù)屬性的組合得到不同的分割,通過各種不同的分割組合來去除重復(fù)冗余的分割,從而保證用最少的分割達(dá)到所有的分割組合,針對(duì)社保數(shù)據(jù)的獨(dú)特性并結(jié)合實(shí)際情況,構(gòu)造一維的CUBE,完成預(yù)處理過程。優(yōu)選的,不同屬性元素對(duì)ID的反向映射,通過鍵值對(duì)數(shù)據(jù)庫LMDB來進(jìn)行存儲(chǔ)。優(yōu)選的,根據(jù)需求建立一種新的表示分割的數(shù)據(jù)結(jié)構(gòu),分為兩部分,第一部分表示它的ID,即它所在原數(shù)據(jù)庫中的ID值;第二部分表示它所屬于的類的ID,即把ID分割成許多子集,每個(gè)子集的ID。進(jìn)一步的,利用Boost庫中的多重索引結(jié)構(gòu)重新封裝,得到一個(gè)可以根據(jù)ID或子集ID索引的新的數(shù)據(jù)結(jié)構(gòu)。優(yōu)選的,步驟S5中一維的CUBE只存儲(chǔ)所有的一維分割,在查詢時(shí),對(duì)一維分割進(jìn)行實(shí)時(shí)的組合即可達(dá)到所有的分割組合;一維的分割指的是單獨(dú)屬性的分割。一種基于上述預(yù)處理方法的在線分析查詢方法,包括以下步驟:預(yù)處理:S1、從原始數(shù)據(jù)庫提取數(shù)據(jù)構(gòu)建數(shù)據(jù)倉(cāng)庫;S2、從數(shù)據(jù)倉(cāng)庫提取單維數(shù)據(jù);S3、對(duì)單維數(shù)據(jù)以及單維數(shù)據(jù)的組合構(gòu)建從屬性到ID的反向映射,并利用反向映射構(gòu)建鍵值對(duì)數(shù)據(jù)倉(cāng)庫;S4、篩選合適的數(shù)據(jù)屬性的組合,保證對(duì)多維屬性的組合可以得到多維數(shù)據(jù)聚合的結(jié)果;S5、由數(shù)據(jù)屬性的組合得到不同的分割,通過各種不同的分割組合來去除重復(fù)冗余的分割,從而保證用最少的分割達(dá)到所有的分割組合,針對(duì)社保數(shù)據(jù)的獨(dú)特性并結(jié)合實(shí)際情況,構(gòu)造CUBE,完成預(yù)處理過程;查詢步驟:S7、用戶輸入查詢需求;S8、構(gòu)建一個(gè)通用的SQL查詢框架,將傳統(tǒng)的SQL語言解析,使之可用于本方法的查詢,以實(shí)現(xiàn)對(duì)底層的封裝;S9、判斷查詢需求是否合法,結(jié)論為否則提醒用戶重新輸入查詢需求,結(jié)論為是則繼續(xù)步驟S10;S10、通過調(diào)用鍵值對(duì)數(shù)據(jù)倉(cāng)庫中的反向映射,分析屬性到ID的數(shù)據(jù),通過對(duì)數(shù)據(jù)的組合和分割處理,生成分割的交和并的算法;S11、從一維的CUBE得到單維數(shù)據(jù)并根據(jù)S10中所得的算法進(jìn)行聚合,生成查詢結(jié)果并返回。本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:本發(fā)明以一種反向的思維對(duì)傳統(tǒng)數(shù)據(jù)庫進(jìn)行處理,得到一個(gè)屬性對(duì)ID的鍵值對(duì)數(shù)據(jù)庫,經(jīng)過嚴(yán)格的理論證明,形成了一個(gè)可以基于此鍵值對(duì)數(shù)據(jù)庫的查詢方法。此方法克服了傳統(tǒng)CUBE算法空間效率低下的問題,以一種全新的思維構(gòu)造了一個(gè)基于分割的數(shù)據(jù)倉(cāng)庫系統(tǒng),并取得了不錯(cuò)的時(shí)間效率。本方法可以滿足日益提高的OLAP查詢的要求,得到了一個(gè)空間消耗低、并滿足實(shí)時(shí)性的OLAP系統(tǒng)。附圖說明圖1為實(shí)施例中數(shù)據(jù)預(yù)處理流程圖;圖2為實(shí)施例中在線分析查詢方法流程圖;圖3為實(shí)施例中查詢過程中讀取數(shù)據(jù)時(shí)間與聚合時(shí)間比較圖;圖4為實(shí)施例中查詢的行數(shù)與總時(shí)間的對(duì)比圖;圖5為本發(fā)明實(shí)施例模型與一個(gè)商用數(shù)據(jù)庫(postgreSQL)的時(shí)間比較;圖6為本發(fā)明實(shí)施例模型在數(shù)據(jù)集SSB中與一個(gè)商用數(shù)據(jù)庫(postgreSQL)的時(shí)間比較。具體實(shí)施方式下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。本實(shí)施例通過OLAP查詢處理引擎和一個(gè)合理的數(shù)學(xué)的證明,提出了模型的廣義的元組通過分割的對(duì)應(yīng)元組。然后,可以證明本算法可以包含或者推導(dǎo)出所有數(shù)據(jù)立方體。然后,通過CUBE的通用查詢模型,可以進(jìn)行任意的分割的計(jì)算,從而實(shí)現(xiàn)了聚集的算法。最終,通過那些單個(gè)的數(shù)據(jù)分割結(jié)構(gòu),可以動(dòng)態(tài)的提取所有聚集的組合,從中查詢出任何需要的結(jié)果。本發(fā)明的算法的核心特點(diǎn)可以概括如下:{查詢結(jié)果}=∧∨{所有提取得到的一維鍵值對(duì)數(shù)據(jù),即所有的單維分割}一種社保大數(shù)據(jù)OLAP預(yù)處理方法,如圖1,包括以下步驟:S1、從原始數(shù)據(jù)庫抽取出所需的數(shù)據(jù),經(jīng)過抽取、轉(zhuǎn)換、加載到數(shù)據(jù)倉(cāng)庫中去;S2、從數(shù)據(jù)倉(cāng)庫提取單維數(shù)據(jù);S3、針對(duì)單維數(shù)據(jù)以及單維數(shù)據(jù)之間的組合,構(gòu)建從屬性到ID的反向映射,利用反向映射構(gòu)建鍵值對(duì)數(shù)據(jù)庫(使用LMDB作為Key/Value數(shù)據(jù)庫進(jìn)行存儲(chǔ)),作為社保數(shù)據(jù)統(tǒng)計(jì)分析的存儲(chǔ)空間;S4、篩選合適的數(shù)據(jù)屬性的組合,保證對(duì)多維屬性的組合可以得到多維數(shù)據(jù)聚合的結(jié)果;S5、由數(shù)據(jù)屬性的組合得到不同的分割,通過各種不同的組合來去除重復(fù)冗余的分割,從而保證用最少的分割達(dá)到所有的分割組合,針對(duì)社保數(shù)據(jù)的獨(dú)特性并結(jié)合實(shí)際情況,構(gòu)造一維的CUBE,完成預(yù)處理過程。一種基于上述預(yù)處理方法的在線分析查詢方法,如圖2,包括以下步驟:預(yù)處理:S1、從原始數(shù)據(jù)庫提取數(shù)據(jù)構(gòu)建數(shù)據(jù)倉(cāng)庫;S2、從數(shù)據(jù)倉(cāng)庫提取單維數(shù)據(jù);S3、對(duì)單維數(shù)據(jù)以及單維數(shù)據(jù)的組合構(gòu)建從屬性到ID的反向映射,并利用反向映射構(gòu)建鍵值對(duì)數(shù)據(jù)倉(cāng)庫;S4、篩選合適的數(shù)據(jù)屬性的組合,保證對(duì)多維屬性的組合可以得到多維數(shù)據(jù)聚合的結(jié)果;S5、由數(shù)據(jù)屬性的組合得到不同的分割,通過各種不同的分割組合來去除重復(fù)冗余的分割,從而保證用最少的分割達(dá)到所有的分割組合,針對(duì)社保數(shù)據(jù)的獨(dú)特性并結(jié)合實(shí)際情況,構(gòu)造一維的CUBE,完成預(yù)處理過程;查詢步驟:S7、用戶輸入查詢需求;S8、構(gòu)建一個(gè)通用的SQL查詢框架,將傳統(tǒng)的SQL語言解析并使之可用于本方法的模型(使用C++編寫的簡(jiǎn)單查詢器),以實(shí)現(xiàn)對(duì)底層的封裝;S9、判斷查詢需求是否合法,結(jié)論為否則提醒用戶重新輸入查詢需求,結(jié)論為是則繼續(xù)步驟S10;S10、通過調(diào)用鍵值對(duì)數(shù)據(jù)倉(cāng)庫中的反向映射,分析屬性到ID的數(shù)據(jù),通過對(duì)數(shù)據(jù)的組合和分割處理,生成分割的交和并的算法;S11、從一維的CUBE得到單維數(shù)據(jù)并根據(jù)S10中所得的算法進(jìn)行聚合,生成查詢結(jié)果并返回。為了實(shí)現(xiàn)上述方法,建立一種新的表示分割的數(shù)據(jù)結(jié)構(gòu),分為兩部分,第一部分表示它的ID,即它所在原數(shù)據(jù)庫中的ID值;第二部分表示它所屬于的類的ID,即把ID分割成許多子集,每個(gè)子集的ID。這里是對(duì)已經(jīng)處理過的鍵值對(duì)數(shù)據(jù)庫又進(jìn)行了一次排列,例:P(p)=12|34|5,那么子集|12|可以被編成序號(hào)1,子集|34|是2,子集|5|就是3,這三部分就是對(duì)屬性P的分割后又形成的鍵值對(duì)數(shù)據(jù)庫的三個(gè)條目。進(jìn)一步利用Boost庫中的多重索引結(jié)構(gòu)重新封裝,得到一個(gè)可以根據(jù)ID或子集ID索引的新的數(shù)據(jù)結(jié)構(gòu)。該方法基于一種新的CUBE底層模型,將傳統(tǒng)的CUBE的存儲(chǔ)模式進(jìn)行改進(jìn),摒棄了之前將全部CUBE實(shí)例化的方法,而采用一種部分實(shí)例化的CUBE并且在運(yùn)行時(shí)進(jìn)行實(shí)時(shí)的聚合。從而形成了一種擁有極高空間效率的CUBE模型。本模型的優(yōu)點(diǎn)是以少量的數(shù)據(jù)存儲(chǔ)進(jìn)行實(shí)時(shí)的OLAP查詢。(1)反向映射的概念通過對(duì)傳統(tǒng)的數(shù)據(jù)庫的ID與屬性之間的映射關(guān)系,可以得到一種新的反向映射的關(guān)系,例如:表1ID與屬性之間的映射關(guān)系表#IDProductCustomerAreaOrderSales1P1C1A2O2102P1C3A1O1203P2C2A1O3304P2C3A3O1105P3C3A3O420Product、Customer、Area、Order為四個(gè)屬性,Sales為每條數(shù)據(jù)的統(tǒng)計(jì)值。在數(shù)據(jù)倉(cāng)庫中,通常要進(jìn)行GroupBy的操作,例如:selectsum(sales),productfromtablegroupbyproduct;其結(jié)果為30P1;40P2;20P3。其中P1屬性對(duì)應(yīng)的Id為1、2,其sales的總和就是10+20=30。將這個(gè)GroupBy的屬性結(jié)果當(dāng)作一個(gè)分割,P1屬性的子集是1、2,P2屬性的子集為3、4,P3屬性的子集就為5。也可以對(duì)多個(gè)屬性進(jìn)行GroupBy操作,例如擁有屬性C1、A2的ID有1,C3、A1的ID是2,C2、A1的ID是3,C3、A3的ID是4和5,所以P(CA)=1|2|3|45。此時(shí),定義agg(P)=12|34|5(agg,即聚合Aggregate,數(shù)據(jù)庫中的GroupBy的結(jié)果),故P(P)=12|34|5(P,Partition,表示對(duì)屬性Product的ID的分割),P(A)=1|23|45,所以可以得到一個(gè)從屬性到ID的映射,稱為反向映射。每一個(gè)單獨(dú)的屬性有一個(gè)映射,他們的組合也可以得到一個(gè)映射,例如:agg(PC)=1|2|3|4|5,agg(CA)=1|2|3|45,即P(PC)=1|2|3|4|5,P(CA)=1|2|3|45。(2)多維度屬性的組合實(shí)例化一維數(shù)據(jù)僅能滿足極少部分的需求,需要在此基礎(chǔ)上進(jìn)行屬性組合,才能滿足實(shí)際的需要,因?yàn)樵谏绫4髷?shù)據(jù)的OLAP中,可能要聚合多種不同種類的組合以滿足實(shí)際的需要。因此就要進(jìn)行組合的證明。證明如下:其中,P、Q代表兩個(gè)分割,t、u代表每個(gè)分割的一個(gè)子集,例如|1|就是P(A)的一個(gè)分割子集,進(jìn)行分割的交與并操作時(shí),只需要將每一個(gè)子集分別進(jìn)行交和并就可以得到分割的組合。(3)最大分割集經(jīng)過分割的屬性,可能會(huì)有相同的分割結(jié)果,例如P(PC)=P(PCAO),對(duì)于相同的結(jié)果,它們是冗余的信息,可以將其刪掉,以減少需要存貯的CUBE。為了進(jìn)一步減少CUBE的數(shù)量,可以將可由其他的分割利用交和并的操作得出的結(jié)果進(jìn)行進(jìn)一步的壓縮,如果一個(gè)分割可由其他的分割組合而成,就可以說它也是冗余的,對(duì)分割集來說,這個(gè)分割就不必存儲(chǔ)了。(4)實(shí)際的分割模型由于在實(shí)際操作中,社保數(shù)據(jù)的維度可以達(dá)到十幾甚至幾十維,因此使用本實(shí)施例的分割方法來找到最大分割集將會(huì)是一個(gè)異常繁重的任務(wù),首先需要找到所有的分割集,然后要對(duì)每個(gè)分割進(jìn)行比較,以找到冗余的分割,這在預(yù)處理方面是一個(gè)極大的開銷,因此可以使用一個(gè)簡(jiǎn)化方法,首先假設(shè)查詢的聚合以低維為主,例如2維、3維,然后在此基礎(chǔ)上,每一種組合都可由幾個(gè)一維的分割來實(shí)現(xiàn),一維的分割指的是單獨(dú)屬性的分割,例如P(A)、P(C)、P(A)等。通過之前的證明,可知,這些一維的分割可以組合成任意的屬性組合,如P(CA)、P(PC)等,因此,只存儲(chǔ)所有的一維分割,在查詢時(shí),進(jìn)行實(shí)時(shí)的組合即可達(dá)到所有的分割組合。在本發(fā)明中,針對(duì)社保大數(shù)據(jù)的特點(diǎn),首先對(duì)數(shù)據(jù)進(jìn)行提取、清理、載入,以形成合理的數(shù)據(jù)倉(cāng)庫,然后再進(jìn)行進(jìn)一步的提取,得到本實(shí)施例模型需要的屬性反向映射的鍵值對(duì)數(shù)據(jù)庫,此即為需要的最終的數(shù)據(jù)格式,之后的操作都是基于這個(gè)鍵值對(duì)數(shù)據(jù)庫的。所以在這里使用了一個(gè)高性能的鍵值對(duì)數(shù)據(jù)庫程序接口LMDB(LightningMemoryDatabase),以加快對(duì)鍵值對(duì)數(shù)據(jù)庫的I/O,從而提高整體性能。將上述社保大數(shù)據(jù)OLAP預(yù)處理方法及在線分析查詢方法和系統(tǒng)應(yīng)用于社保大數(shù)據(jù)技術(shù)研究與綜合業(yè)務(wù)公共服務(wù)應(yīng)用平臺(tái),具體如下:社保大數(shù)據(jù)綜合業(yè)務(wù)公共服務(wù)平臺(tái)依據(jù)國(guó)家級(jí)的信息化規(guī)劃方案“金保工程”進(jìn)行規(guī)劃建設(shè)?,F(xiàn)有社保業(yè)務(wù)系統(tǒng)的設(shè)計(jì)實(shí)施,基于各部門具體需求形成,業(yè)務(wù)數(shù)據(jù)因分散在各個(gè)業(yè)務(wù)系統(tǒng)中,提供的服務(wù)未能整合成一個(gè)整體數(shù)據(jù)服務(wù)?;诂F(xiàn)有背景,該項(xiàng)目對(duì)各個(gè)孤立的社保業(yè)務(wù)服務(wù)資源進(jìn)行整合,構(gòu)建一個(gè)社保綜合業(yè)務(wù)公共服務(wù)平臺(tái),在原本相互隔離的“數(shù)據(jù)孤島”間架起溝通的橋梁,組成面向全局的統(tǒng)一數(shù)據(jù)視圖及數(shù)據(jù)共享。為了測(cè)試本發(fā)明的OLAP方法及系統(tǒng)的應(yīng)用效果,利用這一社保大數(shù)據(jù)的數(shù)據(jù)庫進(jìn)行實(shí)驗(yàn)。一種基于上述預(yù)處理方法的在線分析查詢系統(tǒng),包括:列式分布式文件系統(tǒng),包括鍵值對(duì)數(shù)據(jù)倉(cāng)庫,負(fù)責(zé)數(shù)據(jù)存儲(chǔ);適用于此系統(tǒng)的查詢分析SQL語句解析器,將對(duì)應(yīng)的SQL語句翻譯成需要的結(jié)果,并進(jìn)行查詢;一個(gè)客戶端界面展示系統(tǒng),用于向客戶提供數(shù)據(jù)查詢結(jié)果。對(duì)這一社保數(shù)據(jù),有四個(gè)已經(jīng)生成的數(shù)據(jù)倉(cāng)庫表,分別是參保人表、人資字典表、勞動(dòng)力登記表、招工登記表。對(duì)這四個(gè)表進(jìn)行對(duì)比和整理后發(fā)現(xiàn),只對(duì)參保人表、人資字典表、勞動(dòng)力登記表進(jìn)行整理、清理,即可得到需要的數(shù)據(jù),一共有26維的數(shù)據(jù),因此生成了26個(gè)鍵值對(duì)數(shù)據(jù)庫,存儲(chǔ)在硬盤上共占用16.8MB的空間,現(xiàn)有的數(shù)據(jù)量在15000行左右。對(duì)于聯(lián)機(jī)分析處理的性能考量,主要從執(zhí)行查詢分析的效率上體現(xiàn)。為驗(yàn)證OLAP查詢性能,編寫了三組9個(gè)SQL的查詢語句進(jìn)行查詢,以獲得必須的查詢時(shí)間,從而驗(yàn)證模型的效率,這三組SQL查詢語句幾乎囊括了所有的這15000條數(shù)據(jù),每一組所要查詢的條目盡量不要重疊,以避免緩存帶來的影響。此外,這三組查詢語句分別從三個(gè)聚集角度來對(duì)社保大數(shù)據(jù)進(jìn)行查詢,分別使用了二維、三維的聚類來實(shí)現(xiàn),以確保在不同維度下查詢效率的比較。以下都是基于這三組數(shù)據(jù)測(cè)試得出的結(jié)果:表2基于社保數(shù)據(jù)的查詢時(shí)間實(shí)驗(yàn)結(jié)果:數(shù)據(jù)輸入時(shí)間(μs)聚合操作時(shí)間(μs)行數(shù)postgreSQL查詢時(shí)間(μs)12027812884553637221000217077130840924861750003230451254624556162000477737497117113871750005546625052048761143000650628503349674214400071580067149067160651430008200907915424752764119000925815561434648258101000圖3給出了使用本實(shí)施例的方法與系統(tǒng)進(jìn)行查詢時(shí)的時(shí)間,此時(shí)間又可分為兩部分,一個(gè)是對(duì)數(shù)據(jù)的輸入輸出的時(shí)間,另一個(gè)為不同維度的數(shù)據(jù)的聚合所用的時(shí)間,圖4給出了查詢時(shí)間與各查詢到的數(shù)據(jù)量的關(guān)系,圖5給出了本實(shí)施例的方法與系統(tǒng)框架與商用數(shù)據(jù)庫的對(duì)比??梢钥吹?,與傳統(tǒng)的商用數(shù)據(jù)庫相比,針對(duì)萬級(jí)的數(shù)據(jù)而言,此模型的查詢效率只有微小的提升,但是當(dāng)數(shù)據(jù)量達(dá)到百萬、千萬甚至上億時(shí),傳統(tǒng)商用數(shù)據(jù)庫的性能就會(huì)顯著下降。本實(shí)施例的方法和系統(tǒng)的時(shí)間效率主要體現(xiàn)在對(duì)不同維度的數(shù)據(jù)的組合上,針對(duì)另外一個(gè)數(shù)據(jù)集SSB(StarSchemaSenchmark)的實(shí)驗(yàn),如圖6,SSB中的數(shù)據(jù)條目共有六百多萬條,可以看到在這里時(shí)間差距已經(jīng)不是那么大,甚至有些查詢的時(shí)間已經(jīng)低于postgreSQL的查詢時(shí)間,可以得出其時(shí)間的消耗隨著數(shù)據(jù)量的增大只有微小的增長(zhǎng),因此本實(shí)施例的方法和系統(tǒng)也擁有很好的時(shí)間效率。上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3