namespace(库)
锦囊命令
help 'namespace'
1. 创建
create_namespace 'liu_data'
2. 删除
- 删除数据库时 , 库中不可以存在表 , 否则报错
Only empty namespaces can be removed. Namespace liu_data has 1 tables
-- 先下线namespace
disable 'liu_data'
-- 删除namespace
drop_namespace 'liu_data'
3. 查看所有数据库
-- 查看当前命名空间
list_namespace 'liu_data'
-- 查看当前命名空间中的所有表格
list_namespace_tables 'liu_data'
Table(表)
锦囊命令
help 'create'
1. 创建表格
- 创建表的时候没有指定namespace(库) , 则默认创建在系统 default namespace(库)
- 创建表的时候不能直接指定列族包含的具体列 , 只有在[put](#1. 添加 (单条数据添加))数据时才可以添加
- 在某个namespace(库)创建表 , 必须将namespace(库)放在表名的前面 , 并且建表语句中无需使用table关键字
- 创建表的时候必须至少有一个列族 , 否则报错
ERROR: Table must have at least one column family
-- 未指定namespace(库)则 , 默认创建在HBase的default
create 'normal_table','test_column_family'
-- 创建一个普通表
create 'liu_data:create_test_table_for_delete','test_column_family'
create 'liu_data:version_table_test',{NAME=>'test_column_family'}
-
建表时预分切分表
-
指定数组切分数组 : 数组填写的是切分的rowkey
-
按照文件切分 : 文件必须已存在
-
-- 创建表格时提前预设rowkey的切分点,方法的属性参数['10','20','30']
create 'liu_data:split_test','test_column_family',SPLITS=>['10','20','30']
-- 创建表格时提前预设根据文件中存储的rowkey作为切分点,文件存放位置是Linux的路径
create 'liu_data:split_file_test','test_column_family',SPLITS_FILE=>'/root/liu_data/splits.txt'
- 建指定版本表
-- 创建指定指定版本时VERSIONS属性是int类型,所以只需要写 整数 即可 , 无需加引号
create 'liu_data:version_table_test',{NAME=>'test_column_family', VERSIONS => 5}
2. 删除
-- 下线指定namespace中的表
disable 'liu_data:create_test_table_for_delete'
-- 删除指定namespace中的表
drop 'liu_data:create_test_table_for_delete'
3. 查看表
- [查看指定命名空间中的所有表](#3. 查看所有数据库)
-- 查看表描述
describe 'liu_data:create_test_table'
-- 查看所有的namespace及其包含的表
list
4. 列族
- 添加列族
-- 向已经创建的指定表中 添加列族
alter 'liu_data:create_test_table',NAME => 'col_insert_test'
-- 向已经创建的指定表中 添加多个列族
alter 'liu_data:create_test_table',{NAME=>'col_insert_test_mul1'},{NAME=>'col_insert_test_mul2'}
- 删除列族
-- 删除某个列族
alter 'liu_data:create_test_table',NAME=>'f1',METHOD=>'delete'
-- 删除某个列数据 语法:delete <table>, <rowkey>, <family:column>
delete 'liu_data:install_status','963ef0d5570c60e7','aid:bid'
Data(数据)
1. put添加 (单条数据添加)
- HBase通过put的方法添加相同rowkey , 列族 , 列的值 , 就可完成覆盖修改 , 原本的值不会立即被删除 , 而是被标记过期
-- 语法结构见下图
put 'liu_data:create_test_table','001','f1:name','Leon'
graph
namespace-->liu_data
table-->create_test_table
rowkey-->001
column_family-->f1
column-->name
value-->Leon
2. scan查询
-- 查看表内所有的数据
scan 'liu_data:install_status'
-- 查询表内n行数据 limit
scan 'liu_data:install_status',LIMIT=>3
-- 查询指定<列族>的数据
scan 'liu_data:install_status',{COLUMNS => 'aid'}
-- 查询指定<列>的数据
scan 'liu_data:install_status',{COLUMNS => 'aid:adress'}
- 条件查询 : 通过filter过滤器查询符合条件的值 , 类似sql中的where查询 , 效率相对偏低 , 通过扫描全表的方式实现
-- 查询指定值的数据
scan 'liu_data:install_status',FILTER=>"ValueFilter(=,'binary:2')"
scan 'liu_data:install_status',FILTER=>"ValueFilter(>,'binary:1')"
4. get查询
-- 查询某一行的数据
get 'liu_data:install_status','963efea06b26a189'
安全认证
锦囊命令
help 'grant'