国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)查詢的方法、裝置和系統(tǒng)的制作方法

      文檔序號:10612825閱讀:166來源:國知局
      數(shù)據(jù)查詢的方法、裝置和系統(tǒng)的制作方法
      【專利摘要】一種數(shù)據(jù)查詢的方法、裝置和系統(tǒng),通過數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的;根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄對應(yīng)的行掩碼;若確定該條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且該至少一個原始記錄與該至少一個連續(xù)的第一壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定該第二壓縮記錄對應(yīng)的行掩碼包括該連續(xù)的至少一個第一壓縮記錄對應(yīng)的行掩碼;根據(jù)該條件列中每個壓縮記錄對應(yīng)的行掩碼以及該目標(biāo)列,確定該查詢請求對應(yīng)的查詢結(jié)果,能夠提高數(shù)據(jù)查詢的速度。
      【專利說明】
      數(shù)據(jù)查詢的方法、裝置和系統(tǒng)
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,更具體地,涉及數(shù)據(jù)查詢的方法、裝置和系統(tǒng)。
      【背景技術(shù)】
      [0002]隨著數(shù)據(jù)量和數(shù)據(jù)產(chǎn)生速度的不斷增長,數(shù)據(jù)庫查詢操作需要處理的數(shù)據(jù)量呈指數(shù)型增長,查詢延時不斷增大?;跀?shù)據(jù)量的增長和大規(guī)模的數(shù)據(jù)分析請求,列數(shù)據(jù)庫得到越來越多的重視。
      [0003]針對列數(shù)據(jù)庫查詢請求,目前常用的兩種方法為基于中央處理器(CentralProcessing Unit,CPU)軟件平臺的數(shù)據(jù)查詢方法和基于CPU+現(xiàn)場可編程門陣列(FieId —Programmable Gate Array,F(xiàn)PGA)異構(gòu)平臺的數(shù)據(jù)查詢方法。
      [0004]在基于CPU軟件平臺的數(shù)據(jù)查詢方法中,CPU從磁盤讀取需要的數(shù)據(jù)塊到內(nèi)存,根據(jù)該數(shù)據(jù)塊的壓縮信息索引與查詢請求相關(guān)的數(shù)據(jù)列,并對這些數(shù)據(jù)列進(jìn)行解壓縮處理,根據(jù)數(shù)據(jù)列的解壓縮結(jié)果和查詢請求,確定查詢結(jié)果的行掩碼,最后將查詢結(jié)果反饋給客戶端。
      [0005]在上述基于CPU軟件平臺的數(shù)據(jù)查詢方法中,整個查詢過程都運行在CPU上,而CPU的解壓縮速度在200MB/S左右,限制了數(shù)據(jù)解壓縮的速度,從而影響數(shù)據(jù)查詢的速度。
      [0006]在基于CPU+FPGA異構(gòu)平臺的數(shù)據(jù)查詢方法中,CPU分析客戶端查詢請求,從磁盤讀取需要的數(shù)據(jù)塊到內(nèi)存,并全部發(fā)送給FPGA進(jìn)行解壓縮;FPGA根據(jù)查詢請求對數(shù)據(jù)塊的解壓縮結(jié)果和客戶端查詢請求,確定需要使用的數(shù)據(jù)列以及行掩碼,根據(jù)需要使用的數(shù)據(jù)列以及行掩碼獲得滿足查詢請求的數(shù)據(jù)內(nèi)容反饋給CPU,CPU最后將查詢結(jié)果反饋給客戶端。
      [0007]在上述基于CPU+FPGA異構(gòu)平臺的數(shù)據(jù)查詢方法中,F(xiàn)PGA需要對整個數(shù)據(jù)塊進(jìn)行解壓縮,并進(jìn)行數(shù)據(jù)查詢,影響了數(shù)據(jù)查詢的速度。
      [0008]因此,現(xiàn)有的數(shù)據(jù)查詢的方法在遇到查詢的數(shù)據(jù)量很大的情況時,需要解壓縮大量的數(shù)據(jù),并在大量數(shù)據(jù)中進(jìn)行查詢操作,數(shù)據(jù)查詢速度比較慢。

      【發(fā)明內(nèi)容】

      [0009]本發(fā)明提供了一種數(shù)據(jù)查詢的方法、裝置和系統(tǒng),能夠提高數(shù)據(jù)查詢的速度。
      [0010]第一方面,提供了一種數(shù)據(jù)查詢的方法,該方法包括:數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的;該數(shù)據(jù)查詢裝置根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼;若該數(shù)據(jù)查詢裝置確定該條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且該至少一個原始記錄與該至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄--對應(yīng)相同,確定該第二壓縮記錄對應(yīng)的行掩碼包括該連續(xù)的至少一個第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼;該數(shù)據(jù)查詢裝置根據(jù)該條件列中每個壓縮記錄對應(yīng)的行掩碼以及該目標(biāo)列,確定該查詢請求對應(yīng)的查詢結(jié)果。
      [0011]可選地,該條件列可以包括一列數(shù)據(jù)或多列數(shù)據(jù),該目標(biāo)列可以包括一列或多列數(shù)據(jù)。
      [0012]可選地,列寬可以表示原始數(shù)據(jù)塊中占比特位最長的記錄中值的長度,且該原始數(shù)據(jù)塊中每列數(shù)據(jù)的列寬相同。
      [0013]可選地,該數(shù)據(jù)查詢裝置可以根據(jù)查詢條件以及第一壓縮記錄對應(yīng)的原始記錄,確定第一壓縮記錄對應(yīng)的行掩碼。例如,該數(shù)據(jù)查詢裝置可以對該第一壓縮記錄進(jìn)行解壓縮處理,以獲得該第一壓縮記錄所對應(yīng)的原始記錄,并根據(jù)該查詢條件以及該解壓縮處理得到的原始記錄,確定該第一壓縮記錄對應(yīng)的行掩碼。
      [0014]該數(shù)據(jù)查詢裝置確定第二壓縮記錄對應(yīng)于一個或多個連續(xù)的原始記錄,并且該一個或多個連續(xù)的原始記錄與該至少一個連續(xù)的第一壓縮記錄對應(yīng)的一個或多個連續(xù)的原始記錄一一對應(yīng)相等,則該數(shù)據(jù)查詢裝置可以無需對該第二壓縮記錄進(jìn)行解壓縮處理,而直接將該至少一個連續(xù)的第一壓縮記錄對應(yīng)的行掩碼確定為該第二壓縮記錄的行掩碼,從而能夠提高數(shù)據(jù)處理效率,降低數(shù)據(jù)處理時延。
      [0015]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的;在該數(shù)據(jù)查詢裝置根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼之前,該方法還包括:該數(shù)據(jù)查詢裝置對該條件列中的每個壓縮記錄進(jìn)行與該第二壓縮處理相對應(yīng)的解壓縮處理,得到第一解壓縮數(shù)據(jù)塊,其中,該第一解壓縮數(shù)據(jù)塊包括該至少一個連續(xù)的第一壓縮記錄對應(yīng)的至少一個第一解壓縮記錄和該第二壓縮記錄對應(yīng)的第二解壓縮記錄;該數(shù)據(jù)查詢裝置根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼,包括:該數(shù)據(jù)查詢裝置根據(jù)該查詢條件和該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄,確定該每個第一解壓縮記錄對應(yīng)的行掩碼。
      [0016]可選地,該方法還包括:該若該數(shù)據(jù)查詢裝置確定該至少一個第一解壓縮記錄中的每個第一解壓縮記錄均為原始記錄,則根據(jù)該每個第一解壓縮記錄對應(yīng)的原始記錄和該查詢條件,確定該每個第一解壓縮記錄對應(yīng)的行掩碼。
      [0017]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,該若該數(shù)據(jù)查詢裝置確定該條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且該至少一個原始記錄與該至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定該第二壓縮記錄對應(yīng)的行掩碼包括該連續(xù)的至少一個第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼,包括:若該第二解壓縮記錄具體為距離-長度對,并且該距離-長度對的值指示該第二解壓縮記錄對應(yīng)于該至少一個原始記錄,并且該至少一個原始記錄與該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定該第二解壓縮記錄對應(yīng)的行掩碼包括該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的行掩碼,其中,該距離-長度對中的距離表示該第二解壓縮記錄對應(yīng)的該至少一個原始記錄與該至少一個第一解壓縮記錄對應(yīng)的至少一個原始記錄之間的地址偏移量,該距離-長度對中的長度表示該至少一個第一解壓縮記錄的長度。
      [0018]結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,該方法還包括:若該第二解壓縮記錄為原始記錄,則根據(jù)該第二解壓縮記錄對應(yīng)的原始記錄和該查詢條件,確定該第二解壓縮記錄對應(yīng)的行掩碼。
      [0019]結(jié)合第一方面的第一種至第三種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,該數(shù)據(jù)查詢裝置為現(xiàn)場可編程門陣列FPGA;該數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,包括= FPGA接收中央處理器CHJ發(fā)送的該條件列以及該目標(biāo)列。
      [0020]結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,該查詢條件包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列;在該FPGA接收該CPU發(fā)送的該條件列以及該目標(biāo)列之前,該方法還包括:接收CPU發(fā)送的指示信息,該指示信息用于指示該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系;該FPGA接收該CPU發(fā)送的該條件列以及該目標(biāo)列,包括接收該CPU按照與該邏輯關(guān)系對應(yīng)的操作順序發(fā)送的該第一條件列和該第二條件列。
      [0021]結(jié)合第一方面的第一種至第三種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,該數(shù)據(jù)查詢裝置為CPU;該數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,包括:該CPU獲取該壓縮數(shù)據(jù)塊以及該查詢請求;該CPU根據(jù)該壓縮數(shù)據(jù)塊和該查詢請求,確定該條件列和該目標(biāo)列。
      [0022]結(jié)合第一方面的第一種至第六種可能的實現(xiàn)方式中的任一種可能的實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中,該第一壓縮為LZ77壓縮,該第二壓縮為霍夫曼Huff man 壓縮。
      [0023]第二方面,提供一種數(shù)據(jù)查詢的方法,該方法包括:中央處理器CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的;CPU向現(xiàn)場可編程門陣列FPGA發(fā)送該條件列和該目標(biāo)列。
      [0024]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,該查詢條件包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列;該CPU向現(xiàn)場可編程門陣列FPGA發(fā)送該條件列和該目標(biāo)列,包括:該CPU向該FPGA發(fā)送指示信息,該指示信息用于指示該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系;該CHJ按照與該邏輯關(guān)系對應(yīng)的操作順序向該FPGA發(fā)送該第一條件列和該第二條件列。
      [0025]結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,該CPU向現(xiàn)場可編程門陣列FPGA發(fā)送該條件列和該目標(biāo)列,包括:該CPU在向該FPGA發(fā)送該條件列之后,再發(fā)送該目標(biāo)列。
      [0026]在本發(fā)明實施例的數(shù)據(jù)查詢的方法中,由于條件列中每個壓縮記錄對應(yīng)的行掩碼僅占一個比特位,占用的緩存遠(yuǎn)少于目標(biāo)列的解壓縮結(jié)果,因此可以減少緩存需求,提高了數(shù)據(jù)查詢裝置的查詢性能。
      [0027]第三方面,提供了一種數(shù)據(jù)查詢的裝置,用于執(zhí)行上述第一方面或第一方面的任意可能的實現(xiàn)方式中的方法。具體地,該裝置包括用于執(zhí)行上述第一方面或第一方面的任意可能的實現(xiàn)方式中的方法的單元??蛇x地,該數(shù)據(jù)查詢裝置可以為(PU或者FPGA。
      [0028]第四方面,提供了一種數(shù)據(jù)查詢的裝置,用于執(zhí)行上述第二方面或第二方面的任意可能的實現(xiàn)方式中的方法。具體地,該裝置包括用于執(zhí)行上述第一方面或第一方面的任意可能的實現(xiàn)方式中的方法的單元。可選地,該數(shù)據(jù)查詢裝置可以為CPU。
      [0029]第五方面,提供了一種數(shù)據(jù)查詢的系統(tǒng),包括上述第二方面和第三方面提供的裝置,可選地,該系統(tǒng)包括該第二方面提供的FPGA和該第三方面提供的CPU。
      [0030]第六方面,提供了一種計算機可讀介質(zhì),用于存儲計算機程序,該計算機程序包括用于執(zhí)行第一方面或第一方面的任意可能的實現(xiàn)方式中的方法的指令。
      [0031 ]第七方面,提供了一種計算機可讀介質(zhì),用于存儲計算機程序,該計算機程序包括用于執(zhí)行第二方面或第二方面的任意可能的實現(xiàn)方式中的方法的指令。
      【附圖說明】
      [0032]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0033]圖1是根據(jù)本發(fā)明實施例的數(shù)據(jù)查詢的系統(tǒng)的示意性框圖。
      [0034]圖2是根據(jù)本發(fā)明實施例的數(shù)據(jù)查詢的方法的示意性流程圖。
      [0035]圖3是根據(jù)本發(fā)明實施例的另一數(shù)據(jù)查詢的方法的示意性流程圖。
      [0036]圖4是根據(jù)本發(fā)明實施例的另一數(shù)據(jù)查詢的方法的示意性流程圖。
      [0037]圖5是根據(jù)本發(fā)明實施例的數(shù)據(jù)查詢的裝置的示意性框圖。
      [0038]圖6是根據(jù)本發(fā)明實施例的數(shù)據(jù)查詢的裝置的示意性框圖。
      【具體實施方式】
      [0039]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。
      [0040]圖1示出了本發(fā)明實施例的數(shù)據(jù)查詢的系統(tǒng)示意圖,該系統(tǒng)包括CPUllO、FPGA120、客戶端130和數(shù)據(jù)存儲單元140,其中,該CPU包括查詢解析單元111、文件解析單元112、列選擇單元113和緩存單元114,該FPGA包括數(shù)據(jù)管理與調(diào)度單元121、解壓縮與數(shù)據(jù)查詢單元122和查詢結(jié)果確定單元123。
      [0041]該查詢解析單元111用于接收該客戶端130發(fā)送的查詢請求,該查詢請求包括查詢條件和查詢目標(biāo)。
      [0042]該文件解析單元112用于從該數(shù)據(jù)存儲單元140中讀取查詢需要使用的壓縮數(shù)據(jù)塊,該壓縮數(shù)據(jù)塊攜帶列索引信息,并向列選擇單元113發(fā)送該壓縮數(shù)據(jù)塊以及該列索引信息,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的。
      [0043]可選地,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的,該第一壓縮可為LZ77壓縮,該第二壓縮可以為霍夫曼(Huffman)壓縮。
      [0044]該列選擇單元113用于根據(jù)該壓縮數(shù)據(jù)和該查詢請求,確定查詢需要的條件列和目標(biāo)列,并將該條件列和該目標(biāo)列發(fā)送至該FPGA。
      [0045]該數(shù)據(jù)管理與調(diào)度單元121用于接收該CPU發(fā)送的該條件列和該目標(biāo)列,并向該解壓縮與數(shù)據(jù)查詢單元122發(fā)送該條件列和該目標(biāo)列。
      [0046]該解壓縮與數(shù)據(jù)查詢單元122用于對該條件列和該目標(biāo)列進(jìn)行解壓縮處理,確定該查詢條件對應(yīng)的行掩碼,以及根據(jù)該行掩碼和該目標(biāo)列確定查詢結(jié)果。
      [0047]可選地,該查詢條件可以包括第一子查詢條件和第二子查詢條件
      [0048]該查詢結(jié)果確定單元123用于確定是否需要對查詢條件對應(yīng)的行掩碼進(jìn)行聚合處理,并確定目標(biāo)行掩碼,根據(jù)該目標(biāo)行掩碼和該目標(biāo)列解壓縮結(jié)果確定查詢結(jié)果,并向該CHJ的緩存單元114發(fā)送該查詢結(jié)果。
      [0049]該緩存單元114用于向客戶端130發(fā)送該查詢結(jié)果。
      [0050]圖2示出了本發(fā)明實施例的數(shù)據(jù)查詢的方法200的示意性流程圖。該方法200具體可以由數(shù)據(jù)查詢裝置執(zhí)行。
      [0051 ] S210,數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的。
      [0052]應(yīng)理解,本發(fā)明實施例的原始數(shù)據(jù)塊可以具體為矩陣的形式,例如M*N矩陣,此時,該原始數(shù)據(jù)塊可以表示為{Cm*n,m,n}。在本發(fā)明實施例中,可以對該原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理’以得到化’^^^?丨^可選地’列寬可以表示原始數(shù)據(jù)塊中占比特位最長的記錄中值的長度。
      [0053]可選地,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的,其中,該第一壓縮可以為LZ77壓縮,該第二壓縮可以為霍夫曼Huffman壓縮。
      [0054]應(yīng)理解,本發(fā)明實施例提供的LZ77壓縮算法是一種基于字典籍的無損數(shù)據(jù)壓縮算法,并且是以列寬為單位對原始數(shù)據(jù)數(shù)據(jù)進(jìn)行壓縮的,對于原始數(shù)據(jù)塊中已經(jīng)出現(xiàn)過的第二原始記錄,使用一個指向與該第二原始記錄相同的第一原始記錄的距離-長度對代替重復(fù)出現(xiàn)的該第二原始記錄。其中,該距離-長度對中的距離是指該第二原始記錄與該第一原始記錄之間的地址偏移量,距離-長度對中的長度是指第一原始記錄的長度。LZ77壓縮算法基于“滑動窗口”壓縮,滑動窗口包含兩部分,一部分是輸入的待壓縮原始記錄,另一部分是剛壓縮過的原始記錄作為字典籍。
      [0055]可選地,可以利用LZ77壓縮算法對該原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到LZ77壓縮數(shù)據(jù)塊,具體地,若在該原始數(shù)據(jù)塊中至少一個連續(xù)的第二原始記錄與至少一個連續(xù)的第一原始記錄--對應(yīng)相同,且該至少一個第一原始記錄中每個第一原始記錄均無字典籍,即可以將該至少一個第一原始記錄作為經(jīng)過LZ77壓縮處理后的至少一個第一LZ77壓縮記錄,則將該至少一個第二原始記錄以距離-長度對的形式壓縮為一個第二 LZ77壓縮記錄,其中,該LZ77壓縮數(shù)據(jù)塊包括該至少一個第一LZ77壓縮記錄和該第二LZ77壓縮記錄。
      [0056]可選地,該數(shù)據(jù)查詢裝置可以對該LZ77壓縮數(shù)據(jù)塊再進(jìn)行Huffman壓縮處理,得到該壓縮數(shù)據(jù)塊,其中,該壓縮數(shù)據(jù)塊包括與該至少一個第一LZ77壓縮記錄一一對應(yīng)的至少一個第一壓縮記錄以及與該第二 LZ77壓縮記錄對應(yīng)的第二壓縮記錄。
      [0057]S220,該數(shù)據(jù)查詢裝置根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼。
      [0058]可選地,在S220之前,該數(shù)據(jù)查詢裝置可以對該條件列中的每個壓縮記錄進(jìn)行與該第二壓縮處理相對應(yīng)的解壓縮處理,得到第一解壓縮數(shù)據(jù)塊,其中,該第一解壓縮數(shù)據(jù)塊包括該至少一個連續(xù)的第一壓縮記錄對應(yīng)的至少一個第一解壓縮記錄和該第二壓縮記錄對應(yīng)的第二解壓縮記錄。
      [0059]具體而言,該數(shù)據(jù)查詢裝置可以根據(jù)該至少一個第一解壓縮記錄中每個第一解壓縮記錄以及該查詢條件,確定該每個第一解壓縮記錄對應(yīng)的行掩碼。
      [0060]作為一個可選實施例,該數(shù)據(jù)查詢裝置可以對該條件列中的每個壓縮記錄進(jìn)行Huffman解壓縮處理,得到Huffman解壓縮數(shù)據(jù)塊,其中,該Huffman解壓縮數(shù)據(jù)塊包括與該至少一個第一 LZ77壓縮記錄對應(yīng)的至少一個第一 Huffman解壓縮記錄和該第二 LZ77壓縮記錄對應(yīng)的第二 Huff man解壓縮記錄,其中,該至少一個第一 Huff man解壓縮記錄對應(yīng)于至少一個第一原始記錄。則該數(shù)據(jù)查詢裝置可以根據(jù)該至少一個第一原始記錄中每個第一原始記錄以及該查詢條件,確定與該每個第一原始記錄對應(yīng)的行掩碼。
      [0061]S230,若該數(shù)據(jù)查詢裝置確定該條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且該至少一個原始記錄與該至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄--對應(yīng)相同,確定該第二壓縮記錄對應(yīng)的行掩碼包括該連續(xù)的至少一個第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼。
      [0062]具體地,若該第二解壓縮記錄具體為距離-長度對,并且該距離-長度對的值指示該第二解壓縮記錄對應(yīng)于該至少一個原始記錄,并且該至少一個原始記錄與該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定該第二解壓縮記錄對應(yīng)的行掩碼包括該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的行掩碼,其中,該距離-長度對中的距離表示該第二解壓縮記錄對應(yīng)的該至少一個原始記錄與該至少一個第一解壓縮記錄對應(yīng)的至少一個原始記錄之間的地址偏移量,該距離-長度對中的長度表示該至少一個第一解壓縮記錄的長度。
      [0063]作為一個可選實施例,若該數(shù)據(jù)查詢裝置確定該第二Huffman解壓縮記錄具體為距離-長度對,且該距離-長度對的值指示該第二 Huffman解壓縮記錄對應(yīng)于該至少一個第一Huffman解壓縮記錄,其中,該至少一個第一Huffman解壓縮記錄對應(yīng)于至少一個第一原始記錄。則確定該第二 Huffman解壓縮記錄對應(yīng)的行掩碼包括該至少一個第一原始記錄中第一原始記錄對應(yīng)的行掩碼。
      [0064]作為另一個可選實施例,若該數(shù)據(jù)查詢裝置確定該第二Huffman解壓縮記錄為第二原始記錄,且該第二原始記錄不同于該至少一個第一原始記錄中任一個第一原始記錄,則根據(jù)該第二原始記錄和該查詢請求,確定該第二 Huffman解壓縮記錄對應(yīng)的行掩碼。
      [0065]S240,該數(shù)據(jù)查詢裝置根據(jù)該條件列中每個壓縮記錄對應(yīng)的行掩碼以及該目標(biāo)列,確定該查詢請求對應(yīng)的查詢結(jié)果。
      [0066]具體地,該數(shù)據(jù)查詢裝置可以根據(jù)該條件列中每個解壓縮記錄對應(yīng)的行掩碼,確定目標(biāo)列中與該查詢請求對應(yīng)的查詢結(jié)果。
      [0067]作為一個可選實施例,該數(shù)據(jù)查詢裝置根據(jù)每個Huffman解壓縮記錄對應(yīng)的行掩碼,確定目標(biāo)列中與該查詢請求對應(yīng)的查詢結(jié)果。
      [0068]本發(fā)明實施例的數(shù)據(jù)查詢的方法,通過數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的;根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄對應(yīng)的行掩碼;若確定該條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且該至少一個原始記錄與該至少一個連續(xù)的第一壓縮記錄對應(yīng)的原始記錄--對應(yīng)相同,確定該第二壓縮記錄對應(yīng)的行掩碼包括該連續(xù)的至少一個第一壓縮記錄對應(yīng)的行掩碼;根據(jù)該條件列中每個壓縮記錄對應(yīng)的行掩碼以及該目標(biāo)列,確定該查詢請求對應(yīng)的查詢結(jié)果,能夠提高數(shù)據(jù)查詢的速度。
      [0069]可選地,該數(shù)據(jù)查詢裝置可以為FPGA或者CPU。
      [0070]作為一個可選實施例,若該數(shù)據(jù)查詢裝置為FPGA,則該FPGA可以接收CPU發(fā)送的該條件列以及該目標(biāo)列。
      [0071]可選地,該查詢條件可以包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列;在該FPGA接收該CPU發(fā)送的該條件列以及該目標(biāo)列之前,該FPGA可以接收CPU發(fā)送的該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系。
      [0072]可選地,該條件列可以包括一列數(shù)據(jù)或多列數(shù)據(jù),該目標(biāo)列可以包括一列或多列數(shù)據(jù)。
      [0073]可選地,該FPGA可以接收該CPU按照與該邏輯關(guān)系對應(yīng)的操作順序發(fā)送的該第一條件列和該第二條件列,該FPGA還可以接收該CPU發(fā)送的該第一條件列、該第二條件列以及該第一條件列與該第二條件列之間的邏輯關(guān)系,以便于該FPGA按照與該邏輯關(guān)系對應(yīng)的操作順序?qū)υ摰谝粭l件列和該第二條件列進(jìn)行操作,本發(fā)明實施例對此不作限定。
      [0074]在本發(fā)明實施例的數(shù)據(jù)查詢的方法中,該FPGA按照與該邏輯關(guān)系對應(yīng)的操作順序接收該第一條件列和該第二條件列,加快了與該查詢條件對應(yīng)的行掩碼產(chǎn)生的速度,減少了確定行掩碼過程的中間數(shù)據(jù)以及緩存需求,從而提高了數(shù)據(jù)查詢的速度。
      [0075]作為另一個可選實施例,若該數(shù)據(jù)查詢裝置為CPU,則該CPU可以接收客戶端發(fā)送的查詢請求,該查詢請求可以包括查詢條件和查詢目標(biāo),該CPU可以從數(shù)據(jù)存儲器中讀取該查詢請求需要的壓縮數(shù)據(jù)塊,并根據(jù)該壓縮數(shù)據(jù)塊和該查詢請求確定與該查詢條件對應(yīng)的條件列以及與該查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊攜帶列索引信息。
      [0076]可選地,該數(shù)據(jù)查詢裝置可以先解壓縮條件列,再解壓縮目標(biāo)列,使得該數(shù)據(jù)查詢裝置可以先得到與查詢條件對應(yīng)的行掩碼再得到目標(biāo)列的解壓縮結(jié)果。
      [0077]在本發(fā)明實施例的數(shù)據(jù)查詢的方法中,由于條件列中每個壓縮記錄對應(yīng)的行掩碼僅占一個比特位,占用的緩存遠(yuǎn)少于目標(biāo)列的解壓縮結(jié)果,因此可以減少緩存需求,提高了數(shù)據(jù)查詢裝置的查詢性能。
      [0078]圖3是本發(fā)明實施例的數(shù)據(jù)查詢的方法300的示意性流程圖。如圖3所示,該方法300具體可以由數(shù)據(jù)查詢裝置執(zhí)行。
      [0079]S310,CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的。
      [0080]具體地,該CPU可以接收客戶端發(fā)送的查詢請求,該查詢請求包括查詢條件和查詢目標(biāo),該CPU可以根據(jù)該查詢請求,在數(shù)據(jù)存儲器中確定于該查詢請求對應(yīng)的壓縮數(shù)據(jù)塊,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的,該CPU可以從該壓縮數(shù)據(jù)塊中確定與該查詢條件對應(yīng)的條件里,以及與該查詢目標(biāo)對應(yīng)的目標(biāo)列。
      [0081]可選地,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的,其中,該第一壓縮可以為LZ77壓縮,該第二壓縮可以為霍夫曼Huffman壓縮。
      [0082]S320,CPU向FPGA發(fā)送該條件列和該目標(biāo)列。
      [0083]可選地,該查詢條件包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列;該CPU可以向該FPGA發(fā)送該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系;該CPU按照與該邏輯關(guān)系對應(yīng)的操作順序向該FPGA發(fā)送該第一條件列和該第二條件列。
      [0084]可選地,該CPU可以在向該FPGA發(fā)送該條件列之后,再發(fā)送該目標(biāo)列。
      [0085]本發(fā)明實施例的數(shù)據(jù)查詢的方法,通過CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的,能夠提高數(shù)據(jù)查詢的速度。
      [0086]圖4是本發(fā)明實施例的數(shù)據(jù)查詢的方法400的示意性流程圖。如圖4所示,該方法400應(yīng)用于如圖1所示的數(shù)據(jù)查詢系統(tǒng)。
      [0087]S401,CPU接收客戶端的查詢請求,該查詢請求包括查詢條件和查詢目標(biāo)。
      [0088]S402,該CPU從數(shù)據(jù)存儲器中獲取該查詢請求需要的壓縮數(shù)據(jù)塊,該壓縮數(shù)據(jù)塊攜帶列索引信息,且該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的。
      [0089]可選地,該壓縮數(shù)據(jù)塊可以是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的,并且,更具體地,該第一壓縮可以為LZ77壓縮,該第二壓縮可以SHuffmanS縮。
      [0090]S403,該CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列。
      [0091 ] S404,該CPU向FPGA發(fā)送該條件列和該目標(biāo)列。
      [0092]可選地,該CPU可以在向該FPGA發(fā)送條件列之后,再發(fā)送目標(biāo)列。
      [0093]可選地,該查詢條件可以包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列,該CPU可以按照與該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系所對應(yīng)的操作順序發(fā)送該第一條件列和該第二條件列。
      [0094]S405,該FPGA對該條件列進(jìn)行解壓縮處理。
      [0095]S406,該FPGA確定該查詢條件對應(yīng)的行掩碼。
      [0096]具體地,該FPGA可以對該條件列進(jìn)行Huf fman解壓縮處理,得到該條件列的Huffman解壓縮結(jié)果,并根據(jù)該條件列的Huffman解壓縮結(jié)果和該查詢條件,確定與該查詢條件對應(yīng)的行掩碼。
      [0097]S407,該FPGA對該目標(biāo)列進(jìn)行解壓縮處理。
      [0098]可選地,該FPGA可以對該目標(biāo)列先進(jìn)行Huf fman解壓縮,再進(jìn)行LZ77解壓縮,得到該目標(biāo)列的解壓縮結(jié)果。
      [0099]S408,該FPGA根據(jù)該行掩碼和該目標(biāo)列確定查詢結(jié)果。
      [0100]S409,該FPGA通過該CPU向該客戶端返回該查詢結(jié)果。
      [0101]上面結(jié)合了圖2至圖4對本發(fā)明實施例的數(shù)據(jù)查詢的方法進(jìn)行了描述,下面將結(jié)合圖5和圖6描述本發(fā)明實施例的數(shù)據(jù)查詢的裝置,應(yīng)注意,這些例子僅僅是為了幫助本領(lǐng)域技術(shù)人員理解和實現(xiàn)本發(fā)明的實施例,而非限制本發(fā)明實施例的范圍。本領(lǐng)域技術(shù)人員可以根據(jù)這里給出的例子進(jìn)行等價變換或修改,這樣的變換或修改仍應(yīng)落入本發(fā)明實施例的范圍內(nèi)。
      [0102]圖5是本發(fā)明實施例的數(shù)據(jù)查詢的裝置500的示意性框圖。
      [0103]獲取單元510,用于數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的.
      [0104]確定單元520,用于該數(shù)據(jù)查詢裝置根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼。
      [0105]該確定單元520還用于若該數(shù)據(jù)查詢裝置確定該條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且該至少一個原始記錄與該至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄--對應(yīng)相同,確定該第二壓縮記錄對應(yīng)的行掩碼包括該連續(xù)的至少一個第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼;該數(shù)據(jù)查詢裝置根據(jù)該條件列中每個壓縮記錄對應(yīng)的行掩碼以及該目標(biāo)列,確定該查詢請求對應(yīng)的查詢結(jié)果。
      [0106]可選地,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的;該獲取單元還用于在該數(shù)據(jù)查詢裝置根據(jù)該查詢條件,確定該條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼之前,對該條件列中的每個壓縮記錄進(jìn)行與該第二壓縮處理相對應(yīng)的解壓縮處理,得到第一解壓縮數(shù)據(jù)塊,其中,該第一解壓縮數(shù)據(jù)塊包括該至少一個連續(xù)的第一壓縮記錄對應(yīng)的至少一個第一解壓縮記錄和該第二壓縮記錄對應(yīng)的第二解壓縮記錄;該確定單元還用于確定該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的行掩碼。
      [0107]可選地,該確定單元520具體用于:若該第二解壓縮記錄具體為距離-長度對,并且該距離-長度對的值指示該第二解壓縮記錄對應(yīng)于該至少一個原始記錄,并且該至少一個原始記錄與該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定該第二解壓縮記錄對應(yīng)的行掩碼包括該至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的行掩碼,其中,該距離-長度對中的距離表示該第二解壓縮記錄對應(yīng)的該至少一個原始記錄與該至少一個第一解壓縮記錄對應(yīng)的至少一個原始記錄之間的地址偏移量,該距離-長度對中的長度表示該至少一個第一解壓縮記錄的長度。
      [0108]可選地,該確定單元520還用于:若該第二解壓縮記錄為原始記錄,則根據(jù)該第二解壓縮記錄對應(yīng)的原始記錄和該查詢條件,確定該第二解壓縮記錄對應(yīng)的行掩碼。
      [0109]可選地,該數(shù)據(jù)查詢裝置為FPGA,該獲取單元具體用于:FPGA接收中央處理器CPU發(fā)送的該條件列以及該目標(biāo)列。
      [0110]可選地,該查詢條件包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列,該裝置還包括接收單元,該接收單元用于在該FPGA接收該CPU發(fā)送的該條件列以及該目標(biāo)列之前,接收CPU發(fā)送的該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系;該獲取單元具體用于接收該CPU按照與該邏輯關(guān)系對應(yīng)的操作順序發(fā)送的該第一條件列和該第二條件列。
      [0111]可選地,該數(shù)據(jù)查詢裝置為CPU,該獲取單元具體用于:該CPU獲取該壓縮數(shù)據(jù)塊以及該查詢請求;該CPU根據(jù)該壓縮數(shù)據(jù)塊和該查詢請求,確定該條件列和該目標(biāo)列。
      [0112]可選地,該第一壓縮為LZ77壓縮,該第二壓縮為霍夫曼Huffman壓縮。
      [0113]圖6是本發(fā)明實施例的數(shù)據(jù)查詢的裝置600的示意性框圖。
      [0114]獲取單元610,用于中央處理器CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與該查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,該壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的.
      [0115]發(fā)送單元620,用于CPU向現(xiàn)場可編程門陣列FPGA發(fā)送該條件列和該目標(biāo)列。
      [0116]可選地,該查詢條件包括第一子查詢條件和第二子查詢條件,該條件列包括與該第一子查詢條件對應(yīng)的第一條件列和與該第二子查詢條件對應(yīng)的第二條件列;該發(fā)送單元620具體用于:該CPU向該FPGA發(fā)送該第一子查詢條件與該第二子查詢條件之間的邏輯關(guān)系;該CPU按照與該邏輯關(guān)系對應(yīng)的操作順序向該FPGA發(fā)送該第一條件列和該第二條件列。
      [0117]可選地,該發(fā)送單元具體用于:該CPU在向該FPGA發(fā)送該條件列之后,再發(fā)送該目標(biāo)列。
      [0118]本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例中描述的各方法步驟和單元,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各實施例的步驟及組成。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。本領(lǐng)域普通技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
      [0119]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
      [0120]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機械的或其它的形式連接。
      [0121]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本發(fā)明實施例方案的目的。
      [0122]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
      [0123]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分,或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,簡稱為“ROM” )、隨機存取存儲器(Random Access Memory,簡稱為“RAM” )、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
      [0124]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到各種等效的修改或替換,這些修改或替換都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
      【主權(quán)項】
      1.一種數(shù)據(jù)查詢的方法,其特征在于,包括: 數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與所述查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,所述壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的; 所述數(shù)據(jù)查詢裝置根據(jù)所述查詢條件,確定所述條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼; 若所述數(shù)據(jù)查詢裝置確定所述條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且所述至少一個原始記錄與所述至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄--對應(yīng)相同,確定所述第二壓縮記錄對應(yīng)的行掩碼包括所述連續(xù)的至少一個第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼; 所述數(shù)據(jù)查詢裝置根據(jù)所述條件列中每個壓縮記錄對應(yīng)的行掩碼以及所述目標(biāo)列,確定所述查詢請求對應(yīng)的查詢結(jié)果。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的; 在所述數(shù)據(jù)查詢裝置根據(jù)所述查詢條件,確定所述條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼之前,所述方法還包括: 所述數(shù)據(jù)查詢裝置對所述條件列中的每個壓縮記錄進(jìn)行與所述第二壓縮處理相對應(yīng)的解壓縮處理,得到第一解壓縮數(shù)據(jù)塊,其中,所述第一解壓縮數(shù)據(jù)塊包括所述至少一個連續(xù)的第一壓縮記錄對應(yīng)的至少一個第一解壓縮記錄和所述第二壓縮記錄對應(yīng)的第二解壓縮記錄; 所述數(shù)據(jù)查詢裝置根據(jù)所述查詢條件,確定所述條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼,包括: 所述數(shù)據(jù)查詢裝置根據(jù)所述查詢條件和所述至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄,確定所述每個第一解壓縮記錄對應(yīng)的行掩碼。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述若所述數(shù)據(jù)查詢裝置確定所述條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且所述至少一個原始記錄與所述至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定所述第二壓縮記錄對應(yīng)的行掩碼包括所述至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼,包括: 若所述第二解壓縮記錄具體為距離-長度對,并且所述距離-長度對的值指示所述第二解壓縮記錄對應(yīng)于所述至少一個原始記錄,并且所述至少一個原始記錄與所述至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定所述第二解壓縮記錄對應(yīng)的行掩碼包括所述至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的行掩碼,其中,所述距離-長度對中的距離表示所述第二解壓縮記錄對應(yīng)的所述至少一個原始記錄與所述至少一個第一解壓縮記錄對應(yīng)的至少一個原始記錄之間的地址偏移量,所述距離-長度對中的長度表示所述至少一個第一解壓縮記錄的長度。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 若所述第二解壓縮記錄為原始記錄,則根據(jù)所述第二解壓縮記錄對應(yīng)的原始記錄和所述查詢條件,確定所述第二解壓縮記錄對應(yīng)的行掩碼。5.根據(jù)權(quán)利要求2至4中任一項所述的方法,其特征在于,所述數(shù)據(jù)查詢裝置為現(xiàn)場可編程門陣列FPGA; 所述數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與所述查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,包括: FPGA接收中央處理器CRJ發(fā)送的所述條件列以及所述目標(biāo)列。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述查詢條件包括第一子查詢條件和第二子查詢條件,所述條件列包括與所述第一子查詢條件對應(yīng)的第一條件列和與所述第二子查詢條件對應(yīng)的第二條件列; 在所述FPGA接收所述CRJ發(fā)送的所述條件列以及所述目標(biāo)列之前,所述方法還包括:接收CPU發(fā)送的指示信息,所述指示信息用于指示所述第一子查詢條件與所述第二子查詢條件之間的邏輯關(guān)系; 所述FPGA接收所述CRJ發(fā)送的所述條件列以及所述目標(biāo)列,包括接收所述CHJ按照與所述邏輯關(guān)系對應(yīng)的操作順序發(fā)送的所述第一條件列和所述第二條件列。7.根據(jù)權(quán)利要求2至4中任一項所述的方法,其特征在于,所述數(shù)據(jù)查詢裝置為CRJ; 所述數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與所述查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,包括: 所述CHJ獲取所述壓縮數(shù)據(jù)塊以及所述查詢請求; 所述CHJ根據(jù)所述壓縮數(shù)據(jù)塊和所述查詢請求,確定所述條件列和所述目標(biāo)列。8.根據(jù)權(quán)利要求2至7中任一項所述的方法,其特征在于,所述第一壓縮為LZ77壓縮,所述第二壓縮為霍夫曼Huffman壓縮。9.一種數(shù)據(jù)查詢的方法,其特征在于,包括: 中央處理器CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與所述查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,所述壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的; CPU向現(xiàn)場可編程門陣列FPGA發(fā)送所述條件列和所述目標(biāo)列。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述查詢條件包括第一子查詢條件和第二子查詢條件,所述條件列包括與所述第一子查詢條件對應(yīng)的第一條件列和與所述第二子查詢條件對應(yīng)的第二條件列; 所述CRJ向現(xiàn)場可編程門陣列FPGA發(fā)送所述條件列和所述目標(biāo)列,包括: 所述CHJ向所述FPGA發(fā)送指示信息,所述指示信息用于指示所述第一子查詢條件與所述第二子查詢條件之間的邏輯關(guān)系; 所述CPU按照與所述邏輯關(guān)系對應(yīng)的操作順序向所述FPGA發(fā)送所述第一條件列和所述第二條件列。11.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述CPU向現(xiàn)場可編程門陣列FPGA發(fā)送所述條件列和所述目標(biāo)列,包括: 所述CRJ在向所述FPGA發(fā)送所述條件列之后,再發(fā)送所述目標(biāo)列。12.一種數(shù)據(jù)查詢的裝置,其特征在于,包括: 獲取單元,用于數(shù)據(jù)查詢裝置從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與所述查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,所述壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的; 確定單元,用于所述數(shù)據(jù)查詢裝置根據(jù)所述查詢條件,確定所述條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼; 所述確定單元還用于: 若所述數(shù)據(jù)查詢裝置確定所述條件列中的第二壓縮記錄對應(yīng)于至少一個原始記錄,并且所述至少一個原始記錄與所述至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的原始記錄--對應(yīng)相同,確定所述第二壓縮記錄對應(yīng)的行掩碼包括所述連續(xù)的至少一個第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼; 所述數(shù)據(jù)查詢裝置根據(jù)所述條件列中每個壓縮記錄對應(yīng)的行掩碼以及所述目標(biāo)列,確定所述查詢請求對應(yīng)的查詢結(jié)果。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊依次經(jīng)過第一壓縮處理和第二壓縮處理得到的; 所述獲取單元還用于在所述數(shù)據(jù)查詢裝置根據(jù)所述查詢條件,確定所述條件列中的至少一個連續(xù)的第一壓縮記錄中每個第一壓縮記錄對應(yīng)的行掩碼之前,對所述條件列中的每個壓縮記錄進(jìn)行與所述第二壓縮處理相對應(yīng)的解壓縮處理,得到第一解壓縮數(shù)據(jù)塊,其中,所述第一解壓縮數(shù)據(jù)塊包括所述至少一個連續(xù)的第一壓縮記錄對應(yīng)的至少一個第一解壓縮記錄和所述第二壓縮記錄對應(yīng)的第二解壓縮記錄; 所述確定單元還用于根據(jù)所述查詢條件和所述至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄,確定所述每個第一解壓縮記錄對應(yīng)的行掩碼。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述確定單元具體用于: 若所述第二解壓縮記錄具體為距離-長度對,并且所述距離-長度對的值指示所述第二解壓縮記錄對應(yīng)于所述至少一個原始記錄,并且所述至少一個原始記錄與所述至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的原始記錄一一對應(yīng)相同,確定所述第二解壓縮記錄對應(yīng)的行掩碼包括所述至少一個第一解壓縮記錄中每個第一解壓縮記錄對應(yīng)的行掩碼,其中,所述距離-長度對中的距離表示所述第二解壓縮記錄對應(yīng)的所述至少一個原始記錄與所述至少一個第一解壓縮記錄對應(yīng)的至少一個原始記錄之間的地址偏移量,所述距離-長度對中的長度表示所述至少一個第一解壓縮記錄的長度。15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述確定單元還用于: 若所述第二解壓縮記錄為原始記錄,則根據(jù)所述第二解壓縮記錄對應(yīng)的原始記錄和所述查詢條件,確定所述第二解壓縮記錄對應(yīng)的行掩碼。16.根據(jù)權(quán)利要求13至15中任一項所述的裝置,其特征在于,所述數(shù)據(jù)查詢裝置為現(xiàn)場可編程門陣列FPGA; 所述獲取單元具體用于FPGA接收中央處理器CRJ發(fā)送的所述條件列以及所述目標(biāo)列。17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述查詢條件包括第一子查詢條件和第二子查詢條件,所述條件列包括與所述第一子查詢條件對應(yīng)的第一條件列和與所述第二子查詢條件對應(yīng)的第二條件列,所述裝置還包括接收單元, 所述接收單元用于在所述FPGA接收所述CPU發(fā)送的所述條件列以及所述目標(biāo)列之前,接收CPU發(fā)送的指示信息,所述指示信息用于指示所述第一子查詢條件與所述第二子查詢條件之間的邏輯關(guān)系; 所述獲取單元具體用于接收所述CHJ按照與所述邏輯關(guān)系對應(yīng)的操作順序發(fā)送的所述第一條件列和所述第二條件列。18.根據(jù)權(quán)利要求13至15中任一項所述的裝置,其特征在于,所述數(shù)據(jù)查詢裝置為CPU; 所述獲取單元具體用于: 所述CHJ獲取所述壓縮數(shù)據(jù)塊以及所述查詢請求; 所述CHJ根據(jù)所述壓縮數(shù)據(jù)塊和所述查詢請求,確定所述條件列和所述目標(biāo)列。19.根據(jù)權(quán)利要求13至18中任一項所述的裝置,其特征在于,所述第一壓縮為LZ77壓縮,所述第二壓縮為霍夫曼Huffman壓縮。20.一種數(shù)據(jù)查詢的裝置,其特征在于,包括: 獲取單元,用于中央處理器CPU從壓縮數(shù)據(jù)塊中獲取與查詢請求中的查詢條件對應(yīng)的條件列以及與所述查詢請求中的查詢目標(biāo)對應(yīng)的目標(biāo)列,其中,所述壓縮數(shù)據(jù)塊是通過對原始數(shù)據(jù)塊以列寬為單位進(jìn)行列壓縮處理得到的; 發(fā)送單元,用于CRJ向現(xiàn)場可編程門陣列FPGA發(fā)送所述條件列和所述目標(biāo)列。21.根據(jù)權(quán)利要求20所述的裝置,其特征在于,所述查詢條件包括第一子查詢條件和第二子查詢條件,所述條件列包括與所述第一子查詢條件對應(yīng)的第一條件列和與所述第二子查詢條件對應(yīng)的第二條件列; 所述發(fā)送單元具體用于: 所述CHJ向所述FPGA發(fā)送指示信息,所述指示信息用于指示所述第一子查詢條件與所述第二子查詢條件之間的邏輯關(guān)系; 所述CPU按照與所述邏輯關(guān)系對應(yīng)的操作順序向所述FPGA發(fā)送所述第一條件列和所述第二條件列。22.根據(jù)權(quán)利要求20或21所述的裝置,其特征在于,所述發(fā)送單元具體用于: 所述CRJ在向所述FPGA發(fā)送所述條件列之后,再發(fā)送所述目標(biāo)列。
      【文檔編號】G06F17/30GK105975498SQ201610269153
      【公開日】2016年9月28日
      【申請日】2016年4月27日
      【發(fā)明人】李於彬, 汪玉, 田聃
      【申請人】華為技術(shù)有限公司, 清華大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1