用于數據處理的方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及數據處理技術領域,更具體地,涉及一種通過利用二進制編碼匹配來確定數據分區(qū)以進行數據處理的方法和系統(tǒng)。
【背景技術】
[0002]目前,隨著海量數據應用的擴展,企業(yè)和客戶對數據的使用已經不滿足于傳統(tǒng)的單一服務器或硬盤存儲的數據。在進行海量數據處理和分析的過程中,必須對數據進行分區(qū)存儲以提升處理效率并優(yōu)化資源配置。通過將較大的數據表切分為較小的、單一的數據表或數據信息進行存儲,可以提高數據處理的速度,因為只需要掃描較少的數據而并非掃描全部數據。同時,對數據的維護、構建索引、備份等操作也可以更快的速度運行。
[0003]現(xiàn)有技術中的對數據進行分區(qū)的方法從分區(qū)方向上來看主要有水平分區(qū)和垂直分區(qū)。水平分區(qū)指將數據表分成多個表,其中每個表包含同樣數量的數據列,但是包含較少的數據行。例如,一個包含100萬行的數據表(包含一年的全部數據)可以通過水平分區(qū)被劃分為12個較小的表,其中每個較小的表包含一年中的一個月的數據信息(列相同但是行數較少),那么任何對該年中任何特定月的數據的查詢可以只針對某個較小的表進行,而無需對大數據表進行全數據掃描。相應的,垂直分區(qū)是指較小的表中包含相同數量的數據行但是較少的數據列,也能獲得與水平分區(qū)類似的效果。
[0004]現(xiàn)有的數據分區(qū)從分區(qū)的具體規(guī)則來看,有列表分區(qū)(List Partit1ning)、散列分區(qū)(Hash Partit1ning)、范圍分區(qū)(Range Partit1ning)等。列表分區(qū)是指根據數據值來進行數據分區(qū),例如規(guī)定將東部地區(qū)的數據劃為一個數據分區(qū),將西部地區(qū)的數據劃為一個數據分區(qū)。范圍分區(qū)是指根據數據值的范圍來進行數據分區(qū),例如將1至3月的數據劃分為一個分區(qū),將4-6月的數據劃分為一個分區(qū),以此類推。顯然,由于無法實現(xiàn)確定分布在各個范圍或者枚舉值中的數據量的大小,列表分區(qū)和范圍分區(qū)很容易導致各個數據分區(qū)中的數據量的不均衡。而散列分區(qū)是指通過哈希函數值來確定數據的分區(qū),雖然散列分區(qū)的方式可以使得數據的劃分均衡化,但是很難選擇合適的哈希函數,并且散列分區(qū)會導致難以進行已有數據的遷移。
【發(fā)明內容】
[0005]針對現(xiàn)有技術中存在的上述問題,本發(fā)明的目的之一在于提供一種可以均衡化數據分區(qū)的數據處理方法。本發(fā)明的進一步的目的在于提供一種可以根據數據分布和數據量的變化,便利地動態(tài)調整已有數據分區(qū)以及數據遷移的方法。上述發(fā)明目的之間并非必須同時實現(xiàn),而是只需實現(xiàn)其中一個或多個即可。
[0006]根據本發(fā)明的一個方面,提供了一種用于數據處理的方法,包括:獲取待處理數據的分區(qū)鍵值的二進制編碼;根據所獲取的分區(qū)鍵值的二進制編碼確定相應的數據分區(qū),該相應的數據分區(qū)對應的二進制編碼與所獲取的分區(qū)鍵值的二進制編碼由后至前取相同位數的編碼相同;以及根據所確定的相應的數據分區(qū),處理所述待處理數據。
[0007]根據本發(fā)明的另一個方面,提供了一種用于數據處理的系統(tǒng),包括:一種用于數據處理的系統(tǒng),包括:獲取裝置,被配置為獲取待處理數據的分區(qū)鍵值的二進制編碼;匹配裝置,被配置為根據所獲取的分區(qū)鍵值的二進制編碼確定相應的數據分區(qū),該相應的數據分區(qū)對應的二進制編碼與所獲取的分區(qū)鍵值的二進制編碼由后至前取相同位數的編碼相同;以及處理裝置,被配置為根據所確定的相應的數據分區(qū),處理所述待處理數據。。
[0008]根據本發(fā)明提供的用于數據處理的方法,可以使得數據分區(qū)更加均衡,并且能夠隨著實時數據分布特征的變化,動態(tài)地并且便利地調整已有的數據分區(qū)以及對已有數據進行遷移操作。
【附圖說明】
[0009]通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
[0010]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務器12的框圖;
[0011]圖2示出了根據本發(fā)明一個實施例的用于數據處理的方法的流程圖;
[0012]圖3示出了根據本發(fā)明一實施例的二叉樹的示意圖;
[0013]圖4示出了根據本發(fā)明一個實施例的利用二叉樹進行數據處理的實例的示意圖,
[0014]其中圖4A示出了一個初始化的數據分區(qū)二叉樹;
[0015]圖4B示出了一個數據庫表的結構;
[0016]圖4C示出了一個待分區(qū)的新插入數據記錄;
[0017]圖4D示出了確定該數據記錄應該插入的分區(qū)的二叉樹;
[0018]圖4E示出了基于二叉樹增加新的數據分區(qū);
[0019]圖4F示出了基于二叉樹合并數據分區(qū);
[0020]圖5示出了根據本發(fā)明一個實施例的用于數據處理的系統(tǒng)的框圖。
【具體實施方式】
[0021]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應該理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整地傳達給本領域的技術人員。
[0022]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務器12的框圖。圖1顯示的計算機系統(tǒng)/服務器12僅僅是一個示例,不應對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0023]如圖1所示,計算機系統(tǒng)/服務器12以通用計算設備的形式表現(xiàn)。計算機系統(tǒng)/服務器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0024]總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業(yè)標準體系結構(ISA)總線,微通道體系結構(MAC)總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0025]計算機系統(tǒng)/服務器12典型地包括多種計算機系統(tǒng)可讀介質。這些介質可以是任何能夠被計算機系統(tǒng)/服務器12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
[0026]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質,例如隨機存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統(tǒng)/服務器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(圖1未顯示,通常稱為“硬盤驅動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數據介質接口與總線18相連。存儲器28可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0027]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應用程序、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能