hive1.0 与hive3.0 区别
时间: 2023-10-24 09:01:26 浏览: 250
Hive 3.0相对于Hive 1.0引入了一些重大变化和新功能,以下是Hive 1.0和Hive 3.0之间的一些主要区别:
1. 执行引擎:Hive 1.0使用的是MapReduce作为默认的执行引擎,而Hive 3.0引入了新的执行引擎,称为Hive LLAP(Low Latency Analytical Processing)。Hive LLAP可以提供更低的查询延迟和更高的并发性能。
2. ACID事务支持:Hive 3.0引入了ACID(Atomicity, Consistency, Isolation, Durability)事务支持。意味着可以在Hive中执行原子性的事务操作,包括插入、更新和删除操作。
3. 命名空间(Namespace)支持:Hive 3.0引入了命名空间的概念,可以更好地组织和管理表、视图等对象。命名空间可以帮助避免名称冲突,并提供更好的隔离性。
4. 分区表语法变更:Hive 3.0中推荐使用`PARTITIONED BY`关键字来定义分区列,而不再使用`CLUSTERED BY`和`SORTED BY`。这个改变可以提供更灵活和简化的分区表语法。
5. 存储格式变更:Hive 3.0默认使用ORC格式作为存储格式,而Hive 1.0默认使用TEXTFILE格式。ORC格式在压缩和查询性能方面通常比TEXTFILE格式更优秀。
6. 优化器和执行计划:Hive 3.0引入了新的优化器和执行计划,可以提供更好的查询性能和优化。
7. Hive-on-Spark支持:Hive 3.0引入了对Spark的原生支持,称为Hive-on-Spark。这使得Hive可以在Spark上运行查询,从而提供更快的查询速度和更好的资源管理。
总体而言,Hive 3.0相对于Hive 1.0引入了更多的功能和改进,包括新的执行引擎、ACID事务支持、命名空间支持等。这些变化使得Hive 3.0在性能、功能和可扩展性方面有了显著的提升。同时,由于引入了一些新的语法和概念,迁移和调整现有的Hive 1.0代码可能需要一些工作。
阅读全文