1/5 HBase( 五 )


1/5 HBase

文章插圖
5.3 DDL相關5.3.1. 創建表create
注意:創建表時只需要指定列族名稱,不需要指定列名 。
# 語法create '表名', {NAME => '列族名1'}, {NAME => '列族名2'}, {NAME => '列族名3'}# 此種方式是上上面的簡寫方式,使用上面方式可以為列族指定更多的屬性 , 如VERSIONS、TTL、BLOCKCACHE、CONFIGURATION等屬性create '表名', '列族名1', '列族名2', '列族名3'create '表名', {NAME => '列族名1', VERSIONS => 版本號, TTL => 過期時間, BLOCKCACHE => true}# 示例create 'tbl_user', 'info', 'detail'create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}
1/5 HBase

文章插圖
5.3.2 修改(添加、刪除)表結構Schema alter5.3.2.1 添加一個列簇# 語法alter '表名', '列族名'# 示例alter 'tbl_user', 'address'
1/5 HBase

文章插圖
5.3.2.2 刪除一個列簇# 語法alter '表名', {NAME=> '列族名', METHOD=> 'delete'}# 示例alter 'tbl_user', {NAME=> 'address', METHOD=> 'delete'}
1/5 HBase

文章插圖
5.3.2.3 修改列族的屬性
可以修改列族的VERSIONS、IN_MEMORY
# 修改f1列族的版本為5alter 't1', NAME => 'f1', VERSIONS => 5# 修改多個列族,修改f2為內存,版本號為5alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}# 也可以修改table-scope屬性,例如MAX_FILESIZE, READONLY,MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH等 。# 例如,修改region的最大大小為128MB:alter 't1', MAX_FILESIZE => '134217728'5.3.3 獲取表的描述describe# 語法describe '表名'# 示例describe 'tbl_user'
1/5 HBase

文章插圖
5.3.4 列舉所有表list
1/5 HBase

文章插圖
5.3.5 表是否存在exists# 語法exists '表名'# 示例exists 'tbl_user'
1/5 HBase

文章插圖
5.3.6 啟用表enable和禁用表disable
通過enable和disable來啟用/禁用這個表,相應的可以通過is_enabled和is_disabled來檢查表是否被禁用 。
# 語法enable '表名'is_enabled '表名'disable '表名'is_disabled '表名'# 示例disable 'tbl_user'is_disabled 'tbl_user'enable 'tbl_user'is_enabled 'tbl_user'5.3.7 禁用滿足正則表達式的所有表disable_all
  • .匹配除“\n”和"\r"之外的任何單個字符
  • *匹配前面的子表達式任意次
# 匹配以t開頭的表名disable_all 't.*'# 匹配指定命名空間ns下的以t開頭的所有表disable_all 'ns:t.*'# 匹配ns命名空間下的所有表disable_all 'ns:.*'5.3.8 啟用滿足正則表達式的所有表enable_allenable_all 't.*'enable_all 'ns:t.*'enable_all 'ns:.*'5.3.9 刪除表drop
需要先禁用表 , 然后再刪除表,啟用的表是不允許刪除的
# 語法disable '表名'drop '表名'# 示例disable 'tbl_user'drop 'tbl_user'
直接刪除報錯:

1/5 HBase

文章插圖
先禁用后刪除

1/5 HBase

文章插圖
5.3.10 刪除滿足正則表達式的所有表drop_alldrop_all 't.*'drop_all 'ns:t.*'drop_all 'ns:.*'

推薦閱讀