閱讀目錄
本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。
文章是哥(mephisto)寫的,SourceLink
序
上一篇,我們講述了HBase的數據模型相關操作的上部分。
下面我們開始介紹HBase的數據模型相關操作的下部分。
變量
一:定義變量
這樣我們就可以使用t這個變量來代替table1了。
t=get_table 'table1'
二:使用
t.put 'row1','cf1:a','v1' t.get 'row1' t.scan
三:描述,名稱
可以查看表的描述,和變量所代替的表名
t.describe t.name
數據模型操作
一:介紹
有讀get 寫 put 掃描 scan 刪除 delete 這幾種數據模型操作。
二:put
我們先寫入幾條數據。
put 'table1','row1','cf1:a','a1' put 'table1','row1','cf3:a','aa1'設置rowkey為row1的列族cf1中列為a的值為a1,列族cf3中列為a的值為aa1
三:get
獲取表table1中rowkey為row1的數據
get 'table1','row1'
從圖中我可以看到列族cf1的a列,和cf3的a列的數據。
四:更新
put 'table1','row1','cf3:a','aa2'
從圖中我們可以看到列族cf3的列a的值變了,而且時間戳也變了。不管value的值變成什么,或者是自己本身,沒執行一次put命令,對應的列族的時間戳都會改變。
五:scan
構造數據
put 'table1','row2','cf1:b','b1' put 'table1','row3','cf3:b','bb1'掃描
scan 'table1'
我們可以看到該表的每條,每列數據都會列出來。
掃描列族cf1的數據
scan 'table1' ,{COLUMN=>'cf1'}
掃描第一行的數據
scan 'table1' ,{LIMIT=>1}
掃描起始行為row2的前2條數據
scan 'table1' ,{LIMIT=>2,STARTROW=>'row2'}
掃描時間戳在一定范圍內的數據
scan 'table1' ,{TIMERANGE=>[1474459901241,1474460092018]} scan 'table1' ,{TIMERANGE=>[1474459901241,1474460092019]}
這里比較奇葩,起始的時間41可以查出41的數據,截至時間18查不出18的數據,19才能查出18的數據。所以這點我們應該留點心。
倒序掃描數據
scan 'table1' ,{REVERSED => true}
數據按照rowkey,列族,列族中的列倒序排列
使用row過濾器掃描row1的數據scan 'table1' ,{ROWPREFIXFILTER => 'row1'}
六:delete
刪除rowkey 為row1,列族cf1中列為a的數據
delete 'table1','row1','cf1:a'
我們可以試試這個語句
delete 'table1','row1','cf1'發現沒有數據被刪除,所以刪除語句是針對列的,而不是針對列族的。
deleteall刪除一行
deleteall 'table1','row1'
--------------------------------------------------------------------
到此,本章節的內容講述完畢。
系列索引
本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。
文章是哥(mephisto)寫的,SourceLink