建表
-- create 表名, 列簇,只有列簇定义,无列定义,可以多个列,不要求每行的列相同
create 'user', 'basicinfo'
插入数据
-- put 表名, rowkey, 列簇:列, 列值
put 'user', '1001', 'basicinfo:name', 'roy'
put 'user', '1001', 'basicinfo:age', 1 8
put 'user', '1001', 'basicinfo:salary', 10000
查询
-- get 表名, rowkey
get 'user', '1001'
-- get 表名, rowkey, 列簇:列
get 'user', '1001', 'basicinfo:name'
-- get 表名, rowkey, {COLUMN => 列簇:列, VERSIOn => ?}
get 'user', '1001', {COLUMN => 'basicinfo:name', VERSIONS => 3}
-- scan 表名 查询多行值
scan 'user'
-- 范围查询,左开右闭
scan 'user', {STARTROW => '1001',STOPROW => '1003'}
获取帮助
-- help
help 'get'
desc 查看表详细信息
desc 'user'
count 统计行数
count 'user'
alter 修改表结构
alter 'user', {NAME => 'basicinfo', VERSION = 3}
delete
生成 type = Delete 类型的记录,在某个时间点,由数据库统一删除处理
delete 'user', '1002', 'basicinfo:sex'
deleteall
生成 type = DeleteFamily 类型的记录,在某个时间点,由数据库统一删除处理
deleteall 'user', '1003'
truncate
-- truncate 将表的数据全部删除掉,不要在生产环境中使用
truncate 'user'
drop
disable 'user'
drop 'user'
-- 启用表 enable 'user'
三种查询
get 单值查询
scan 全量
scan 范围
** 只有列簇定义,列簇需要对齐,没有列的定义;
namespace
list_namespace -- 列出所有命名空间,对应HBase目录,命名存储空间之间相互隔离
create_namespace 'my_ns' -- 创建命名空间
create 'my_ns:my_table', 'fam' -- 在命名空间下创建表
** 不指定命名空间时,在 default命名空间下面
version
表中 {row, column, version} --> cell 可以确定一行
scan 'user', {RAW => true, VERSION => 10}
给basicinfo声明最多保存5个版本
alter 'user', NAME => 'basicinfo', VERSION => 5
指定最少两个版本
alter 'user', NAME => 'basicinfo', MIN_VERSION => 2
查询多个版本的数据
get 'user', '1001', {COLUMN => 'basicinfo:name', VERSION => 3}
查询10个历史版本
scan 'user', {RAW => true, VERSION => 10}
rest风格访问
hadoop01:9090/user/regions
类似cas 并发操作
check=put
check=delete