2017-06-15 84 views
0

我已經創建了一個phbase表與鳳凰SQL創建表查詢,還指定salt_buckets。如預期的那樣,Salting爲rowkey添加前綴。閱讀hbase表中鹽與phoenix在配置單元hbase serde

我已經創建了一個外部蜂巢表映射到這個HBase的表HBase的SERDE問題是,當我通過rowkey過濾查詢該表:

其中key =「值」

它不」因爲我認爲salt pre-fix也會被拿到鑰匙上。這限制了對密鑰上的數據進行過濾的能力。選項:

「,其中rowkey像‘百分比值’

的作品,但它需要很長的時間,可能不會對整個表掃描

我的問題是如何有效地查詢這個表上排在蜂房鍵值(去掉鹽預修復)?

回答

0

是的,你是正確的,同時提

這是行不通的,因爲我覺得前鹽修復也越來越牽強的關鍵。 '

緩解的一種方法是使用散列而不是隨機前綴。 和前綴與計算出的哈希 的rowkey使用這種技術,你可以計算哈希值要掃描:

MOD(散列(rowkey),n),其中n是區域的數量將rowkey刪除熱點問題

使用隨機前綴會引起您在問題中提到的問題。

選項:。 「哪裏像rowkey‘百分比值’ 的作品,但它需要很長的時間,可能不會對整個表掃描

這正是隨機前綴醃製做的HBase被強制掃描整個表以獲得所需的值,所以如果你可以用你計算的散列值作爲你的rowkey的前綴,它會更好 但是這個哈希技術在範圍掃描中不會被證明是好的

現在你可能會問,爲什麼不能簡單地用我的rowKey替換它的散列並將rowkey存儲爲單獨的列。 它可能無法正常工作,但我建議以這種方式實現它,因爲HBase在列族中已經非常敏感。 但是,我不清楚這個解決方案。

您也可以閱讀this以獲取更詳細的解釋。