【Hive】Hive 和数据库比较

第八章 Hive 和数据库比较

 Hive是一个由 Facebook 开源用于解决海量结构化日志的数据统计工具, 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并 提供类 SQL 查询功能。其本质是将 HQL 转化成 MapReduce 程序。

 那么Hive和数据库有什么异同呢?其实其主要差别在于两者适用情形的不同:Hive适用于大规模数据,而数据库一般常用于小数据集。这一点是其所有异同的根本原因。

1.查询语言

 由于 SQL 被广泛的应用在数据仓库中,因此,专门针对 Hive 的特性设计了类 SQL 的查 询语言 HQL。

2.数据更新

 由于 Hive 是针对数据仓库应用设计的,而数据仓库的内容是读多写少的。因此,Hive 中 不建议对数据的改写,所有的数据都是在加载的时候确定好的(如果一定要修改,那么需要先将数据下载到本地,完成修改后再上传将原来的数据覆盖,这一过程耗时耗力,因此一般极少进行修改更新)。
 而数据库中的数据通常是需 要经常进行增删改查的,因此可以使用 INSERT INTO … VALUES 添加数据,使用 UPDATE … SET 修 改数据。

3. 执行延迟

 Hive 在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导 致 Hive 执行延迟高的因素是 MapReduce 框架。由于 MapReduce 本身具有较高的延迟,因此 在利用 MapReduce 执行 Hive 查询时,也会有较高的延迟。
 相对的,数据库的执行延迟较低。 即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive 的并行计算显然能体现出优势。

4.数据规模

 由于 Hive 建立在集群上并可以利用 MapReduce 进行并行计算,因此可以支持很大规模 的数据;对应的,数据库可以支持的数据规模较小。

猜你喜欢

转载自blog.csdn.net/m0_46568930/article/details/113697611