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