开发者社区> 桃子红了呐> 正文

hive和hbase本质区别——hbase本质是OLTP的nosql DB,而hive是OLAP 底层是hdfs,需从已有数据库同步数据到hdfs;hive可以用hbase中的数据,通过hive表映射到hbase表

简介:
+关注继续查看

对于hbase当前noSql数据库的一种,最常见的应用场景就是采集的网页数据的存储,由于是key-value型数据库,可以再扩展到各种key-value应用场景,如日志信息的存储,对于内容信息不需要完全结构化出来的类CMS应用等。注意hbase针对的仍然是OLTP应用为主

对于hive主要针对的是OLAP应用,注意其底层不是hbase,而是hdfs分布式文件系统,重点是基于一个统一的查询分析层,支撑OLAP应用中的各种关联,分组,聚合类SQL语句。hive一般只用于查询分析统计,而不能是常见的CUD操作,要知道HIVE是需要从已有的数据库或日志进行同步最终入到hdfs文件系统中,当前要做到增量实时同步都相当困难。

和mysql,oracle完全不是相同的应用场景。这个是结构化数据库,针对的更多的是结构化,事务一致性要求高,业务规则逻辑复杂,数据模型复杂的企业信息化类应用等。包括互联网应用中的很多业务系统也需要通过结构化数据库来实现。所以和hbase,hive不是一个层面的东西,不比较。

 

摘自:https://www.zhihu.com/question/21677041

 

其他回答:

作者:yuan daisy
链接:https://www.zhihu.com/question/21677041/answer/78289309
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1. Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。 而HBase表是物理表,适合存放非结构化的数据。

2. Hive是基于MapReduce来处理数据,而MapReduce处理数据是基于行的模式;HBase处理数据是基于列的而不是基于行的模式,适合海量数据的随机访问。

3. HBase的表是疏松的存储的,因此用户可以给行定义各种不同的列;而Hive表是稠密型,即定义多少列,每一行有存储固定列数的数据。

4. Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,因此不能保证处理的低迟延问题;而HBase是近实时系统,支持实时查询。

5. Hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。

6. Hive提供完整的SQL实现,通常被用来做一些基于历史数据的挖掘、分析。而HBase不适用与有join,多级索引,表关系复杂的应用场景。

 

 

HBase是个基于HDFS的数据库。Hive是用SQL替代写MR的编程框架,做Hadoop上会把用户提交的SQL语句做语法分析,执行计划等一堆乱七八糟的事后变成MR job提交去跑,返回结果给用户。不然每次都写MR很麻烦的,有这个写个SQL就可以拿到等效的结果,很适合运营童鞋用。当然Hive也有HBase的Connector,用这个Connnector后可以写SQL查询HBase的数据而不是HDFS,不过一般不这么搞。
 
 

 

Reasons to use Hive on HBase:
A lot of data sitting in HBase due to its usage in a real-time environment, but never used for analysis
Give access to data in HBase usually only queried through MapReduce to people that don’t code (business analysts)
When needing a more flexible storage solution, so that rows can be updated live by either a Hive job or an application and can be seen immediately to the other

Reasons not to do it:
Run SQL queries on HBase to answer live user requests (it’s still a MR job)
Hoping to see interoperability with other SQL analytics systems

Hive can use tables that already exist in HBase or manage its own ones, but they still all reside in the same HBase instance

When using an already existing table, defined as EXTERNAL, you can create multiple Hive tables that point to it

 

 

参考:www.cs.kent.edu/~jin/Cloud12Spring/HbaseHivePig.pptx













本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6483575.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android 打包AAB+PAD(java篇)(下)
Play Core API 集成 安装时分发 快速跟进式分发和按需分发 查看状态 获取有关资源包的下载信息 安装 监控下载状态 下载内容较大 获取资源包 取消请求 移除资源包 获取多个资源包的位置 相关推荐 Android aab打包 Android App Bundle 已取代 APK
5 0
【数据结构之栈和队列】熬夜暴肝,有亿点详细
我们之前已经说过线性表那一部分了,今天正式开始栈与队列这部分。这部分用途是十分的广泛,重要程度也是不言而喻的。大家理解性记忆哈,多练习!
3 0
Swift5.1—两段式构造过程
Swift5.1—两段式构造过程
4 0
Swift-进阶 09:闭包(二)逃逸闭包 & 非逃逸闭包
Swift-进阶 09:闭包(二)逃逸闭包 & 非逃逸闭包
4 0
Swift5.1—指定构造器和便利构造器
Swift5.1—指定构造器和便利构造器
7 0
Android 开发规范(转载 Blankj 作品)
摘要 • 1 前言 • 2 AS 规范 • 3 命名规范 • 4 代码样式规范 • 5 资源文件规范 • 6 版本统一规范 • 7 第三方库规范 • 8 注释规范 • 9 测试规范 • 10 其他的一些规范 1 前言
5 0
【React】将 useReducer 应用于 Web Worker,擦出奇妙的火花
有这么一个场景,当加载一个网页时,它突然变得无响应,直到所有的资源完全加载完毕才响应。但是,当资源加载时,用户可能无法执行页面上的某些功能,比如单击、选择或拖动元素。这个时候你可能会想到使用 Web workers帮助我们解决这个问题。
3 0
consul技术分享
上一章《注册中心Eureka》我们介绍了注册中心Eureka,相必大家都对注册中心都有了一定的认识了,在Eureka停止维护之后,Consul就成了其替换方案之一,让我们一起来走进Consul的世界吧!
3 0
zookeeper技术分享
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZooKeeper包含一个简单的原语集,提供Java和C的接口。 ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_home\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
4 0
4269
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载