HBASE
概述
HBase是Apache提供的一套基于Hadoop的、分布式的、可扩展的、非关系型数据库 - 不支持SQL
特点
HBase适合于存储稀疏数据 - HBase可以存储结构化数据和半结构化数据
HBase中,如果需要删除一张表,那么首先需要先禁用这张表 在创建表的时候,如果不指定名称空间,那么默认在default下 HBase是基于Hadoop存储的,即本质上是基于HDFS来存储的。HDFS的特点是一次写入多次读取,不允许修改;HBase提供了完整的增删改查的能力,其中的"改"怎么实现的? - HBase的"改"并不是修改之前的数据而是在文件尾部追加,在添加每一条数据的时候都会添加一个时间戳,在读取数据的时候只需要返回最新的数据就能实现改的效果 - 时间戳称之为是数据的版本号 - VERSION 在不指定的情况下,默认只返回最后一个版本的数据;如果需要获取多个版本的数据,那么需要在建表的时候就指定保留版本
行健 - Rowkey
a. 等价于关系型数据库中的主键 b. 行健在建表的时候不需要指定,而是在添加数据的时候动态指定 c. 行健默认是按照字典序排序
列族/列簇 - Column Family:
a. 在HBase中,不关注列,关注的是列族 - 在建表的时候需要指定列族但是不需要指定列,列是可以动态增删的 b. 一个列族中可以包含0到多个列 c. 一个列族就等价于关系型数据库中的一张表 d. 每一张表中至少包含1个列族 create 'person','basic','expand' // person 行键 basic expand 列簇
名称空间 - namespace
a. 等价于关系型数据库中的database b. 如果不指定,默认情况下表放在default create 'hbasedemo:person','basic','expand' //在hbasedemo命名空间中的person表
单元格 - Cell
a. 行健+列族+列+时间戳/版本唯一锁定一个cell b. 每一个cell中包含一个时间戳