hbase动态更改行键设计_Hadoop HBase概念学习系列之优秀行键设计(十六)
生活随笔
收集整理的這篇文章主要介紹了
hbase动态更改行键设计_Hadoop HBase概念学习系列之优秀行键设计(十六)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
盡量最小化行名和列名的字段大小
在HBase中,值是作為一個單元(Cell)保存在系統的中的,要定位一個單元,需要行,列名和時間戳。通常情況下,如果你的行和列的名字要是太大(甚至比value的大小還要大)的話,你可能會遇到一些有趣的情況。在HBase的存儲文件中,有一個索引用來方便值的隨機訪問,但是訪問一個單元的坐標要是太大的話,會占用很大的內存,這個索引會被用盡。所以要想解決,可以設置一個更大的塊大小,當然也可以使用更小的列名。壓縮也能得到更大指數。大部分時候,小的低效不會影響很大。不幸的是,這里會是個問題。無論是列族,屬性和行鍵都會在數據中重復上億次。所以我們設計habse時候盡量遵循以下幾點:
一. 盡量使列族名小,最好一個字符
二. 雖然詳細屬性名易讀,最好還是用短屬性名 (e.g., "via") 保存到HBase.不建議使用詳細屬性名
三. 讓行鍵短到可讀即可,這樣對獲取數據有用(e.g., Get vs. Scan)。 短鍵對訪問數據無用,并不比長鍵對get/scan更好。設計行鍵需要權衡。
四. long 類型有 8 字節. 8字節內可以保存無符號數字到18,446,744,073,709,551,615. 如果用字符串保存--假設一個字節一個字符--,需要將近3倍的字節數。
總結
以上是生活随笔為你收集整理的hbase动态更改行键设计_Hadoop HBase概念学习系列之优秀行键设计(十六)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 选择排序算法流程图_常用排序算法之选择排
- 下一篇: 创新 - 王屋村的魔方们