CDA持证人阿涛哥

2022-02-11   阅读量: 466

用户画像读书分析系列 大数据

HBase存储

扫码加入数据分析学习群

HBase是一个高性能、列存储、可伸缩、实时读写的分布式存储系统,同样运行在HDFS之上。

Hive不同的是,HBase能够在数据库上实时运行,而不是跑MapReduce任务,适合进行大数据的实时查询。 画像系统中每天在Hive里跑出的结果集数据可同步到HBase数据库,用于线上实时应用的场景。


下面介绍几个基本概念:

·row key:用来表示唯一一行记录的主键,HBase的数据是按照 row key的字典顺序进行全局排列的。访问HBase中的行只有3种方 式:

·通过单个row key访问;

·通过row key的正则访问;

·全表扫描。


由于HBase通过rowkey对数据进行检索,而rowkey由于长度限制的因素不能将很多查询条件拼接在rowkey中,因此HBase无法像关系数据库那样根据多种条件对数据进行筛选。一般地,HBase需建立 二级索引来满足根据复杂条件查询数据的需求。


Rowkey设计时需要遵循三大原则:

·唯一性原则:rowkey需要保证唯一性,不存在重复的情况。在 画像中一般使用用户id作为rowkey

·长度原则:rowkey的长度一般为10-100bytes

·散列原则:rowkey的散列分布有利于数据均衡分布在每个 RegionServer,可实现负载均衡。 ·columns family:指列簇,HBase中的每个列都归属于某个列 簇。列簇是表的schema的一部分,必须在使用表之前定义。


划分 columns family的原则如下:

·是否具有相似的数据格式;

·是否具有相似的访问类型。


常用的增删改查命令如下。

1)创建一个表,指定表名和列簇名: create '<table name>','<column family>'

2)扫描表中数据,并显示其中的10条记录: scan '<table name>',{LIMIT=>10}

3)使用get命令读取数据: get '<table name>','row1'

4)插入数据: put '<table name>','row1','<colfamily:colname>','<value>'

5)更新数据:put '<table name>','row ','Column family:column name','new value'

6)在删除表之前先将其禁用,然后删除: disable '<table name>' drop '<table name>'

38.4598 4 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子