赞
踩
一、HBase简介
1.概念
HBase是bigtable的开源山寨版本。是建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的分布式列存储的开源数据库系统。
HBase是Apache的Hadoop 项目的子项目。
HBase中每张表的记录数(行数)可多达几十亿条,甚至更多,每条记录可以拥有多达上百万的字段。而这样的存储能力却不需要特别的硬件,普通的服务器集群就可以胜任。
2.技术特点
1)大表:一个表可以有上亿行,上百万列,提供海量数据存储能力,可提供高达几百亿条数据记录存储能力;
2)列式存储:面向列族(Column Family)的存储和权限控制,列族独立检索;
3)表数据是稀疏的多维映射表。表中的数据通过一个行关键字(row key)、一个列关键字(column key)以及一个时间戳(time stamp)进行索引和查询定位,通过时间戳允许数据有多个版本;
4)NoSQL的典型代表产品。适合于非结构化数据存储的数据库。
注:Hbase在物理实现上并不存在传统数据库的二维表的概念。因此,二维表中字段值的空洞,对于Hbase在物理实现上是不存在的,而不是所谓的值为null.
稀疏:指一个行,一般来说只是在某个列族上存在值,而在其他列族上不存在值。
二、HBase的数据模型
HBase表是一个分布式多维表,表中的数据通过一个行关键字(row key)、一个列族和列名(column family,column name)和一个时间戳(time stamp)进行索引和查询定位。
下面是截取自《深入理解大数据---大数据处理与编程实践》(黄宜华)上的图片:
1.HBase表实例
在实际的HDFS存储中,直接存储的是每个字段数据所对应的完整的键值对:
{row key,column family,column name,timestamp}--->value
例如上表中,key3行Address字段下t2时间戳下的Shanghai,存储时的完整键值对是:
{key3,PersonnalInfo,Address,t2}--->Shanghai
下面对rowkey、column family、column name、time stamp进行简要的介绍:
1.Row Key
HBase一张表中可以有上亿行记录,每一行都由一个行关键字(row key)来标识。
特点:
(1)HBase保证对所有行按照row key进行字典序(byte order)排序。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)
(2)Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。