HBase是一个分布式的、面向列的开源数据库,由Apache基金会开发。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。它基于列的而不是基于行的模式。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。用户可根据键访问行,以及对于一系列的行进行扫描和过滤。HBase一个可以横向扩张的表存储系统,能够为大规模数据提供速度极快的低等级更新。主要用于需要随机访问,实时读写大数据(Big Data)。这正是信息系统所需要的功能。
下面的例子演示的是将原来存放在MySQL中Blog中的数据迁移到HBase中的过程:
图4为MySQL中现有的表结构:表Blogtable表示博客本身,包括5个字段,BlogId为每位用户对应的博客ID号,类型为Int,作为主键字段;Author为该用户的博客名称,类型为Varchar;Title为该用户的博客签名,类型为Varchar;URL为博客网址链接,类型为Varchar;Text为博客的内容,类型为Varchar。Comment表示博客评论,包括5个字段。ID为发表评论的用户ID,类型为Int,作为主键字段;BlogId为博客的原文ID,类型为Varchar。其中,BlogId作为Comment表的外键,指向表Blogtable的主键。Title为评论标题,类型为Varchar;Author为发表该评论的用户名称,类型为Varchar;Text字段为评论内容,类型为Varchar。
图4 MySQL表结构
图5 为迁移HBase中的表结构:HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family)。表Blogtable表示博客本身。ID为Row Key,即Table的主键,用来检索记录。Table在水平方向有一个或者多个Column Family组成。表BlogTable包含5个Column Family, Info的数据结构分为Info:Author,Info:Title,Info:URL。如果想添加其它属性X,则对应的结构为Info:X。需要说明的是,Column Family支持动态扩展,无需预先定义Column的数量以及类型,但是,所有Column均以二进制格式存储,用户需要自行进行类型转换。
图5 HBase表结构
总之,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。简单的理解,Hbase介于nosql和RDBMS之间。Hbase仅能通过主键(row key)和主键的range来检索数据,不支持条件查询以及排序等,仅支持单行事务。Habase主要用来存储非结构化和半结构化的松散数据。针对Hbase的不足,Hadoop的一个数据仓库工具Hive对此做出了弥补。Hive可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,并将SQL语句转换为MapReduce任务运行。针对Hbase单行事务的限制,Hive也提供了扩展。据说,Facebook之所以选择了Hbase,是因为他们HBase适用于处理以下两种类型的数据模式:1.一小组经常变化的临时数据;2.一组不断增加但很少访问的数据。
分享到:
相关推荐
"分布式数据库HBase" HBase 是一个分布式的、面向列的开源数据库,源于 Google 的一篇论文《BigTable:一个结构化数据的分布式存储系统》。HBase 以表的形式存储数据,表有行和列组成,列划分为若干个列族/列簇...
作为一个高可靠、高性能、面向列、可伸缩的分布式数据库,HBase的设计目标是处理非常庞大的表,通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。HBase广泛用于大数据处理...
"分布式开源数据库HBASE图文优秀文档" 本资源摘要信息为分布式开源数据库HBASE图文优秀文档,主要介绍了HBASE的概述、特点、逻辑模型、物理模型等内容。 HBASE概述:HBASE是一个分布式的、面向列的开源数据库,...
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。
HBase,全称为Hadoop Database,是一种基于Google的BigTable设计理念开发的开源分布式列式数据库,特别适合处理和存储海量半结构化和非结构化数据。它诞生于大数据时代,旨在弥补Hadoop生态系统中对于实时数据处理的...
HBase是基于BigTable的开源实现,它是一个高可靠、高性能、面向列、可伸缩的分布式数据库。HBase的设计目标是存储非结构化和半结构化的松散数据,支持非常庞大的表。与传统关系型数据库相比,HBase主要优势在于能够...
"大数据技术原理与应用-分布式数据库HBase" 本节课将围绕 HBase 分布式数据库进行讨论,包括 HBase 的概述、访问接口、数据模型、实现原理、运行机制和编程实践等方面。 4.1 概述 HBase 是一个高可靠、高性能、...
HBase是基于Google的Bigtable设计的一款开源、分布式的、版本化的非关系型数据库(NoSQL数据库),它运行在Hadoop之上,主要用于处理海量结构化数据。HBase提供高吞吐量的数据读写能力,尤其适合于大规模、稀疏的...
HBase是一个分布式、面向列的开源数据库,它运行在Hadoop的文件系统(HDFS)之上,利用Hadoop的MapReduce来处理HBase中的大数据,同时也使用Apache ZooKeeper作为分布式协同服务。HBase特别适合于需要快速读写访问...
本文档主要讲述的是分布式数据库HBase;HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google ...
HBase是一个开源的非关系型分布式数据库,它基于Hadoop的HDFS构建,提供了高可靠性、高性能、面向列、可伸缩的分布式存储系统。以下是HBase的安装与简单操作指南: 一、HBase安装 1. 环境准备 操作系统:Linux(如...
HBase是基于Hadoop的分布式文件系统(HDFS)的开源分布式数据库,属于面向列的NoSQL数据库。它利用HDFS的高容错性和扩展性特性,能够存储海量数据,特别适合于那些数据量庞大而访问模式不确定的场景。HBase采用列...
腾讯云数据库HBase是一种基于开源Apache HBase构建的高性能、可伸缩的分布式列存储数据库服务,它为用户提供了面向列的存储结构、海量数据存储以及分布式计算的解决方案。腾讯云数据库HBase在兼容HBase协议的基础上...
- **HBase介绍**:HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable: A Distributed Storage System for Structured Data”。不同于一般的关系数据库,它是一个...
HBase是一个面向列的非关系型的开源分布式存储系统,它基于Hadoop HDFS文件存储系统,使用MapReduce来处理海量数据,利用Zookeeper作为协同服务。HBase使用简单的键值对映像关系为超大规模和高并发的海量数据实时...
HBase则是在Hadoop之上的分布式非关系型数据库,主要面向大规模的数据存储。Hive作为一个建立在Hadoop之上的数据仓库工具,提供了类SQL的HiveQL查询语言,使得Hadoop的使用门槛大为降低。 在Hadoop的分布式计算框架...
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储...