HBase简介

作者: TZX_0710 | 来源:发表于2020-05-22 15:10 被阅读0次

    HBase是一个构建在Hadoop文件系统之上的面向列的数据库管理系统。Hadoop存储限制在于,Hadoop可以通过HDFS来存储半结构化数据。针对大文件,批处理执行。但是有一个缺点就是只能按照顺序进行访问,无法进行随机访问。所以HBase应运而生。存储海量数据,支持随机访问。

    HBase简介

    HBase是一个构建在Hadoop文件系统之上的面向列的数据库管理系统.
    HBase是一种类似于 Goole's Big Table的数据模型,它是生态系统的一部分,将数据存储在HDFS上,客户端可以通过HBase实现对HDFS上数据的随机访问。具有以下特性:

    1. 不支持复杂的事物,事物级别在行级,单行读写都是原子性的
    2. 由于是采用HDFS作为底层存储,所以和HDFS一样支持结构化、半结构化和非结构化存储
    3. 支持通过增加机器横向拓展
    4. 支持数据分片
    5. 支持RegionServers之间的故障转义
    6. 易于使用的Java客户端API
    7. 支持BlockCache和布隆过滤器

    HBase Table

    HBase是一个面向列的数据管理系统,HBase是一个面向列族的数据库管理系统。表schema仅定义列族,表具有多个列族,每个列族都可以包含任意数量的列,不限制。


    HTable

    RowKey为行的唯一标识,所有行按照RowKey排序
    该表具有2个列族分别是personal和office
    其中列族personal拥有name city phone三个列,office拥有tel和address两个列

    HBase的表具有以下特点

    1. 容量大:一个表可以有数十亿行上百万列。
    2. 面向列: 数据是按照列存储,每一列都单独存放,数据即索引,在查询的时候可以指定列的数据,有效的降低了系统的I/O负担
    3. 稀疏性: 空列并不占用存储空间,表可以设计稀疏
    4. 数据多版本: 每个单元中的数据中可以有多个版本,按照时间戳排序。新的数据在最上面。
    5. 村粗类型: 所有数据的底层存储格式都是字节(byte数组)

    Phoenix

    Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据。在 Phoenix 之前,如果你要访问 HBase,只能调用它的 Java API,但相比于使用一行 SQL 就能实现数据查询,HBase 的 API 还是过于复杂。Phoenix 的理念是 we put sql SQL back in NOSQL,即你可以使用标准的 SQL 就能完成对 HBase 上数据的操作。同时这也意味着你可以通过集成 Spring Data JPA 或 Mybatis 等常用的持久层框架来操作 HBase。

    相关文章

      网友评论

        本文标题:HBase简介

        本文链接:https://www.haomeiwen.com/subject/sciaohtx.html