HBase学习学习之入门

一  HBase 简介

      HBase是一个构建在HDFS(Hadoop分布式文件系统)之上的、分布式的、面向列的开源数据库,由Google BigTable的开源实现,它主要用于存储海量数据,是Hadoop生态系统中的重要一员

二  HBase的优势

     1.  成熟性

         a.  有成熟的社区,目前是Apache公司的顶级项目之一

         b.  有充分的实践经验,多家大型互联网公司都在使用

         c. 有丰富的工具支持,例如:Phoenix,Spark,Solr,Flink等

     2. 高效性

         a.  将随机读写转化为顺序读写,适应高并发写入

         b.  均衡效果好,读写性能与机器数保持线性相关

         c.  行中没有保存数据的列不占存储空间

     3. 分布式特性

         a.  基于HDFS、Zookeeper

         b.  一致性,可用性,分区容忍性

         c.  大数据存储

         b.  易扩展

三 HBase基本知识

   1. 表特点 

       a. 容量大: 一个表可以有十亿行,数百万列

       b. 面向列: 面向列(族)的存储和权限访问,因此,表可以设计的非常稀疏

       c. 数据类型单一: HBase中的数据类型都是字符串

       d. 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列

《HBase学习学习之入门》

    2.  主键(Row Key)

        a. 用来检索记录的主键

        b. 访问HBase表中的行,只有三种方式:

             通过单个Row Key访问

             通过Row Key的range

             全表扫描

         c. 主键为任意字符串,最大长度为64kb,按照字典顺序存储,在HBase内部保存为字节数组

       3.   列族(Colunm Family)

          a. 列族在创建表的时候声明,一个列族可以包含多个列,列中的数据都是以二进制形式存在,没有数据模型

          b. 列族是一些列的集合

          c. 一个列族所有列成员是有着相同的前缀,比如:列course:histor和course:math都是列族course的成员,冒号(:)是列族的分隔符,用来区分前缀和列名

      4. 时间戳与存储单元(Timestamp and Cell)

           a. HBase中通过row和column确定一个存储单元,称为cell。每个cell都保存同一份数据的多个版本

            b. 在写入数据时,时间戳可以由HBase自动赋值(当前系统时间精确到毫秒),也可以显示赋值

            c. 每个cell中,不同版本的数据按照时间的倒序排序

            d. {row,column,version}元祖就是HBase中的一个cell

四  HBase VS RDBMS (关系型数据库)

      1. HBase中的数据类型都是字符串类型

      2. HBase只有普通的增,删,改,查等操作,没有表之间的关联查询

      3. HBase是基于列式存储的,而RDBMS是基于行式存储的

      4. HBase适合存储大量数据,查询效率极高

    原文作者:Shanhd
    原文地址: https://www.jianshu.com/p/452ca6aec12b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