当前位置:   article > 正文

hbase学习

hbase学习

一、常用语法

1.建表语句

create 'myHbase',{NAME => 'myCard',VERSIONS => 5}

创建了一个名为myHbase的表,表里面有1个列簇,名为myCard,保留5个版本信息

2.list  查看表列表

3.desc查看表的详细信息

4.alter 'stu', NAME => 'myInfo'

添加列簇

5.alter 'stu',NAME => 'myInfo', METHOD => 'delete'

alter 'myHbase', 'delete' => 'myInfo'

删除一个列簇

6.truncate 'stu'

清空表

7.drop 'stu'

删除表,删表前需要先停用表

disable 'stu'

8.

关于数据的操作(增put,删delete,查get + scan,  改==变相的增加)

create 'user',{NAME=>'base_info',VERSIONS=>3 },{NAME=>'extra_info',VERSIONS=>1 }

创建 user 表,包含 info、data 两个列簇

put 'user', 'user0001', 'base_info:name', 'zhangsan'

向user表中插入信息,rowkey为 user0001, 列簇base中添加name列标示符,值为zhangsan

get 'user', 'user0001'
获取user表中rowkey为user0001的所有信息
get 'user', 'rk0001', 'base_info'
获取user表中rowkey为rk0001,info列簇的所有信息
scan 'user', {COLUMNS => 'base_info'}
查询user_info表中列簇为base_info的信息
delete 'user_info', 'rk0001', 'base_info:name'
删除user_info表row key为rk0001,列标示符为base_info:name的数据
二、适用场景
  • 持久化存储大量数据(TB、PB)
  • 对扩展伸缩性有要求
  • 需要良好的随机读写性能
  • 简单的业务KV查询(不支持复杂的查询比如表关联等)
  • 能够同时处理结构化和非结构化的数据

订单流水、交易记录、需要记录历史版本的数据等

三、不适用场景

  • 几千、几百万那种还不如使用RDBMS
  • 需要类型列(不过已经可以用Phoniex on HBase解决这个问题)
  • 需要跨行事务,目前HBase只支持单行事务,需要跨行必须依赖第三方服务
  • SQL查询(不过可以用Phoniex on HBase解决这个问题)
  • 硬件太少,因为HBase依赖服务挺多,比如至少5个HDFS DataNode,1个HDFS NameNode(为了安全还需要个备节点),一个Zookeeper集群,然后还需要HBase自身的各节点
  • 需要表间Join。HBase只适合Scan和Get,虽然Phoenix支持了SQL化使用HBase,但Join性能依然很差。如果非要用HBase做Join,只能再客户端代码做
四、学习链接
https://www.csdn.net/gather_2e/MtTaEgysNDE2MC1ibG9n.html
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号