HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文“Bigtable”:一个结构化数据的分布式存储系统。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在Hadoop 之上提供了类似于 Bigtable 的能力。
HBase 是 Apache 的 Hadoop 项目的子项目,它不同于一般的关系数据库,而是一个适合于非结构化数据存储的数据库。HBase 分布式数据库具有如下几个显著特点。
一、容量大:HBase 分布式数据库中的表可以存储成千上万的行和列组成的数据。
二、面向列:HBase 的数据在表中是按照某列存储的,根据数据动态地增加列,并且可以单独对列进行各种操作。
三、多版本:HBase 中表的每一个列的数据存储都有多个版本(Version),每一列对应着一条数据,但是有的数据会对应多个版本。
四、稀疏性:由于 HBase 数据表中的列允许为空,并且空列不会占用存储空间,因此,数据表可以设计得非常稀疏。
五、扩展性:由于 HBase 的底层依赖于 HDFS,所以当磁盘空间不足时,可以动态地增加机器(即 DataNode 节点服务)来增加磁盘空间,从而避免像关系数据库那样进行数据迁移。
六、高可靠性:HBase 在 HDFS 之上,而 HDFS 本身具有备份机制,所以在 HBase 集群出现严重问题时,Replication(即副本)机制能够保证数据不会发生丢失或损坏。
HBase业务场景
1.标签数据的存储
标签数据是稀疏矩阵的代表,描述了实体的各类属性,主要应用于智能推荐、商务智能或营销引擎等领域。
2. 车联网数据的收集
车联网系统是利用车载设备收集车辆运行时产生的各项数据,通过网络实时上传,在平台进行动态分析和利用。
3. 交易记录的保存
在移动支付领域,保证历史交易记录等敏感信息的安全性是一个重要的话题。当数据中心遭遇自然灾害、外部攻击时,必须保证这些信息不丢,而且从业务角度要保证RTO尽可能短、RPO尽可能为0。
HBase基于底层的HDFS作为存储系统,HDFS实现了三副本策略,按照一定的规则将副本放在不同的节点或机架中,本身具有较高的容灾能力。在工程实践中,也产生了Region replica、主备集群、互备双活等策略来尽可能进行灾备并保证高可用。
HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。了解更多详情