最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種用于GPU平臺的OLAP查詢處理方法

文檔序號:41955034發(fā)布日期:2025-05-16 14:21閱讀:5來源:國知局
一種用于GPU平臺的OLAP查詢處理方法

本發(fā)明涉及數(shù)據(jù)分析處理,具體涉及到一種用于gpu平臺的olap查詢處理方法。


背景技術(shù):

1、olap(on-line?analytical?processing,聯(lián)機分析處理)技術(shù)通過海量數(shù)據(jù)上的分析計算,通過多維分析結(jié)果為企業(yè)提供決策支持,是數(shù)據(jù)倉庫系統(tǒng)中最主要的應(yīng)用技術(shù)。olap技術(shù)可實現(xiàn)于cpu平臺或gpu平臺。

2、gpu端的olap查詢處理,技術(shù)上經(jīng)歷了由列處理發(fā)展到向量化處理的一個過程。

3、在列處理方式下,gpu端的編程采用核函數(shù)(kernel)的模式,以核函數(shù)為一個計算載體,一個算子往往被定義為一個內(nèi)核?;诤撕瘮?shù)的查詢處理旨在優(yōu)化單個內(nèi)核的資源利用,并逐個執(zhí)行查詢計劃中涉及的gpu內(nèi)核。這種優(yōu)化模式下內(nèi)核與內(nèi)核之間是邏輯與數(shù)據(jù)獨立的,當(dāng)單個內(nèi)核算子得到優(yōu)化,總體查詢協(xié)同處理性能便得到優(yōu)化。

4、基于核函數(shù)的查詢處理引擎會導(dǎo)致gpu資源的嚴(yán)重利用不足,產(chǎn)生跨內(nèi)核的通訊延遲,需要物化中間結(jié)果至全局內(nèi)存。這種查詢處理模型導(dǎo)致gpu全局內(nèi)存占用率高、訪問全局內(nèi)存次數(shù)與延遲增大,最終使得gpu計算性能下降。因此進一步出現(xiàn)了向量化處理的方式。gpu向量化查詢處理的關(guān)鍵特征是gpu一個線程塊中的每個線程處理4-8行數(shù)據(jù),是一種線程塊向量化處理、線程內(nèi)向量化處理的模型,這種模型增加了gpu資源利用率并且減少了全局內(nèi)存訪問。然而,向量化處理模式下,不可避免的引起中間結(jié)果物化開銷增大的問題,每個線程所需的資源量在增加,線程計算的復(fù)雜度也比較高,而gpu線程雖然并發(fā)能力強、數(shù)量多,但并不擅長處理復(fù)雜邏輯運算。


技術(shù)實現(xiàn)思路

1、本發(fā)明提供一種用于gpu平臺的olap查詢處理方法,是一種線程塊向量化、線程內(nèi)“行處理”的方法;線程塊向量化處理提高了gpu的計算效率,線程內(nèi)行處理解決了向量化帶來的單個線程負(fù)載過重而影響gpu性能的問題和一次一算子查詢處理方法面臨的大量中間結(jié)果物化、不同算子核函數(shù)間通信開銷的問題,通過更快的寄存器緩存行記錄中間處理結(jié)果,消除內(nèi)存物化訪問開銷。

2、為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案:

3、第一方面,本申請?zhí)峁┮环N用于gpu平臺的olap查詢處理方法,所述方法,包括:

4、步驟1,響應(yīng)于olap查詢處理的sql語句指令,將數(shù)據(jù)庫中的維表和事實表加載到gpu平臺的全局內(nèi)存中;

5、步驟2,解析所述sql語句指令,構(gòu)建虛擬事實表;

6、步驟3,通過第一階段的kernel核函數(shù),實現(xiàn)所述sql語句指令相關(guān)的維表的選擇、投影和分組操作;

7、步驟4,基于維表的選擇、投影和分組操作的結(jié)果,通過第二階段的kernel核函數(shù),按照gpu平臺的線程塊結(jié)構(gòu)對虛擬事實表進行數(shù)據(jù)分片,再由各個線程塊進行批量處理,而每一線程采用行處理的方式,實現(xiàn)事實表的過濾、投影、分組和聚集計算。

