你的題目和描述不一致,你的描述是在說ID-Mapping的問題嗎,這和HBase行鍵設(shè)計是兩個領(lǐng)域的問題。先說第一個問題HBase行鍵設(shè)計。
避免熱點的Rowkey設(shè)計
加鹽(隨機(jī)前綴,hash取模等+原始rowkey拼接, 取數(shù)據(jù)結(jié)合協(xié)處理器oprocessor器)
哈希 (rowkey計算md5,sha256等截取前幾位+原始rowkey拼接, 不利于scan,但是get能精確定位)
反轉(zhuǎn) (rowkey反轉(zhuǎn))
例子:
# 查詢某個賣家某段時間內(nèi)的交易記錄
rowkey = sellerId + timestamp + orderId
# 如果某個商家賣了很多商品,產(chǎn)生熱點,可以如下設(shè)計 Rowkey 實現(xiàn)快速搜索
rowkey = salt + sellerId + timestamp 其中,salt 是隨機(jī)數(shù)。可以支持如下場景, 查詢時需要實現(xiàn)一個HBase協(xié)處理器(`coprocessors`)),提供高效查詢
- 全表 Scan
- 按照 sellerId 查詢
- 按照 sellerId + timestamp 查詢
用戶多端設(shè)備打通,也就是ID-Mapping問題,這是一個大工程,要根據(jù)公司的產(chǎn)品和業(yè)務(wù)做不通的設(shè)計。這里說里面一中方式 Spark GraphX通過計算最大連通圖可以做這個事情。
更多關(guān)于大數(shù)據(jù)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。