Hbase如何存储数据
2016-11-18 17:32
309 查看
1、HBase是一个针对结构化的可伸缩、高可靠的、面向列的开源数据库,HBase不同于传统的关系型数据库,采用了BigT的able数据模型,是一个适合于非结构化数据存储的数据库。HBase是Apache的Hadoop项目的子项目。HBase的数据模型:增强的稀疏排序表(Key/Value),键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问。HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美的结合在一起。
数据模型:Schema-->Table-->Column Family-->Rowkey-->TimeStamp-->Value
2、HBase表的特点
HBase表很大:一个表可以有数十亿行,上百万列;
HBase表无模式:每行都有一个可排序的主键好任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有不同的列;
面向列:列独立检索;
稀疏:空列并不占用存储空间,表可以设计的非常稀疏;
数据类型单一:HBase中的数据都是字符串,没有类型
Hbase基本概念
RowKey:是Byte array,是表中每条记录的“主键”;
Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
Value(cell):Byte array
物理存储:
1、Table中所有行都按照row key的字典排序;
2、Table在行的方向上分割多个Region;
HBase与HDFS对比
两者都具有较好的容错性和扩展性,都可以扩展到成百上千个点;
HDFS适合批处理场景
不适合增量数据处理
不支持数据更新
HBase的三维有序存储是指:rowkey(行主键),column key,timetamp(时间戳)三部分组成的三维有序存储。
rowkey:rowkey是行的主键,HBase只能用一个rowkey。rowkey的设计时至关重要的,关系到应用层的查询效率。rowkey是以字典顺序排序的。而存储的字节码,字典排序,若是字母,就是字母的顺序,比如,有两个rowkey,rowkey1:aaa222,rowkey2:bbb111,那么rowkey1是rowkey2前面的。
column key :column key 是第二维,数据按rowkey字典排序后,如果rowkey相同,则根据 column key来排序,也是按字典排序。
timestamp:timestamp是时间戳,是第三维,是按降序排序的,即最新的数据排在最前面。
数据模型:Schema-->Table-->Column Family-->Rowkey-->TimeStamp-->Value
2、HBase表的特点
HBase表很大:一个表可以有数十亿行,上百万列;
HBase表无模式:每行都有一个可排序的主键好任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有不同的列;
面向列:列独立检索;
稀疏:空列并不占用存储空间,表可以设计的非常稀疏;
数据类型单一:HBase中的数据都是字符串,没有类型
Hbase基本概念
RowKey:是Byte array,是表中每条记录的“主键”;
Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
Value(cell):Byte array
物理存储:
1、Table中所有行都按照row key的字典排序;
2、Table在行的方向上分割多个Region;
HBase与HDFS对比
两者都具有较好的容错性和扩展性,都可以扩展到成百上千个点;
HDFS适合批处理场景
不适合增量数据处理
不支持数据更新
HBase的三维有序存储是指:rowkey(行主键),column key,timetamp(时间戳)三部分组成的三维有序存储。
rowkey:rowkey是行的主键,HBase只能用一个rowkey。rowkey的设计时至关重要的,关系到应用层的查询效率。rowkey是以字典顺序排序的。而存储的字节码,字典排序,若是字母,就是字母的顺序,比如,有两个rowkey,rowkey1:aaa222,rowkey2:bbb111,那么rowkey1是rowkey2前面的。
column key :column key 是第二维,数据按rowkey字典排序后,如果rowkey相同,则根据 column key来排序,也是按字典排序。
timestamp:timestamp是时间戳,是第三维,是按降序排序的,即最新的数据排在最前面。
相关文章推荐
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?
- 如何把一个图像存储到XML数据中,并读取出来
- 对应诺言,写了篇文章,“如何使用Serialization 进行文件存储/读取数据 (上)”, 请大家评评。
- 如何在触发器或存储过程中实现变量数据表
- 客户机如何存储会话数据?
- 当活动目录数据过大,导致当强盘存储空间不够时,如何将ad数据迁移出去
- 手游rpg如何有效的节省地图数据的存储空间
- 请问如何获得存储过程中错误后的数据!谢谢
- Hadoop Hbase适合存储哪类数据?
- 如何利用存储过程插入更新IMAGE数据类型
- 存储过程如何向一张表中循环插入1000条数据和字段二进制转换
- 如何把数据库中的数据存储在list中
- HBASE松散数据存储设计初识
- 如何以对象的形式存储数据
- 如何利用存储过程和触发器来管理数据
- 在.net中如何把调用存储过程代码写入数据连接层中
- 一个数据文件如何存储