hbase 基本用法

2021-10-05 16:34:16 字數 3161 閱讀 4827

hbase  

訪問habse三種方式 

訪問hbase table中的行,只有三種方式: 

1 通過單個row key訪問 

2 通過row key的range 

3 全表掃瞄 

row key行鍵 (row key)可以是任意字串(最大長度是 64kb,實際應用中長度一般為 10-100bytes),在hbase內部,row key儲存為位元組陣列。 

hbase會對錶中的資料按照rowkey排序(字典順序) 

hbase的時間戳 

時間戳的型別是 64位整型。時間戳可以由hbase(在資料寫入時自動 )賦值,此時時間戳是精確到毫秒的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程式要避免資料版本衝突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的資料按照時間倒序排序,即最新的資料排在最前面。 

hbase shell命令 

進入hbase命令列 

./hbase shell 

顯示hbase中的表 

list 

建立user表,包含info、data兩個列族 

create 'user', 'info', 'data' 

put的用法(hbase新增資料)

例子1:

向user表中插入資訊,row key為rk0001,列族info中新增name列標示符,值為zhangsan 

put 'user', 'rk0001', 'info:name', 'zhangsan' 

例子2:

向user表中插入資訊,row key為rk0001,列族info中新增gender列標示符,值為female 

put 'user', 'rk0001', 'info:gender', 'female' 

info:後面的name 和gender稱為 列名 。 

get的用法(hbase中獲取資料)

例子1獲取user表中row key為rk0001的所有資訊 

get 'user', 'rk0001' 

例子2 

獲取user表中row key為rk0001,info列族的所有資訊 

get 'user', 'rk0001', 'info' 

例子3 

獲取user表中row key為rk0001,info列族的name、age列標示符的資訊 

get 'user', 'rk0001', 'info:name', 'info:age'

例子4 

獲取user表中row key為rk0001,info、data列族的資訊 

get 'user', 'rk0001', 'info', 'data' 

get 'user', 'rk0001',  

獲取user表中row key為rk0001,info列族的name列標示符和data列族的pic列標示符資訊 

get 'user', 'rk0001',  

例子5 

獲取user表中row key為rk0001,列族為info,版本號最新5個的資訊 

get 'user', 'rk0001',  

例子6 

查詢的是表名為testbycrq,過濾方式是通過rowkey過濾,匹配出rowkey含111的資料。 

scan 'testbycrq', filter=>"rowfilter(=,'substring:111')" 

例子7 

獲取user表中row key為rk0001,cell的值為zhangsan的資訊 

get 'people', 'rk0001',  

例子8 

查詢的是表名為testbycrq,過濾方式是通過rowkey過濾,匹配出rowkey小於等於0111486816556的資料。 

scan 'testbycrq', filter=>"rowfilter(<=,'binary:0111486816556')" 

例子9 

查詢的是表名為testbycrq,過濾方式是通過value過濾,匹配出value含111的資料。 

scan 'testbycrq', filter=>"valuefilter(=,'substring:111')" 

例子10 

查詢的是表名為testbycrq,過濾方式是通過列簇過濾,匹配出列簇含f的資料。  

scan 'testbycrq', filter=>"familyfilter(=,'substring:f')" 

例子11 

查詢的是表名為testbycrq,過濾方式是通過字首過濾過濾的是行鍵,匹配出字首為00000的資料。 

scan 'testbycrq', filter=>"prefixfilter('00000')" 

scan的用法(掃瞄資料)

例子1 

scan 'user' 

查詢user表中的所有資訊 

例子2 

查詢user表中列族為info的資訊 

scan 'user',  

例子3 

查詢user表中列族為info、列標示符為name的資訊,並且版本最新的5個 

scan 'user',  

例子4 

查詢user表中列族為info和data且列標示符中含有a字元的資訊 

scan 'user',  

例子5 

查詢user表中列族為info,rk範圍是[rk0001, rk0003)的資料 

scan 'people',  

例子6 

查詢user表中row key以rk字元開頭的 

scan 'user', 

例子7查詢user表的  列族為info的前20條

scan 'user', 

delete的用法(刪除資料) 

刪除user表row key為rk0001,列標示符為info:name的資料 

delete 'people', 'rk0001', 'info:name' 

刪除user表row key為rk0001,列標示符為info:name,timestamp為1392383705316的資料 

delete 'user', 'rk0001', 'info:name', 1392383705316

sniffer:person_tag_warehouse

scan 'sniffer:person_tag_warehouse',   

HBase 基本操作

如何新增列族很簡單,跟rdbms一樣 直接用alter,但是alter之前必須先disable這個表 disable test 先禁用,目前我用的hbase 0.92版本,尚需要先disable,後期版本不知是否可以不用disable alter test 直接alter 後邊寫入你要 加的列族 e...

Hbase基本操作

hbase shell是乙個基於ruby的語言開發的命令列操作環境。在hmaser主機上,可以通過命令列鍵入hbase shell,進入hbase的命令列環境,進入hbase shell後會看到類似如下形式的命令提示符 hbase main 002 0 在shell模式下,可以對集群 資料表和資料進...

Hbase基本操作

建立乙個名為pageviews的表,並具有名為info的列簇 每張表至少要有乙個列簇,因此我們建立了info,現在,看看我們的表,執行下面list命令 describe命令返回表的詳細資訊,包括列簇的列表,這裡我們建立的僅有乙個 info,現在為表新增以下資料,下面命令是在info中新增新的行 pu...