全部產品
Search
文件中心

ApsaraDB for HBase:HBase Shell使用介紹

更新時間:Jul 06, 2024

通過Shell工具可以對ApsaraDB for HBase進行資料管理,包括建表、插入資料、刪除資料和刪除表等操作,本文介紹Shell的基本使用命令。

訪問配置

常用命令

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的預分區詳情介紹請參見設定預分區