8、在一種實現(xiàn)方式中,在所述步驟1中,全局內(nèi)存中的數(shù)據(jù)存儲模型,包括:

9、將維表主鍵映射為連續(xù)的代理鍵并更新相應(yīng)事實表外鍵,并通過事實表外鍵將要訪問的維表列映射為基于事實表外鍵偏移地址的虛擬事實表列。

10、在一種實現(xiàn)方式中,在所述步驟2中,將查詢相關(guān)維表列通過事實表外鍵映射為基于數(shù)組嵌套訪問的虛擬事實表列,將查詢對應(yīng)的多表記錄連接訪問映射為基于虛擬事實表寬表記錄訪問。

11、在一種實現(xiàn)方式中,所述步驟3中,通過表級kernel核函數(shù)實現(xiàn)維表端算子下推,將維表上的選擇、投影、分組操作下推到維表預(yù)處理kernel核函數(shù)中,生成位圖或向量作為表級計算代理向量,虛擬事實表列通過外鍵映射訪問單一的維表代理向量,將維表上的多列訪問縮減到一列。

12、在一種實現(xiàn)方式中,具體包括:

13、針對每個維表,按照其where條件投影出group?by子句對應(yīng)的分組值,并對其創(chuàng)建動態(tài)字典表進行數(shù)據(jù)壓縮,為每個分組分配一個連續(xù)增長的唯一id,并將該分組id存儲于與維表等長的代理向量相應(yīng)單元中,不滿足where條件的記錄在相應(yīng)代理向量單元中存儲為空值;當(dāng)維表上僅存有where子句時,代理向量簡化為代理位圖,用1和0分別代表滿足where條件和不滿足where條件的記錄。

14、在一種實現(xiàn)方式中,所述s4中,根據(jù)維表代理向量,確定虛擬事實表的過濾、投影、分組和聚集計算的操作方式。

15、在一種實現(xiàn)方式中,具體包括:

16、當(dāng)虛擬事實表列對應(yīng)的維表代理向量是位圖時,僅執(zhí)行記錄過濾操作,當(dāng)對應(yīng)的維表代理向量為向量時,空值用于過濾事實表記錄,非空值映射為各維表動態(tài)生成字典表編碼構(gòu)成的分組立方體的多維地址,將事實表度量表達式結(jié)果映射到分組立方體相應(yīng)單元進行聚集計算。

17、在一種實現(xiàn)方式中,在聚集計算時,每個線程塊使用存儲于共享內(nèi)存的分組立方體在線程間聚集計算,最終在全局內(nèi)存合并各分組立方體聚集計算結(jié)果作為查詢分組聚集立方體,并通過動態(tài)字典表映射為原始分組屬性,輸出分組聚集結(jié)果集。

18、本發(fā)明技術(shù)方案,所提出的方法,其具有以下優(yōu)點:

19、(1)通過將復(fù)雜關(guān)系操作轉(zhuǎn)換為高效的數(shù)組訪問及計算,降低查詢實現(xiàn)算法代碼和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜度,實現(xiàn)基于核融合的優(yōu)化模式,查詢核心功能均在一個kernel核函數(shù)中運行,解決中間結(jié)果物化、核函數(shù)通信開銷的問題。

20、(2)通過維表預(yù)處理kernel核函數(shù)將查詢子句下推到維表處理,生成精簡的代理位圖或代理向量,將維表上選擇、投影、分組操作對應(yīng)的多列訪問映射為單一的位圖或向量數(shù)據(jù)結(jié)構(gòu),減少對虛擬事實表列訪問的數(shù)量,通過動態(tài)字典表壓縮減少代理向量大小,最小化分組立方體大小,并充分利用高性能共享內(nèi)存和cache緩存維表代理位圖、代理向量和分組立方體,降低訪問全局內(nèi)存延遲。

