Please enable JavaScript.
Coggle requires JavaScript to display documents.
HBase (HBase与传统关系型数据库的区别 (数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则将数据存储为未经解释…
HBase
HBase与传统关系型数据库的区别
数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则将数据存储为未经解释的字符串
数据操作:关系数据库中包含了丰富的操作,会涉及多表连接,HBase不存在表与表之间的关系,只有简单的插入、查询、删除、清空等
存储模式:关系数据库基于行存储,HBase基于列存储
数据索引:关系数据库可以创建多个索引,HBase只有一个索引——行键
数据维护:在执行更新操作时,关系型数据库会替换掉原来的旧值,旧值不会被保留。HBase会生成一个新的版本存放新数据
可伸缩性:关系型数据库很难实现横向扩展,纵向扩展的空间也很有限,HBase借助分布式集群存储数据,可以灵活扩展
HBase 是一个稀疏、多维度、排序的映射表,表的索引是行键、列族、列限定符和时间戳
行:每个HBase表都由若干行组成,每行由行键进行标识
一个HBase表被分组成许多列族的集合,是基本的访问控制单元
列限定符:列族里的数据通过列限定符来定位
单元格:通过行、列族、列限定符和时间戳确定一个单元格
时间戳:没个单元格都保存着一份数据的多个版本,这些版本用时间戳进行索引
面向列的存储
关系型数据库是基于行的存储
做分析时是针对列的数据的分析(年龄分布特征等),效率较高
数据类型相似,数据压缩率高
需要插入一条条记录,则选择行式存储
以分析数据为主,则选择列式存储
访问HBase数据库
Native Java API(MapReduce作业并行批处理HBase表数据)
HBase Shell(HBase管理)
Pig(数据统计)
Hive(Hive SQL)
高可靠、高性能、面向列、可伸缩的分布式数据库
存储非结构化和半结构化的松散数据