通過Shell工具可以對ApsaraDB for HBase進行資料管理,包括建表、插入資料、刪除資料和刪除表等操作,本文介紹Shell的基本使用命令。
訪問配置
- 如果使用的是ApsaraDB for HBase標準版,基本環境的配置操作請參見使用HBase Shell訪問HBase標準版。
- 如果使用的是ApsaraDB for HBase增強版,基本環境的配置操作請參見使用HBaseue Shell訪問HBase增強版。
常用命令
Shell的使用命令更多請參見Apache HBase Shell介紹。
- Shell資料定義語言 (Data Definition Language)
create: 用於建立一個表。 list: 用於列出HBase的所有表。 disable: 用于禁用表。 is_disabled: 用於驗證表是否被禁用。 enable: 用於啟用一個表。 is_enabled: 用於驗證表是否已啟用。 describe: 用於提供了一個表的描述。 alter: 用於改變一個表。 exists: 用於驗證表是否存在。 drop: 用於從HBase中刪除表。 - Shell資料操作語言
put: 用於把指定列在指定的行中儲存格的值在一個特定的表。 get: 用於取行或儲存格的內容。 delete:用於刪除表中的儲存格值。 deleteall: 用於刪除給定行的所有儲存格。 scan: 用於掃描並返回表資料。 count: 用於計數並返回表中的行的數目。 truncate: 清空表中的資料,其內部實現是將指定的表下線、刪除、重建,該操作會丟失Region分區 truncate_preserve:清空表中的資料,其內部實現是將指定的表下線、刪除、重建,並且Region分區與舊錶保留一致
進入和退出Shell環境
- 執行以下命令進入Shell環境。
bin/hbase shell - 執行以下命令退出Shell環境。
quit - 使用
help命令查看基本命令和對應的使用方法。help
基本操作
- 建立HBase表使用
create命令來建立表格,在建立的時候必須輸入表的名稱和列族的名稱。//建立一個名稱為test,列族名為cf的表 create 'test', 'cf' - 查詢所有表的資訊使用
list命令來查詢HBase資料庫中所有表的資訊,也可以使用Regex來過濾表。list list 'abc.*' list 'test' - 插入資料使用
put命令為新建立的表插入資料。執行以下語句插入三條資料。put 'test', 'row1', 'cf:a', 'value1' put 'test', 'row2', 'cf:b', 'value2' put 'test', 'row3', 'cf:c', 'value3'說明 語句中test為表名,row1為表的Rowkey,cf:a表示自訂欄,列族名和列名,value1為值。 - 查詢指定表的資料
scan是一種訪問HBase資料的方式,它非常的靈活,scan操作可以用它來掃描全表,也可以用它查詢固定範圍。查詢速度會比查詢單條(使用get)資料略慢一些,這裡因為我們的demo資料庫資料並不多,所以我們全部取出來。執行以下語句可以查詢test表的資料。scan 'test'返回資料如下:ROW COLUMN+CELL row1 column=cf:a, timestamp=1421762485768, value=value1 row2 column=cf:b, timestamp=1421762491785, value=value2 row3 column=cf:c, timestamp=1421762496210, value=value3 3 row(s) in 0.0230 seconds - 查詢表的單條資料使用
get來查詢表的單條資料。get 'test', 'row1'返回資料如下:COLUMN CELL cf:a timestamp=1421762485768, value=value1 1 row(s) in 0.0350 seconds - 禁用和啟用指定表如果您想要刪除一張表,或者改變一張表的設定,或者其他類似的情境。您需要使用disable命令先禁用這張表,刪除或者修改配置完成後,使用enable命令啟用表,重新使用這張表。
disable 'test' enable 'test' - 刪除指定表如果您想要刪除一張表,使用drop命令,這是一個危險的操作,請謹慎使用。
drop 'test'
常用配置
- 為指定表設定Major Compaction周期(無特殊情況下不建議自行設定)。Major Compaction周期的單位為毫秒(ms),預設值是7天,設定為0表示關閉周期。
alter 'test', CONFIGURATION => {'hbase.hregion.majorcompaction' => 300000} - 為指定表的列族設定資料壓縮格式。ApsaraDB for HBase的資料壓縮詳情介紹請參見資料壓縮與編碼。
alter 'test', NAME => 'cf', COMPRESSION => 'SNAPPY' - 為指定表的列族設定Block Encoding類型。將test表列族的Block Encoding類型設定為DATA_BLOCK_ENCODING。
alter 'test', NAME => 'cf', DATA_BLOCK_ENCODING => 'DIFF' - 為指定表的列族設定資料存活時間(Time To Live,簡稱TTL)。TTL單位為秒(s),例如2592000s=30天。
alter 'test', NAME => 'cf', TTL => 2592000 - 為指定表設定預分區。ApsaraDB for HBase的預分區詳情介紹請參見設定預分區。