21、(3)提出了一種面向gpu硬件架構(gòu)特征的條式計算的查詢處理方法,將復(fù)雜模式轉(zhuǎn)換為基于數(shù)組嵌套地址訪問的虛擬事實表訪問,一次批量處理數(shù)據(jù)條中記錄數(shù)量與線程塊并行執(zhí)行線程數(shù)量相匹配,通過寄存器文件緩存每線程處理記錄的中間計算結(jié)果。一方面gpu內(nèi)核切換幾乎零開銷,線程處理數(shù)據(jù)量變少造成線程塊數(shù)量變多,提高了gpu計算資源利用率;另一方面,gpu線程難以適應(yīng)復(fù)雜的數(shù)據(jù)處理邏輯并降低計算效率,每個線程僅僅處理一行數(shù)據(jù)的方式更加適應(yīng)gpu超大規(guī)模簡單計算核心線程處理的特點,能夠充分發(fā)揮gpu的并行計算性能。



技術(shù)特征:

1.一種用于gpu平臺的olap查詢處理方法,其特征在于,所述方法,包括:

2.根據(jù)權(quán)利要求1所述的用于gpu平臺的olap查詢處理方法,其特征在于,在所述步驟1中,全局內(nèi)存中的數(shù)據(jù)存儲模型,包括:

3.根據(jù)權(quán)利要求2所述的用于gpu平臺的olap查詢處理方法,其特征在于,在所述步驟2中,將查詢相關(guān)維表列通過事實表外鍵映射為基于數(shù)組嵌套訪問的虛擬事實表列,將查詢對應(yīng)的多表記錄連接訪問映射為基于虛擬事實表寬表記錄訪問。

4.根據(jù)權(quán)利要求3所述的用于gpu平臺的olap查詢處理方法,其特征在于,所述步驟3中,通過表級kernel核函數(shù)實現(xiàn)維表端算子下推,將維表上的選擇、投影、分組操作下推到維表預(yù)處理kernel核函數(shù)中,生成位圖或向量作為表級計算代理向量,虛擬事實表列通過外鍵映射訪問單一的維表代理向量,將維表上的多列訪問縮減到一列。

5.根據(jù)權(quán)利要求4所述的用于gpu平臺的olap查詢處理方法,其特征在于,具體包括:

6.根據(jù)權(quán)利要求4所述的用于gpu平臺的olap查詢處理方法,其特征在于,所述s4中,根據(jù)維表代理向量,確定虛擬事實表的過濾、投影、分組和聚集計算的操作方式。

7.根據(jù)權(quán)利要求6所述的用于gpu平臺的olap查詢處理方法,其特征在于,具體包括:

8.根據(jù)權(quán)利要求7所述的用于gpu平臺的olap查詢處理方法,其特征在于,在聚集計算時,每個線程塊使用存儲于共享內(nèi)存的分組立方體在線程間聚集計算,最終在全局內(nèi)存合并各分組立方體聚集計算結(jié)果作為查詢分組聚集立方體,并通過動態(tài)字典表映射為原始分組屬性,輸出分組聚集結(jié)果集。


技術(shù)總結(jié)
本發(fā)明涉及一種用于GPU平臺的OLAP查詢處理方法,所述方法,包括:步驟1,響應(yīng)于OLAP查詢處理的SQL語句指令,將數(shù)據(jù)庫中的維表和事實表加載到GPU平臺的全局內(nèi)存中;步驟2,解析所述SQL語句指令,構(gòu)建虛擬事實表;步驟3,通過第一階段的kernel核函數(shù),實現(xiàn)所述SQL語句指令相關(guān)的維表的選擇、投影和分組操作;步驟4,基于維表的選擇、投影和分組操作的結(jié)果,通過第二階段的kernel核函數(shù),按照GPU平臺的線程塊結(jié)構(gòu)對虛擬事實表進行數(shù)據(jù)分片,再由各個線程塊進行批量處理,而每一線程采用行處理的方式,實現(xiàn)事實表的過濾、投影、分組和聚集計算。

技術(shù)研發(fā)人員:陳紅,李容冰,張延松,劉鵬
受保護的技術(shù)使用者:中國人民大學(xué)
技術(shù)研發(fā)日:
技術(shù)公布日:2025/5/15
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1