[發明專利]一種消除大數據規范關系連接冗余的優化方法有效
| 申請號: | 201710638243.1 | 申請日: | 2017-07-31 |
| 公開(公告)號: | CN107506394B | 公開(公告)日: | 2020-05-29 |
| 發明(設計)人: | 劉黎志 | 申請(專利權)人: | 武漢工程大學 |
| 主分類號: | G06F16/2453 | 分類號: | G06F16/2453;G06F16/22;G06F16/2458;G06F16/28 |
| 代理公司: | 寧波市鄞州甬致專利代理事務所(普通合伙) 33228 | 代理人: | 李迎春 |
| 地址: | 430205 湖北省武*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 消除 數據 規范 關系 連接 冗余 優化 方法 | ||
1.一種消除大數據規范關系連接冗余的優化方法,其特征在于,包括以下步驟:
S1,自定義組合鍵的類型為{字符類型;數值類型;};設置{firstKey;secondKey;}為一組合鍵;設置M為一方關系,S為多方關系,所述的firstKey存儲一方關系M的mkey及各個matt組成的字符串,所述的mkey為firstKey中的第一個子字符串,為一方關系M的主鍵,所述的matt為一方關系M的屬性值,matt的取值范圍為{matt1,matt2,...,mattn},n為正整數,表示屬性值的個數;所述的secondKey存儲多方關系S的SVALUE值,所述的SVALUE為多方關系S中需要排序的數值類型值;
將一方關系M的格式存儲為M(mkey,matt1,matt2,...,mattn),多方關系S的格式存儲為S(SKEY,mkey,SATT,SVALUE);其中mkey為一方關系M的主鍵的同時也是S的外鍵;將(mkey[m],matt1[m],matt2[m],...,matt n[m])表示為一方關系M的一個元組,mkey[m]為Hbase表的行鍵,m∈[1,n],{matt1[m],matt2[m],...,mattn[m]}是與mkey[m]對應的屬性值,SKEY為多方關系S的主鍵,SATT為多方關系S的屬性值,SATT的取值范圍為{satt1,satt2,...,sattn};SVALUE的取值范圍為{SVALUE1,SVALUE2,...,SVALUEn},所述的SVALUE1,SVALUE2,...,SVALUEn為按序號1至n從小到大依次排序的數值類型值;
S2,實現Map端的連接,首先將一方關系M的存儲文件M.dat復制到執行Map任務的各個節點的內存中,M.dat文件的存儲格式在Map端的節點內存中以HashMap結構保存;其次掃描多方關系S中的每一條記錄,同時在HashMap中查找是否有相同的mkey的記錄,如果有,則進行連接后輸出,輸出結果的格式為{組合鍵},{屬性值},該組合鍵存儲了一方關系M的主鍵和M的所有屬性值及與其相對應的多方關系S的SVALUE值,該{屬性值}存儲了多方關系S的屬性值和SVALUE值;
S3,重新定義分區函數、排序依據及分組函數;
首先,定義分區函數,取mkey的哈希值與最大的整數按位求與后,得到一個整數結果,將該整數結果與集群中Map結點的個數取余數,該余數的值為Reduce,就是mkey對應的分區;
其次,定義排序依據,在Map和Reduce階段對處于同一個分區的連接結果排序時,首先按firstKey中的mkey進行主鍵排序,主鍵排序以mkey的字符串比較結果決定其大小,再按secondKey中的SVALUE值進行二次排序,SVALUE值比較以參與排序的兩個svalue值的差值小于零、等于零、大于零來決定SVALUE值比較的大小并進行依次排序;
最后,定義分組函數,根據組合鍵中的firstKey的mkey值,按字符串比較規則,相等的mkey被分在同一個組,在Reduce階段將具有相同組合鍵的連接結果分在同一組,形成{組合鍵},List{屬性值};
S4,將S3中Reduce階段的連接結果寫入HBase表中;首先對組合鍵進行分解,取出firstKey中的mkey作為HBase表的行鍵;然后將firstKey中的其它屬性值依次以M:MATT[m],m∈[1,n]列存儲,MATT[m]為一方關系M中的MATT的屬性名;將已經按SVALUE值排序好的集合List{屬性值}以S:satt[k]列存儲為對應的SVALUE值,satt[k]為多方關系S中的SATT在連續結果中的值,k∈[1,n],n為正整數,將集合List{屬性值}中的每一個屬性值,以satt[k]+“\t”+SVALUE值的字符串形式追加到字符串變量seq,字符串變量seq用于存儲排序后的連接結果;最后增加M:seq列,存儲seq字符串變量值,保存連接結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢工程大學,未經武漢工程大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710638243.1/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





