天天看點

HBase資料模型(1)

<a href="http://blog.csdn.net/dream_an/article/details/51276040">hbase資料模型(1)</a>

<a href="http://blog.csdn.net/dream_an/article/details/51276444">hbase資料模型(2)</a>

table

hbase以表(table)的方式組織資料,資料存儲在表中。

row/column

行(row)和列(column)共同組成hbase的表。

column family

列族(column)将一列或者多列組織在一起,hbase的列必須屬于某一個列族。

cell

行和列的交叉點稱為單元格(cell),單元格是版本化的。

單元格的内容是列的值,是不可分割的位元組數組,以二進制形式存儲。

rowkey

行鍵(rowkey)可以将hbase表進行分區,行鍵也是唯一确定一行的辨別。

主營包含4個操作get、put、scan和delete。因為建立htable執行個體需要掃描.meta.表,會增加代價,是以使用者最好隻建立一次htable是咧,而且每個線程建立一個,可以使用htablepool類來複用多個htable執行個體。

從用戶端擷取已存取的資料

get()方法預設一次取回改行全部列的資料,可以限定隻取某個列族對于的列的資料。

可以從伺服器擷取特定的傳回值。

hbase沒有update操作,通過put對資料進行修改

put向表增加新行(新的key)或者更新行(key已經存在)。

對于數千次rpc操作可以顯示打開緩沖區選項,進行一次性寫入。

scan允許多行特定屬性疊代,可以指定starrow參數來定義掃描讀取hbase表的起始行鍵,同時可選stoprow參數來限定到何處停止。

hbase的delete操作可以指定删除某個列族或者某個列,或者指定某個時間戳,删除比這個時間早的資料。

hbase的delete操作并不是真正地從磁盤上删除資料,而是通過建立墓碑(tombstones)标志進行處理。這些墓碑标記的值和小于該時間版本的單元格在大合并(major compact)時被清楚。