RDBMS和Hive有什么区别?

时间:2011-08-02 21:47:59

标签: sql hadoop data-warehouse hive

在像MySQL这样的RDMS数据库中,Hive上是否有数据库?正如我在手册上看到的那样,hive只有表,我有点迷惑它..

什么是RDBMS和Hive的不同概念?

之前的

6 个答案:

答案 0 :(得分:10)

RDBM数据库和Hive之间的主要区别在于专业化。虽然MySQL是适用于事务处理(OLTP)和分析(OLAP)的通用数据库,但Hive仅为分析而构建。从技术上讲,主要区别在于缺乏更新/删除功能。只能添加和选择数据。与此同时,Hive能够处理MySQL或其他传统RDBMS无法处理的数据量(在害羞的预算中)。
MPP(大规模并行处理)数据库通过其功能最接近Hive - 虽然它们具有完整的SQL支持,但它们可以扩展到数百台计算机。 另一个严重的不同 - 是查询语言。
由于它的实现,Hive甚至在select中也不支持完整的SQL。在我看来,主要区别在于除了相等之外的任何条件都缺乏连接。 Hive查询语言sintax也有点不同,因此您无法将报告生成软件连接到Hive。

答案 1 :(得分:6)

基本上,hive是一种基于MapReduce构建的类似sql的脚本语言。发出命令时,将解释命令并在分布式系统上运行。由于被压缩的文件是扁平的,它相当于在Hadoop中运行等效代码并收集数据。整个流程比使用Mysql时要慢得多。

答案 2 :(得分:2)

Hive vs传统数据库 蜂巢 - > READ上的模式 - 它在加载数据时不验证模式 传统数据库---> WRITE上的模式 - 在数据加载时强制执行表模式,即如果正在加载的数据在模式上符合,那么它将被拒绝

Hive - >它可以很容易地以低成本扩展 传统数据库--->没有太多可扩展,成本高的扩展。

Hive - >它基于hadoop表示法,即一次写入并多次读取
传统数据库--->在传统的数据库中,我们可以多次读写 Hive - > Hive中无法记录级别更新 传统数据库--->记录级别更新,插入和 删除,交易和索引是可能的

Hive - > Hive尚不支持OLTP(在线事务处理),但它支持的OLAP(在线分析处理) 传统数据库---> RDBMS支持OLTP(在线事务处理)和OLAP(在线分析处理)。

或者请查看以下网址

https://sensaran.wordpress.com/2016/01/30/comparison-with-hive-with-traditional-database/

答案 3 :(得分:1)

这不是对原始问题的回应,但似乎超过最大评论大小47个字符。

当您使用HDFS和Hive使用OLAP数据仓库时,您不会被禁止更新事实数据。您可以通过与许多基于RDBS的数据仓库相同的方式来执行此操作 - 通过在阶段和仓库之间交换分区。 Hive中的表分区实现为HDFS目录,因此交换分区(几乎)是瞬时的:它是重命名HDFS目录所需的时间。好吧,你必须直接调用HDFS,绕过Hive接口,你可能会使用直接的MapReduce维护阶段,但在我工作的公司开发的数据仓库中,它被证明是一个很好的方法。

答案 4 :(得分:1)

Hive是在Facebook发明的,就像Sql一样,但对内部查询几乎没有支持。它允许您使用所有类型的连接,组函数,如在Sql中也提供用户定义函数(UDF),可以用Java或任何其他语言编写,并可以在Hive中使用。

Hive主要在数据较大时使用,以便可以完成分区或群集,并且它通常不像我们在Sql中那样用于单行插入或更新。

答案 5 :(得分:0)

关于Hive的一个很好的参考以及它与传统数据库的不同之处可以在我的博客Hive- A SQL like database over Hadoop上的帖子{{1}}上阅读:Hadoop,HDFS, Map-Reduce and Hive