本發(fā)明涉及數(shù)據(jù)處理技術(shù),特別涉及一種數(shù)據(jù)表關(guān)聯(lián)方法和裝置。
背景技術(shù):
:在數(shù)據(jù)倉庫進行數(shù)據(jù)清洗時,其中一種常用的清洗方式是數(shù)據(jù)表和數(shù)據(jù)表之間的關(guān)聯(lián),這種數(shù)據(jù)倉庫中的數(shù)據(jù)表之間的關(guān)聯(lián)可以稱為join操作。參與join的數(shù)據(jù)表中通常具有相同的關(guān)聯(lián)鍵(數(shù)據(jù)表之間關(guān)聯(lián)時使用的連接字段),如果將關(guān)聯(lián)鍵稱為key,例如,其中一個數(shù)據(jù)表中存儲該key與信息A的對應(yīng)關(guān)系,另一個數(shù)據(jù)表中存儲該Key與信息B的對應(yīng)關(guān)系,在兩者join時,可以根據(jù)關(guān)聯(lián)鍵key,將對應(yīng)相同key的信息A和信息B組合在一張新數(shù)據(jù)表中,該新數(shù)據(jù)表可以包含該key與對應(yīng)的信息A、信息B。在join的過程中經(jīng)常出現(xiàn)的一種情況是數(shù)據(jù)傾斜,數(shù)據(jù)傾斜即:參與join的數(shù)據(jù)表中,其中一個數(shù)據(jù)表包含大量的相同key值的數(shù)據(jù)記錄,例如,某個用戶登陸信息數(shù)據(jù)表中,記載有用戶ID“123”這個用戶分別在不同時間進行登陸的百萬或千萬條數(shù)據(jù)記錄(例如,其中一條記錄是“用戶ID123——登陸時間2016.3.21”)。那么在數(shù)據(jù)倉庫使用的分布式計算平臺上處理該數(shù)據(jù)表與其他數(shù)據(jù)表的join操作時,通常計算時間會較長。技術(shù)實現(xiàn)要素:有鑒于此,本發(fā)明提供一種數(shù)據(jù)表關(guān)聯(lián)方法和裝置,以在存在數(shù)據(jù)傾斜的數(shù)據(jù)表之間關(guān)聯(lián)時,提高數(shù)據(jù)表關(guān)聯(lián)的效率。具體地,本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:第一方面,提供一種數(shù)據(jù)表關(guān)聯(lián)方法,該方法應(yīng)用于對第一數(shù)據(jù)表和第二數(shù)據(jù)表進行關(guān)聯(lián);其中,所述第一數(shù)據(jù)表中包括:能夠造成數(shù)據(jù)傾斜的傾斜數(shù)據(jù)以及所述傾斜數(shù)據(jù)之外的非傾斜數(shù)據(jù),所述方法包括:由所述第一數(shù)據(jù)表中提取所述傾斜數(shù)據(jù)放入第一數(shù)據(jù)分表,并將所述非傾斜數(shù)據(jù)放入第二數(shù)據(jù)分表;由所述第二數(shù)據(jù)表中提取匹配關(guān)聯(lián)所述第一數(shù)據(jù)分表的數(shù)據(jù),放入第三數(shù)據(jù)分表;將所述第一數(shù)據(jù)分表和第三數(shù)據(jù)分表進行mapjoin得到第一關(guān)聯(lián)表,將所述第二數(shù)據(jù)分表和所述第二數(shù)據(jù)表進行關(guān)聯(lián),得到第二關(guān)聯(lián)表;將所述第一關(guān)聯(lián)表和第二關(guān)聯(lián)表進行組合,得到關(guān)聯(lián)結(jié)果表,所述關(guān)聯(lián)結(jié)果表為所述第一數(shù)據(jù)表和第二數(shù)據(jù)表關(guān)聯(lián)的結(jié)果。第二方面,提供一種數(shù)據(jù)表關(guān)聯(lián)裝置,所述裝置應(yīng)用于對第一數(shù)據(jù)表和第二數(shù)據(jù)表進行關(guān)聯(lián);其中,所述第一數(shù)據(jù)表中包括:能夠造成數(shù)據(jù)傾斜的傾斜數(shù)據(jù)以及所述傾斜數(shù)據(jù)之外的非傾斜數(shù)據(jù),所述裝置包括:表拆分單元,用于由所述第一數(shù)據(jù)表中提取所述傾斜數(shù)據(jù)放入第一數(shù)據(jù)分表,并將所述非傾斜數(shù)據(jù)放入第二數(shù)據(jù)分表;表提取單元,用于由所述第二數(shù)據(jù)表中提取匹配關(guān)聯(lián)所述第一數(shù)據(jù)分表的數(shù)據(jù),放入第三數(shù)據(jù)分表;表關(guān)聯(lián)單元,用于將所述第一數(shù)據(jù)分表和第三數(shù)據(jù)分表進行mapjoin得到第一關(guān)聯(lián)表,將所述第二數(shù)據(jù)分表和所述第二數(shù)據(jù)表進行關(guān)聯(lián),得到第二關(guān)聯(lián)表;表組合單元,用于將所述第一關(guān)聯(lián)表和第二關(guān)聯(lián)表進行組合,得到關(guān)聯(lián)結(jié)果表,所述關(guān)聯(lián)結(jié)果表為所述第一數(shù)據(jù)表和第二數(shù)據(jù)表關(guān)聯(lián)的結(jié)果。本發(fā)明實施例的數(shù)據(jù)表關(guān)聯(lián)方法和裝置,通過將包含傾斜數(shù)據(jù)的數(shù)據(jù)表進行拆分,將拆分后的傾斜數(shù)據(jù)與一小表進行mapjoin,并將剩余數(shù)據(jù)與另一表join,使得這兩部分的數(shù)據(jù)表關(guān)聯(lián)都不會受到傾斜數(shù)據(jù)的影響,提高了數(shù)據(jù)表關(guān)聯(lián)的效率。附圖說明圖1為本發(fā)明實施例提供的數(shù)據(jù)表關(guān)聯(lián)方法的流程圖;圖2為本發(fā)明實施例提供的數(shù)據(jù)表關(guān)聯(lián)方法的原理示意圖;圖3為本發(fā)明實施例提供的數(shù)據(jù)表關(guān)聯(lián)裝置的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例提供的數(shù)據(jù)表關(guān)聯(lián)裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例提供的數(shù)據(jù)表關(guān)聯(lián)裝置所在的處理設(shè)備的一種硬件結(jié)構(gòu)圖。具體實施方式數(shù)據(jù)倉庫主要是為決策分析提供數(shù)據(jù),所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢,并且為了保證數(shù)據(jù)倉庫提供數(shù)據(jù)的準(zhǔn)確性,進入倉庫的數(shù)據(jù)通常要經(jīng)過數(shù)據(jù)清洗。數(shù)據(jù)表關(guān)聯(lián)是數(shù)據(jù)倉庫進行數(shù)據(jù)清洗時的一種常用方法,例如,在通過map/reduce分布式計算平臺進行數(shù)據(jù)處理時,reduce階段可以根據(jù)兩個或更多的數(shù)據(jù)表中的關(guān)聯(lián)鍵對這些表執(zhí)行join(也稱笛卡爾乘積),比如,數(shù)據(jù)倉庫接收到一個數(shù)據(jù)查詢請求,請求查詢獲取對應(yīng)某個key的信息A和信息B,而信息A和信息B分別位于兩個數(shù)據(jù)表中,那么可以根據(jù)Key對這兩個數(shù)據(jù)表進行關(guān)聯(lián),得到一個包含key及對應(yīng)的信息A和信息B的新數(shù)據(jù)表,返回給查詢者。例如,reduce節(jié)點可以獲取key相同的來自兩個數(shù)據(jù)表的valuelist(表中可以是key與value的對應(yīng)關(guān)系,比如,key是用戶ID,value是該用戶的登陸時間),對于同一個key,對這兩個數(shù)據(jù)表中的數(shù)據(jù)進行join處理。當(dāng)數(shù)據(jù)傾斜時,由于某一個key的條數(shù)比其他key多很多(有時是百倍或者千倍之多),這條key所在的reduce節(jié)點所處理的數(shù)據(jù)量比其他節(jié)點就大很多,從而導(dǎo)致reduce節(jié)點大部分執(zhí)行完畢,但是有一個或者幾個reduce節(jié)點運行很慢,遲遲運行不完,也使得整個數(shù)據(jù)表關(guān)聯(lián)的處理時間延長。本申請實施例的數(shù)據(jù)表關(guān)聯(lián)方法,旨在對存在數(shù)據(jù)傾斜問題的數(shù)據(jù)表進行關(guān)聯(lián)時,提高數(shù)據(jù)表關(guān)聯(lián)的效率,降低數(shù)據(jù)傾斜對關(guān)聯(lián)處理時間的影響。圖1示例了該數(shù)據(jù)表關(guān)聯(lián)方法的流程,該方法可以由分布式計算平臺執(zhí)行。在如下圖1所示的例子中,以對第一數(shù)據(jù)表和第二數(shù)據(jù)表進行關(guān)聯(lián)join為例來說明(但是實際實施中該方法還可以應(yīng)用于其他場景中的數(shù)據(jù)表的關(guān)聯(lián),并不局限于下面的例子),此外,還可以結(jié)合圖2所示的原理示意圖來描述該方法:例如,第一數(shù)據(jù)表可以是用戶登陸信息表,參見如下的表1,示例了第一數(shù)據(jù)表的部分信息,包括了用戶ID及該用戶的登陸時間的對應(yīng)關(guān)系,其中的用戶ID可以稱為關(guān)聯(lián)鍵,數(shù)據(jù)表之間可以依據(jù)該關(guān)聯(lián)鍵進行join。表1第一數(shù)據(jù)表用戶ID登陸時間1232016.3.21··························1232016.3.242342016.3.263452016.3.27其中,在第一數(shù)據(jù)表中,用戶ID“123”的數(shù)據(jù)記錄達到了百萬或千萬條,并假設(shè)本例子中該用戶ID“123”的數(shù)據(jù)屬于“能夠造成數(shù)據(jù)傾斜的傾斜數(shù)據(jù)”,而剩余的其他數(shù)據(jù)比如用戶ID“234”和“345”的數(shù)據(jù)記錄屬于非傾斜數(shù)據(jù),即不會造成數(shù)據(jù)傾斜。與第一數(shù)據(jù)表進行join的第二數(shù)據(jù)表,可以是一個用戶名稱的信息表,例如參見如下的表2所示,包含了用戶ID和用戶名稱。表2第二數(shù)據(jù)表用戶ID用戶名稱123張三234李四345王五本次第一數(shù)據(jù)表和第二數(shù)據(jù)表之間的關(guān)聯(lián),即根據(jù)用戶ID這個關(guān)聯(lián)鍵,由第一數(shù)據(jù)表和第二數(shù)據(jù)表中找到與用戶ID對應(yīng)的登陸時間和用戶名稱,生成一個類似表3所示的關(guān)聯(lián)結(jié)果表,該關(guān)聯(lián)結(jié)果表中包括了用戶ID、以及與該用戶ID對應(yīng)的登陸時間和用戶名稱。表3關(guān)聯(lián)結(jié)果表用戶ID登陸時間用戶名稱1232016.3.21張三····································1232016.3.24張三2342016.3.26李四3452016.3.27王五下面將結(jié)合上述的例子,描述本申請的數(shù)據(jù)表關(guān)聯(lián)方法的過程:在步驟101中,由第一數(shù)據(jù)表中提取傾斜數(shù)據(jù)放入第一數(shù)據(jù)分表,并將非傾斜數(shù)據(jù)放入第二數(shù)據(jù)分表。本步驟中,將第一數(shù)據(jù)表進行了拆分,可以分別稱為第一數(shù)據(jù)分表和第二數(shù)據(jù)分表。其中,第一數(shù)據(jù)分表中可以包括傾斜數(shù)據(jù),例如表1中的用戶ID“123”對應(yīng)的百萬或千萬條的數(shù)據(jù)記錄,第二數(shù)據(jù)分表中可以包括非傾斜數(shù)據(jù),例如表1中的用戶ID“123”之外的數(shù)據(jù)記錄。如下示例一種對第一數(shù)據(jù)表拆分的方式:首先,由第一數(shù)據(jù)表中提取造成數(shù)據(jù)傾斜的至少一個關(guān)聯(lián)鍵,將所述至少一個關(guān)聯(lián)鍵放入關(guān)聯(lián)鍵子表中。例如,可以統(tǒng)計第一數(shù)據(jù)表中的各個關(guān)聯(lián)鍵的數(shù)量,將各個關(guān)聯(lián)鍵按照數(shù)量由多到少的順序排序。作為一示例,用戶ID“123”在第一數(shù)據(jù)表中的重復(fù)次數(shù)即數(shù)量可以為1000000,用戶ID“234”的數(shù)量可以為100000,用戶ID“345”的數(shù)量可以為8000。根據(jù)統(tǒng)計的用戶ID的數(shù)量由多到少排序,則為“123——234——345”的順序。假設(shè)預(yù)先設(shè)定的關(guān)聯(lián)鍵數(shù)量上限為1,即要從上面的排序中選擇排在第一位的關(guān)聯(lián)鍵用戶ID“123”,作為造成數(shù)據(jù)傾斜的關(guān)聯(lián)鍵。又例如,在其他例子中,如果第一數(shù)據(jù)表中包括的不同關(guān)聯(lián)鍵的數(shù)量為十個,統(tǒng)計各個關(guān)聯(lián)鍵的數(shù)量并排序后,將得到排序位數(shù)由第一排序位至第十排序位的一個排列順序;如果預(yù)先設(shè)定的關(guān)聯(lián)鍵數(shù)量上限為5,則表示要從該排序中選擇前五個關(guān)聯(lián)鍵,該前五個關(guān)聯(lián)鍵是能造成數(shù)據(jù)傾斜的關(guān)聯(lián)鍵。本例子的描述中,以選出一個關(guān)聯(lián)鍵為例,如下的表4為關(guān)聯(lián)鍵子表,造成數(shù)據(jù)傾斜的一個關(guān)聯(lián)鍵在該表4中。表4關(guān)聯(lián)鍵子表用戶ID統(tǒng)計數(shù)量1231000000此外,預(yù)先設(shè)定的關(guān)聯(lián)鍵數(shù)量上限的數(shù)值,可以是根據(jù)經(jīng)驗值或測試值確定。比如,可以在數(shù)據(jù)清洗遇到數(shù)據(jù)傾斜造成的處理時間超時,查看該情況下造成超時的關(guān)聯(lián)鍵的重復(fù)次數(shù)是多少,假如是100萬條,那就表明100萬條記錄將可能造成處理延時。那么在根據(jù)關(guān)聯(lián)鍵的排序順序中初始設(shè)定一個關(guān)聯(lián)鍵數(shù)量上限比如為5,選擇前五位的關(guān)聯(lián)鍵,如果發(fā)現(xiàn)排序第五位的關(guān)聯(lián)鍵的統(tǒng)計數(shù)量是8000,則表明該關(guān)聯(lián)鍵數(shù)量上限設(shè)置不適合;如果將關(guān)聯(lián)鍵數(shù)量上限更改2時,發(fā)現(xiàn)排序第二位的關(guān)聯(lián)鍵統(tǒng)計數(shù)量是100萬,則表明該上限數(shù)值設(shè)置合理,能夠?qū)⒃斐蓴?shù)據(jù)傾斜的數(shù)據(jù)記錄選擇出來。當(dāng)然,以上只是示例一種方式,也可以采用其他方式確定關(guān)聯(lián)鍵數(shù)量上限,只要能將傾斜數(shù)據(jù)識別即可。其次,根據(jù)關(guān)聯(lián)鍵子表,將第一數(shù)據(jù)表中匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)放入第一數(shù)據(jù)分表,將不能匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)放入第二數(shù)據(jù)分表。例如,在上述得到關(guān)聯(lián)鍵子表后,可以將該關(guān)聯(lián)鍵子表與第一數(shù)據(jù)表進行關(guān)聯(lián),例如可以進行兩者的mapjoin,mapjoin是join方式的一種,可以將小表數(shù)據(jù)直接讀取到內(nèi)存中與另一表進行關(guān)聯(lián),可以極大提高生成關(guān)聯(lián)結(jié)果的效率。本例子中的關(guān)聯(lián)鍵子表如表4是一個小表,可以采用mapjoin。關(guān)聯(lián)鍵子表與第一數(shù)據(jù)表進行關(guān)聯(lián)時,能夠匹配關(guān)聯(lián)表4的數(shù)據(jù)放入第一數(shù)據(jù)分表,這里的“匹配關(guān)聯(lián)”指的是將第一數(shù)據(jù)表中的關(guān)聯(lián)鍵子表中的key對應(yīng)的數(shù)據(jù)記錄找出來,本例子中,第一數(shù)據(jù)分表包括用戶ID“123”對應(yīng)的數(shù)據(jù)記錄;將不能匹配關(guān)聯(lián)表4的數(shù)據(jù)放入第二數(shù)據(jù)分表,即用戶ID“123”之外的數(shù)據(jù)記錄。表5第一數(shù)據(jù)分表用戶ID登陸時間1232016.3.21··························1232016.3.24表6第二數(shù)據(jù)分表用戶ID登陸時間2342016.3.263452016.3.27上述通過關(guān)聯(lián)鍵子表對第一數(shù)據(jù)表中的數(shù)據(jù)進行拆分的方式可以有多種,例如,一種方式可以是,將關(guān)聯(lián)鍵子表與第一數(shù)據(jù)表進行第一次mapjoin,得到匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù),放入第一數(shù)據(jù)分表,即本次mapjoin得到的是能夠關(guān)聯(lián)上關(guān)聯(lián)鍵子表的數(shù)據(jù);可以將關(guān)聯(lián)鍵子表與第一數(shù)據(jù)表進行第二次mapjoin,得到不能匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)放入第二數(shù)據(jù)分表。又例如,另一種方式可以是,將關(guān)聯(lián)鍵子表與第一數(shù)據(jù)表進行一次mapjoin,通過本次mapjoin分別對匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)和不能匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)進行標(biāo)識,即標(biāo)識上某一數(shù)據(jù)是能夠關(guān)聯(lián)上關(guān)聯(lián)鍵子表的數(shù)據(jù),或者是不能關(guān)聯(lián)上關(guān)聯(lián)鍵子表的數(shù)據(jù);根據(jù)上述標(biāo)識,將匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)放入第一數(shù)據(jù)分表,將不能匹配關(guān)聯(lián)關(guān)聯(lián)鍵子表的數(shù)據(jù)放入第二數(shù)據(jù)分表。以上只是列舉兩種方式,實際實施中不局限于此,只要能夠?qū)崿F(xiàn)表5和表6的數(shù)據(jù)拆分即可。在步驟102中,由第二數(shù)據(jù)表中提取匹配關(guān)聯(lián)第一數(shù)據(jù)分表的數(shù)據(jù),放入第三數(shù)據(jù)分表。例如,可以將表4所示的關(guān)聯(lián)鍵子表與表2所示的第二數(shù)據(jù)表進行mapjoin,得到在第二數(shù)據(jù)表中能夠與關(guān)聯(lián)鍵子表匹配關(guān)聯(lián)的數(shù)據(jù)記錄,將該數(shù)據(jù)記錄放入第三數(shù)據(jù)分表。比如,在上述例子中,表4和表2關(guān)聯(lián)得到表7,例如,表4中的key是用戶ID“123”,那就將表2中的相同key即用戶ID“123”對應(yīng)的數(shù)據(jù)記錄放入表7:表7第三數(shù)據(jù)分表用戶ID用戶名稱123張三在步驟103中,將第一數(shù)據(jù)分表和第三數(shù)據(jù)分表進行mapjoin得到第一關(guān)聯(lián)表,將第二數(shù)據(jù)分表和第二數(shù)據(jù)表進行join,得到第二關(guān)聯(lián)表。本步驟中,第三數(shù)據(jù)分表是小表,可以將該第三數(shù)據(jù)分表與第一數(shù)據(jù)分表進行mapjoin,得到兩者關(guān)聯(lián)結(jié)果的第一關(guān)聯(lián)表如表8:表8第一關(guān)聯(lián)表用戶ID登陸時間用戶名稱1232016.3.21張三·····································1232016.3.24張三第二數(shù)據(jù)分表和第二數(shù)據(jù)表進行join,得到的第二關(guān)聯(lián)表,如下表9:表9第二關(guān)聯(lián)表在步驟104中,將第一關(guān)聯(lián)表和第二關(guān)聯(lián)表進行組合,得到關(guān)聯(lián)結(jié)果表,所述關(guān)聯(lián)結(jié)果表為所述第一數(shù)據(jù)表和第二數(shù)據(jù)表關(guān)聯(lián)的結(jié)果。本步驟中,可以將步驟103中得到的第一關(guān)聯(lián)表和第二關(guān)聯(lián)表進行組合,得到的關(guān)聯(lián)結(jié)果表如上的表3所示。本例子的數(shù)據(jù)表關(guān)聯(lián)方法,通過將含有傾斜數(shù)據(jù)的數(shù)據(jù)表進行拆分,將傾斜數(shù)據(jù)與一個匹配該數(shù)據(jù)的小表進行mapjoin,顯著提升了這部分傾斜數(shù)據(jù)的關(guān)聯(lián)處理效率,而另外的非傾斜數(shù)據(jù)在與數(shù)據(jù)表關(guān)聯(lián)時,由于不再有傾斜數(shù)據(jù)的影響,處理過程也可以很快完成,上述兩部分的處理速度都很快,從而提升了數(shù)據(jù)表關(guān)聯(lián)的效率。為了實現(xiàn)上述方法,本申請實施例還提供了一種數(shù)據(jù)表關(guān)聯(lián)裝置,該裝置應(yīng)用于對第一數(shù)據(jù)表和第二數(shù)據(jù)表進行關(guān)聯(lián);其中,所述第一數(shù)據(jù)表中包括:能夠造成數(shù)據(jù)傾斜的傾斜數(shù)據(jù)以及所述傾斜數(shù)據(jù)之外的非傾斜數(shù)據(jù)。如圖3所示,該裝置可以包括:表拆分單元31、表提取單元32、表關(guān)聯(lián)單元33和表組合單元34。其中,表拆分單元31,用于由所述第一數(shù)據(jù)表中提取所述傾斜數(shù)據(jù)放入第一數(shù)據(jù)分表,并將所述非傾斜數(shù)據(jù)放入第二數(shù)據(jù)分表;表提取單元32,用于由所述第二數(shù)據(jù)表中提取匹配關(guān)聯(lián)所述第一數(shù)據(jù)分表的數(shù)據(jù),放入第三數(shù)據(jù)分表;表關(guān)聯(lián)單元33,用于將第一數(shù)據(jù)分表和第三數(shù)據(jù)分表進行mapjoin得到第一關(guān)聯(lián)表,將所述第二數(shù)據(jù)分表和所述第二數(shù)據(jù)表進行關(guān)聯(lián),得到第二關(guān)聯(lián)表;表組合單元34,用于將所述第一關(guān)聯(lián)表和第二關(guān)聯(lián)表進行組合,得到關(guān)聯(lián)結(jié)果表,所述關(guān)聯(lián)結(jié)果表為所述第一數(shù)據(jù)表和第二數(shù)據(jù)表關(guān)聯(lián)的結(jié)果。如圖4所示,該裝置中的表拆分單元31可以包括:鍵提取子單元311和表生成子單元312。鍵提取子單元311,用于由所述第一數(shù)據(jù)表中提取造成數(shù)據(jù)傾斜的至少一個關(guān)聯(lián)鍵,將所述至少一個關(guān)聯(lián)鍵放入關(guān)聯(lián)鍵子表中;表生成子單元312,用于根據(jù)所述關(guān)聯(lián)鍵子表,將所述第一數(shù)據(jù)表中匹配關(guān)聯(lián)所述關(guān)聯(lián)鍵子表的數(shù)據(jù)放入所述第一數(shù)據(jù)分表,將不能匹配關(guān)聯(lián)所述關(guān)聯(lián)鍵子表的數(shù)據(jù)放入所述第二數(shù)據(jù)分表。在另一例子中,鍵提取子單元311,在用于提取關(guān)聯(lián)鍵時,包括:統(tǒng)計所述第一數(shù)據(jù)表中的各個關(guān)聯(lián)鍵的數(shù)量,將各個關(guān)聯(lián)鍵按照數(shù)量由多到少的順序進行排序;根據(jù)預(yù)先設(shè)定的關(guān)聯(lián)鍵數(shù)量上限,獲取排序位數(shù)在所述關(guān)聯(lián)鍵數(shù)量上限之內(nèi)的至少一個關(guān)聯(lián)鍵,作為所述造成數(shù)據(jù)傾斜的至少一個關(guān)聯(lián)鍵。在另一例子中,表提取單元32,在用于生成第三數(shù)據(jù)分表時,包括:將所述關(guān)聯(lián)鍵子表與所述第二數(shù)據(jù)表進行關(guān)聯(lián),將關(guān)聯(lián)得到的所述第二數(shù)據(jù)表的數(shù)據(jù)放入所述第三數(shù)據(jù)分表。上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。本申請的數(shù)據(jù)表關(guān)聯(lián)裝置的實施例可以應(yīng)用在處理設(shè)備上,該數(shù)據(jù)處理設(shè)備例如可以是數(shù)據(jù)倉庫中進行數(shù)據(jù)處理所使用的計算設(shè)備。數(shù)據(jù)表關(guān)聯(lián)裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。如圖5所示,為本申請數(shù)據(jù)表關(guān)聯(lián)裝置所在的處理設(shè)備的一種硬件結(jié)構(gòu)圖,以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,可以通過其所在的處理設(shè)備中的處理器51,將非易失性存儲器53中對應(yīng)的計算機程序指令讀取到內(nèi)存52中運行。該處理設(shè)備除了包括上述的各個組件和網(wǎng)絡(luò)接口之外,通常還可以根據(jù)該處理設(shè)備的實際功能,可以包括其他功能組件,對此不再贅述。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。當(dāng)前第1頁1 2 3