Hbase(一):Hbase概述
概述
基于hadoop的数据库工具
来源于google的一篇论文BigTable 后来由Apache做了开源实现 就是HBase
是一种 NoSQL 非关系型的数据库 不符合关系型数据库的范式
适合存储 半结构化 非结构化 的数据
适合存储 稀疏的数据 空的数据不占用空间
面向列(族)进行存储
提供实时增删改查的能力 是一种真正的数据库
可以存储海量数据 性能也很强大 可以实现上亿条记录的毫秒级别的查询
但是不能提供严格的事务控制 只能在行级别保证事务
是一个高可靠性 高性能 面向列 可伸缩的分布式存储系统 利用hbase技术可以在廉价的PC上搭建起大规模结构化存储集群。
HBase利用HadoopHDFS作为其文件存储系统,利用Hadoop的MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具
逻辑结构
hbase通过表来存储数据 但是表的结构和关系型数据库非常的不一样
行键 - RowKey - 即hbase中表的主键,访问hbase表中的数据有三种方式
通过单一行键访问
通过一组行键访问
全表扫描列族(簇) - Column Family
是表的元数据的一部分,需要在建表时声明,不能后期增加,如果需要增加只能alter表,一个列族可以包含一个或多个列列 - Column
可以动态增加列,不需要提前声明,不是表的元数据一部分单元格与时间戳 - cell timestamp
通过row和columns确定的一个存储单元。每个存储单元中都保存着一个数据的多个版本,版本通过时间戳来区别,而由row column 和 timestamp确定出来的唯一的存储数据的单元 称之为一个 cell 单元格。
数据都以二进制形式存储,没有数据类型的区别。
所有空数据都不占用空间。