在像 MySQL 这样的 RDMS 中,有数据库,Hive 上也有数据库吗?正如我在手册上阅读的那样,hive 只有表,我对此有点困惑..
RDBMS 和 Hive 的不同概念是什么?
之前的Tks
在像 MySQL 这样的 RDMS 中,有数据库,Hive 上也有数据库吗?正如我在手册上阅读的那样,hive 只有表,我对此有点困惑..
RDBMS 和 Hive 的不同概念是什么?
之前的Tks
RDBMs 数据库和 Hive 之间的主要区别在于专业化。虽然 MySQL 是适用于事务处理 (OLTP) 和分析 (OLAP) 的通用数据库,但 Hive 仅用于分析。从技术上讲,主要区别在于缺乏更新/删除
功能。只能添加和选择数据。同时,Hive 能够处理 MySQL 或其他传统 RDBMS 无法处理的数据量(预算不足)。
MPP(大规模并行处理)数据库的功能最接近 Hive - 虽然它们具有完整的 SQL 支持,但它们可以扩展到数百台计算机。另一个严重的不同 - 是查询语言。
Hive 即使在 select 中也不支持完整的 SQL,因为它的实现。在我看来,主要区别在于除相等之外的任何条件都没有加入。Hive 查询语言 sintax 也有点不同,因此您无法将报告生成软件直接连接到 Hive。
基本上,hive 是一种基于 MapReduce 构建的类似 sql 的脚本语言。当您发出命令时,命令会被解释并在分布式系统上运行。由于要处理的文件是平面文件,因此相当于在 Hadoop 中运行等效代码并收集数据。整个流程比使用 Mysql 时要慢得多。
Hive 与传统数据库 Hive --> 读取模式 - 它在加载数据时不验证模式 传统数据库 ---> 写入模式 - 表模式在数据加载时强制执行,即如果正在加载的数据没有在这种情况下符合模式,它将被拒绝
Hive --> 它很容易以低成本扩展
传统数据库 ---> 扩展性不大,扩展成本高。
Hive -->它基于hadoop表示法,即一次写入,多次读取
传统数据库--->在传统数据库中,我们可以多次读取和写入Hive -->在Hive传统数据库中无法进行记录级别更新
--- > 记录级更新、插入和删除、事务和索引是可能的
Hive --> OLTP (On-line Transaction Processing) 在 Hive 中尚不支持,但支持 OLAP (On-line Analytical Processing) 传统数据库 ---> OLTP (On-line Transaction Processing) 和 OLAP (On-line RDBMS 支持分析处理)。
否则请检查以下网址
https://sensaran.wordpress.com/2016/01/30/comparison-with-hive-with-traditional-database/
这不是对原始问题的完全回应,但它似乎超过了最大评论大小 47 个字符。
当您使用使用 HDFS 和 Hive 的 OLAP 数据仓库时,您并没有完全禁止更新事实数据。您可以像许多优秀的基于 RDBS 的数据仓库一样,通过在阶段和仓库之间交换分区来做到这一点。Hive 中的表分区被实现为 HDFS 目录,因此交换分区(几乎)是即时的:这是重命名 HDFS 目录所需的时间。好吧,你必须直接调用 HDFS,绕过 Hive 接口,你可能会直接使用 MapReduce 来维护阶段,但在我工作的公司开发的数据仓库中,它被证明是一个好方法。
Hive 是在 Facebook 发明的,它就像 Sql 一样,但几乎不支持内部查询。它允许您使用所有类型的联接,Sql 中的组函数还提供用户定义函数(UDF),可以用 Java 或任何其他语言编写,并且可以在 Hive 中使用。
Hive 主要用于数据量大的情况下,以便进行分区或集群,它一般不用于单行插入或更新,就像我们在 Sql 中所做的那样。
关于 Hive 的一个很好的参考以及它与传统数据库的区别可以Hive- A SQL like database over Hadoop
在我的博客上的帖子中阅读:Hadoop、HDFS、Map-Reduce 和 Hive