hive与hbase区别

来源:互联网 发布:手机vpn代理软件 编辑:程序博客网 时间:2024/06/03 19:16
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是大规模的高并发的分布式数据库