1. 程式人生 > >rowkey設計原則

rowkey設計原則

rowkey是二進位制碼流,可以是任意字串,最大長度64kb。

一、rowkey長度原則

建議越短越好,因為如果要儲存多行資料的話,單憑rowkey就要佔用很多的儲存空間,這樣會嚴重影響HFile的儲存效率。

二、rowkey雜湊原則

如果rowkey按照時間戳的方式遞增,不要將時間放在二進位制碼的前面,建議將rowkey的高位作為雜湊欄位,由程式自動生成,低位放時間欄位,這樣將提高資料均衡分佈在每個regionserver,以實現負載均衡。

三、rowkey唯一原則

必須在設計上保證其唯一性,rowkey是按照字典順序排序儲存的,因此設計rowkey的時候,要充分利用這個排序的特點,將經常讀取的資料儲存到一塊,將最近可能會被訪問的資料放到一塊。

什麼是熱點

熱點發生在大量的client直接訪問叢集的一個或極少數個節點上。大量訪問使熱點region所在單個機器超出自身承受能力,引起效能下降甚至region不可用,這也會影響同一個regionserver上的其他region。

解決熱點問題的幾種方式:加隨機數、雜湊、反轉、時間戳反轉