![584b9d274ed479e7cd1430d73938b722.png](https://i-blog.csdnimg.cn/blog_migrate/228a9a198d7af5e8160b50d5cd5b305e.png)
![2f3f3124c2dd7162b2e1b0ffd071935c.png](https://i-blog.csdnimg.cn/blog_migrate/ec8e167e81ef97e4c0eb3b6f48887484.png)
一、介绍
官网
1、基本概念
hbase是bigtable的开源java版本,是建立在hdfs之上。提供高可靠性、高性能、列存储、可伸缩、实时读写nosql 数据库系统。它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储结构化和半结构化的松散数据。Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务),Hbase中支持的数据类型:byte[]与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
2、特点
大:一个表可以有上十亿行,上百万列
面向列:面向列(族)的存储和权限控制,列(族)独立检索。
稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
二、Hbase表结构
命名空间(Name Space):
类似于关系型数据库的 DatabBase 概念,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default 表是用户默认使用的命名空间。
表(table):
用于存储管理数据,具有稀疏的、面向列的特点。HBase中的每一张表,就是所谓的大表(Bigtable),可以有上亿行,上百万列。对于为值为空的列,并不占用存储空间,因此表可以设计的非常稀疏。
行键(RowKey):