<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)時被清楚。