#打开hbase shell
hbase shell
#创建表(由简单到复杂)
create "表名","列族名","列族名"
或
create "表名",{NAME=>'列族名1'},{NAME=>'列族名2'}
或
create "表名",{NAME => '列族名',versions => 版本号,TTL => 过期时间,BLOCKCACHE => ture, }
#修改表
alter '表名','列名' #添加列
alter '表名',{NAME => '列族名' , METHOD => 'delete'} #删除列
alter '表名', NAME => '列族名' , VERSION => 修改的版本号 #修改列属性
#获取表描述
descirbe '表名'
#查看表是否存在
exisis '表名'
#启用和禁用
enable '表名' or disable '表名'
#删除表(先禁用表再删)
disable '表名'
drop '表名'
#给表赋值变量,方便使用函数调用
t1 = get_table '表名'
#获取rowKey所在的区
locate_region '表名', '行键'
#插入或修改数据
put '表名', '行键', '列族名', '列值'
或
put '表名', '行键', '列族名:列名', '列值'
#扫描表
scan '表名'
或 扫描整个列簇
scan '表名', {COLUMN=>'列族名' }
或 扫描某个列
scan '表名',{COLUMN=> '列族名:列名'}
#获取数据get
get '表名', '行键'
或
get '表名', '行键', '列族名'
#删除列族中的某一列
delete '表名','行键','列族名:列名'
#删除某行数据
deleteall '表名', '行键'
#清空整个表数据
truncate '表名'
#查询行数 count '表名'
#查询同一个列族多个列
scan '表名', {COLUMNS => ['列族名1:列名1','列族名1:列名2']}
#指定时间戳
sacn '表名', {TIMERANGE=>[timestamp1,timestamp2]}
#修改VERSION能修改列的储存值
#limit 限制返回的行数
scan '表名', {IMIT => 行数}
#发现
hbase 语法上基本都是 方法+'表名', '内容'(#列族名:列名等)
#hbase与mysql区别(自我总结)
1.数据库类型不一样,前者是分布式数据库,后者是传统关系型数据库
2.前者null不占用空间(稀疏性),后者占用空间
3.前者是列储存有列族,后者是行储存
4.前者运行速率快,后者运行速率慢
5.前者不能使用聚合函数(如 order by,group by),后者可以
对表操作
hbase mysql
---------------------------------
create create
drop(先disable) drop
alter alter
---------------------------------
对内容操作
---------------------------------
put insert
delete delete
scan select