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...