hbase

来源:互联网 发布:股票入门 知乎 编辑:程序博客网 时间:2024/06/05 02:32

hive与hbase的区别:
hive
核心将sql转换为MapReduce
将存储在hdfs上的结构化的数据映射成一张数据库表,并提供类sql语句进行查询

hive的特点:
高延迟
存储的是结构化的数据
hive是面向分析,使用的hql语言
hive不能接入业务使用
hive是面向行存储的数据仓库工具,是一种纯逻辑表
hive本身不存储数据和计算数据,完全依赖于hdfs和MapReduce
hive的本质就是将sql转换为MapReduce

hbase的特点:
低延迟
适合存储非结构化的数据(结构化的数据也是可以存储)
hbase面向数据的存储和检索
hbase可以接入业务使用
hbase是列存储,是物理表,通过索引可以快速的查询、更新、删除等操作
hbase不是关系型数据库,是一个构建在hdfs上的面向列存储的分布式数据库
hbase本身不支持sql,no-sql数据库
hbase的相关特点:
BigTable是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库。
Bigtable的设计目的是快速且可靠地处理PB级别的数据,并且能够部署到上千台机器上。
hbase源自于BigTable,和hdfs结合使用
hbase是构建在hdfs上的一个分布式数据库
为【海量】数据提供的检索和存储平台
海量:
单表数据量在PB级别以上的
上亿条数据
基于【列存储】的分布式非关系型数据库
hive默认的存储格式: 行
hbase默认的存储格式: 列
列存储和行存储的对比:
行存储:
RDBMS(关系型数据库管理系统)都是基于行存储
每行数据是一个连续的存储单元
每行数据保存在一起,插入或更新或删除操作时会更简单
如果select时只涉及到表的某几个列(字段),则行所有的字段都会别加载读取,系统io 工作将加大。
列存储:
每列数据是一个连续的存储单元
如果select时只涉及到表的某几个列(字段),只有涉及到的列会被加载读取,大大减小系统的io 工作。
以列为单元存储,因为每个列的数据类型相同,更容易实现压缩存储,并且数据会更加安全
hbase适合存储【非结构化数据】
结构化的数据每条数据的字段的数量及种类固定
非结构化的数据每条数据的字段的数量及种类可能不一样
基于key-value的形式存储数据
key(rowkey+列簇+列)-》value
高可靠性、高性能、可伸缩的分布式数据库
可靠性、可伸缩:hbase是构建在hdfs上的一个数据库
高性能:对比传统关系型数据库,hbase是大规模的高并发的分布式数据库