1.一種基于Hive數(shù)據(jù)倉庫的快速關(guān)聯(lián)實現(xiàn)方法,其特征在于,包括:
將關(guān)聯(lián)表中需要的數(shù)據(jù)預處理到指定的數(shù)據(jù)緩存區(qū)域;
根據(jù)接口參數(shù)從所述數(shù)據(jù)緩存區(qū)域加載所述需要的數(shù)據(jù)進入內(nèi)存,并存儲;
在所述加載完成之后,根據(jù)用戶傳入的關(guān)聯(lián)關(guān)鍵字查詢對應(yīng)的結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述關(guān)聯(lián)表不大于4GB。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預處理進一步包括以下中的至少一個:
過濾掉無用的數(shù)據(jù);以及
加入特定的加工邏輯。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲包括:使用雙層Hash鍵-值對容器存儲。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述雙層Hash鍵-值對容器中,第一層將關(guān)聯(lián)關(guān)鍵字作為鍵,其對應(yīng)的值是一個鍵-值對容器;第二層以目標字段為鍵,結(jié)果為值。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在根據(jù)用戶傳入的關(guān)聯(lián)關(guān)鍵字查詢對應(yīng)的結(jié)果之前,還包括:
檢查數(shù)據(jù)是否已加載到內(nèi)存;以及
如果數(shù)據(jù)未加載到所述內(nèi)存中,則通知重新加載。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述查詢進一步包括:
如果查詢失敗,則返回空值;以及
如果查詢成功,則得到下一層的鍵-值對容器,并在所述鍵-值對容器中找到用戶需要的字段并返回。
8.一種基于Hive數(shù)據(jù)倉庫的快速關(guān)聯(lián)實現(xiàn)裝置,其特征在于,包括:
數(shù)據(jù)預處理模塊:用于將關(guān)聯(lián)表中需要的數(shù)據(jù)預處理到指定的數(shù)據(jù)緩存區(qū)域;
數(shù)據(jù)加載模塊:用于根據(jù)接口參數(shù)從所述數(shù)據(jù)緩存區(qū)域加載所述需要的數(shù)據(jù)進入內(nèi)存,并存儲;
數(shù)據(jù)匹配模塊:用于在所述加載完成之后,根據(jù)用戶傳入的關(guān)聯(lián)關(guān)鍵字查詢對應(yīng)的結(jié)果。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述關(guān)聯(lián)表不大于4GB。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)預處理模塊進一步用于以下中的至少一個:
過濾掉無用的數(shù)據(jù);以及
加入特定的加工邏輯。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)加載模塊進一步用于使用雙層Hash鍵-值對容器存儲。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,在所述雙層Hash鍵-值對容器中,第一層將關(guān)聯(lián)關(guān)鍵字作為鍵,其對應(yīng)的值是一個鍵-值對容器;第二層以目標字段為鍵,結(jié)果為值。
13.根據(jù)權(quán)利要求8所述的裝置,其特征在于,在根據(jù)用戶傳入的關(guān)聯(lián)關(guān)鍵字查詢對應(yīng)的結(jié)果之前,所述數(shù)據(jù)匹配模塊還用于:
檢查數(shù)據(jù)是否已加載到內(nèi)存;以及
如果數(shù)據(jù)未加載到所述內(nèi)存中,則通知重新加載。
14.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)匹配模塊進一步用于:
如果查詢失敗,則返回空值;以及
如果查詢成功,則得到下一層的鍵-值對容器,并在所述鍵-值對容器中找到用戶需要的字段并返回。