hbase

hbase 理解

1.简介:

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群

2.HBase和RDBMS的关系


RDBMS(Relation DabaBase Management System-关系数据库):由关系模型构成的数据库就是关系数据库。关系数  据库由包含数据记录的多个数据表组成,用户可在有相关数据的多个表之间建立相互联系。在关系数据库中,数据被分散到不同的数据表中,以便使每一个表中的数据只记录一次,从而避免数据的重复输入,减少冗余。


   1)关系数据库的主要特点:

       a.关系系中的每个属性必须是不可分割的数据单元(即表中不能再包含表)。

       b.关系中的每一列元素必须是类型相同的数据。

       c.同一个关系中不能有相同的字段(属性),也不能有相同的记录。

       d.关系的行、列次序可以任意交换,不影响其信息内容。

    2)Hbase里面有以下2个主要概念:

         Rowkey: Hbase 中的记录是按照rowkey来排序的;因此想用hbase存储数据设计好row-key很重要

         Column family:(列族)是在系统启动之前预先定义好的;可有多个列簇,可动态增加,一个列簇可包含多个列

         Hbase优缺点:      

          1.不支持条件查询以及orderby等查询;

          2.列可以动态增加,列为空则不存储数据,节省存储空间;

          3.会自动切分数据;

          4.可以提供高并发读写操作的支持;

 

3.HBase 表解析

    row-key:hbase是基于列的存储模式,所谓的基于列(HBase)就是基于row-key的存储模式,row-key 相当于关系数据库表的主键
    查询的时候根据row-key去查询

    列簇:hbase表中的每一列都归属为一个列簇,列簇是表的schema的一部分(列不是),必须在使用表之前定义,列名都是以列簇为前缀

          如:Column family:test1(test1为列)

              Column family:test2

          如上:test1,test2 都是列簇 Column family 的列

          *访问控制、磁盘和内存的使用统计都是在列族层面进行的。     

    时间戳:HBase中通过row和columns确定的为一个存贮单元称为cell。

            每个 cell都保存着同一份数据的多个版本。版本通过时间戳来索引。

            时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,
            此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。

            如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。

            每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

            当你插入一个数值的时候,如果不手工写时间戳,系统会自动生成一个。当你在hbase shell下scan某个具体表的时候,可以看到一大堆的时间戳    
          

4.Hbase的优缺点

   a.列的可以动态增加,并且列为空就不存储数据,节省存储空间.

   b.Hbase自动切分数据,使得数据存储自动具有水平scalability.

   c.Hbase可以提供高并发读写操作的支持

   d.不能支持条件查询,只支持按照Row key来查询

   e.暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值