從零自學Hadoop(21):HBase資料模型相關操作下

sinodzh發表於2016-10-20

閱讀目錄

本文版權歸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'

 

 

 --------------------------------------------------------------------

  到此,本章節的內容講述完畢。

系列索引

  【源】從零自學Hadoop系列索引

 

 

 

 

本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 

相關文章