1 回答

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊
首先需要把關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)表的數(shù)據(jù)增加由 “縱向延伸”,轉(zhuǎn)變?yōu)镠Base數(shù)據(jù)表的“橫向延伸”
一、Hbase的存儲結(jié)構(gòu)
a) HBase以表(HTable)的形式存儲數(shù)據(jù)
b) HTable包括很多行,每行通過RowKey唯一標(biāo)記,行按照RowKey的字典序排列,表在行的方向上分割為多個HRegion
c) 每行包括一個RowKey和多個Column Family,數(shù)據(jù)按照Column Family進(jìn)行物理切割,即不同Column Family的數(shù)據(jù)放在不同的Store中,一個Column Family放在一個Strore中
d) HRegion由多個Store組成。一個Store由物理上存在的一個MemStrore(內(nèi)存中)和多個StoreFile(HFile)中
二、設(shè)計原則:
(1)rowkey
a) rowkey是hbase的key-value存儲中的key,通常使用用戶要查詢的字段作為rowkey ,查詢結(jié)果作為value ,HBase中RowKey是按照字典序排列的
(2)Column Family的設(shè)計需遵循:
a) 不同Column Family的數(shù)據(jù),在物理上是分開的,盡量避免一次請求需要拿到的Column分布在不同的Column Family中;
b) CF的數(shù)量盡量要少,原因是過多的columnfamily之間會互相影響
(3) column
對于column需要擴(kuò)展的應(yīng)用,column可以按普通的方式設(shè)計,但是對于列相對固定的應(yīng)用,最好采用將一行記錄封裝到一個column中的方式,這樣能夠節(jié)省存儲空間。封裝的方式推薦protocolbuffer。
- 1 回答
- 0 關(guān)注
- 1042 瀏覽
添加回答
舉報