前言
今天就来聊一下Hive 和 数据库之间到底有什么异同点!
相同点:
1)查询语言相似
不同点:
1)数据更新
hive 是针对数据仓库应用设计的,而数据仓库的内容是读多写少的。
因此,Hive中不建议对数据的修改的,所有的数据都是在加载的时候确定好的。而数据库中的数据通常是需要频繁进行修改的。
2)执行延迟
Hive在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致hive执行延迟高的因素是MR框架。由于MR本身具有较高的延迟,因此在利用MR执行hive查询时,也会有较高的延迟。相对的,数据库的执行延迟较低。当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,hive的并行计算显然能体现出优势。
3)数据规模
由于hive建立在集群上并可以利用MR进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。
注意:Hive降低执行延迟的方式
- Hive借助其他计算引擎,比如Spark等,会降低查询的执行延迟,但是和数据库响应相比,还是有一定差距!
- 还可以采用分区和分桶来避免全表扫描来提高查询效率。
本文探讨了Hive与数据库之间的相似点和不同点。相同点包括查询语言的相似性。不同点主要体现在数据更新、执行延迟和数据规模上。Hive适合读多写少的数据仓库应用,不支持频繁数据修改,执行延迟高,但能处理大规模数据。而数据库数据可频繁修改,执行延迟低,适合数据规模较小的情况。通过采用Spark等计算引擎和分区、分桶等技巧,Hive能改善执行延迟和查询效率。
464

被折叠的 条评论
为什么被折叠?



