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


閱讀目錄

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM