612 HBase简介 表6-1 HBase和 Big Tablel底层技术对应关系 HBase Bigtable 文件存储系统」GFS HDFS 海量数据处理 MapReduce Hadoop MapReduce 协同服务管理」 Chubby Zookeeper
6.1.2 HBase简介 表6-1 HBase 和BigTable的底层技术对应关系 BigTable HBase 文件存储系统 GFS HDFS 海量数据处理 MapReduce Hadoop MapReduce 协同服务管理 Chubby Zookeeper
613 HBase与传统关系数据库 的对比分析 HBase与传统的关系数据库的区别主要体现在以下几个方面 1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和 存储方式, HBase则采用了更加简单的数据模型,它把数据存储为未 经解释的字符串 (2)数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂 的多表连接。 HBase操作则不存在复杂的表与表之间的关系,只有简 单的插入、查询、删除、清空等,因为 HBase在设计上就避免了复杂 的表和表之间的关系 (3)存储模式:关系数据库是基于行模式存储的。 HBase是基于列存 储的,每个列族都由几个文件保存,不同列族的文件是分离的
6.1.3 HBase与传统关系数据库 • HBase与传统的关系数据库的区别主要体现在以下几个方面: 的对比分析 • ( 1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和 存储方式,HBase则采用了更加简单的数据模型,它把数据存储为未 经解释的字符串 • ( 2)数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂 的多表连接。HBase操作则不存在复杂的表与表之间的关系,只有简 单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂 的表和表之间的关系 • ( 3)存储模式:关系数据库是基于行模式存储的。HBase是基于列存 储的,每个列族都由几个文件保存,不同列族的文件是分离的
613 HBase与传统关系数据库 的对比分析 HBase与传统的关系数据库的区别主要体现在以下几个方面: (4)数据索引:关系数据库通常可以针对不同列构建复杂的多个索 引,以提高数据访问性能。 HBase只有一个索引一一行键,通过巧妙 的设计, HBase中的所有访问方法,或者通过行键访问,或者通过行 键扫描,从而使得整个系统不会慢下来 (5)数据维护:在关系数据库中,更新操作会用最新的当前值去替 换记录中原来的旧值,旧值被覆盖后就不会存在。而在 HBase中执行 更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧 有的版本仍然保留 ·(6)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也 比较有限。相反, HBase和 Big Table这些分布式数据库就是为了实现灵 适的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件 数量来实现性能的伸缩
6.1.3 HBase与传统关系数据库 的对比分析 • HBase与传统的关系数据库的区别主要体现在以下几个方面: • ( 4)数据索引:关系数据库通常可以针对不同列构建复杂的多个索 引,以提高数据访问性能。HBase只有一个索引——行键,通过巧妙 的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行 键扫描,从而使得整个系统不会慢下来 • ( 5)数据维护:在关系数据库中,更新操作会用最新的当前值去替 换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行 更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧 有的版本仍然保留 • ( 6)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也 比较有限。相反,HBase 和BigTable这些分布式数据库就是为了实现灵 活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件 数量来实现性能的伸缩
62 HBase访问接口 表6-2 HBase访问接口 类型 特点 场合 Native Java APl最常规和高效的访问方式|适合 Hadoop MapReduce业 并行批处理 HBase表数据 HBase shell HBase的命令行工具,最适合 HBase管理使用 简单的接口 Thrift gateway 利用 Thrift序列化技术,适合其他异构系统在线访问 支持C++、PHP、 PythonHBase表数据 等多种语言 REST Gateway 解除了语言限制 支持REST风格的 Http apLt访问 HBase Pig 使用 Pig latin流式编程语|适合做数据统计 言来处理 HBase中的数据 简单 当需要以类似SQL语言方式来 访问 HBase的时候
6.2 HBase访问接口 表6-2 HBase访问接口 类型 特点 场合 Native Java API 最常规和高效的访问方式 适合Hadoop MapReduce作业 并行批处理HBase表数据 HBase Shell HBase的命令行工具,最 简单的接口 适合HBase管理使用 Thrift Gateway 利用Thrift序列化技术, 支持C++、PHP、Python 等多种语言 适合其他异构系统在线访问 HBase表数据 REST Gateway 解除了语言限制 支持REST风格的Http API访问 HBase Pig 使用Pig Latin流式编程语 言来处理HBase中的数据 适合做数据统计 Hive 简单 当需要以类似SQL语言方式来 访问HBase的时候
63 HBase数据模型 6.3.1 数据模型概述 6.3.2 数据模型相关概念 6.3.3 数据坐标 6.3.4 概念视图 ·6.3.5 物理视图 ·6.3.6 面向列的存储
6.3 HBase数据模型 • 6.3.1 数据模型概述 • 6.3.2 数据模型相关概念 • 6.3.3 数据坐标 • 6.3.4 概念视图 • 6.3.5 物理视图 • 6.3.6 面向列的存储