区别点 | Hive | 传统数据库 |
SQL | SQL-92标准 | |
数据存储位置 | 数据存储在Hdfs中 | 保存在块设备或本地文件系统 |
数据读取 | 读时模式:加载数据不会验证 | 写时模式:数据写入时检查 |
数据更新 | 默认不支持update、delete(需开启ACID特性) | 支持更新 |
执行 | 除本地任务外,默认通过MapReduce | 数据库自己的执行引擎 |
执行延迟 | 延迟高 | 延迟低,当数据规模大时优势不明显 |
可扩展性 | 扩展能力强 | 扩展能力有限 |
数据规模 | 支持大规模数据 | 支持数据量有限 |
Spark SQL和Hive到底什么关系?
Hive on Spark和SparkSQL的结构类似,只是SQL引擎不同,但是计算引擎都是Spark
以前都是使用hive来构建数据仓库,所以存在大量对hive所管理的数据查询的需求。而hive、shark(hive on spark)、sparkSQL都可以进行hive的数据查询。
- shark是使用了hive的sql语法解析器和优化器,修改了执行器(mapreduce改为spark了),使之后的物理执行过程是跑在spark上;
- 而sparkSQL是使用了自身的语法解析器、优化器和执行器,同时sparkSQL还扩展了接口,不单单支持hive数据的查询,可以进行多种数据源的数据查询。
参考: