Hive优化的核心思想:
减少数据量(例如分区等操作)
避免数据倾斜(例如加参数,打散key值等的操作)
避免全表扫描(where过滤,特定分区等的操作,和减少数据量目标一致)
减少job数(相同的on条件放在一起作为一个任务)
下面就日常工作总结出的一些基础优化点,从以下几方面分开阐述
代码层面:
- 考虑使用中间表进行存储,避免子查询太复杂且数据量太大。
- 大小表的join 不过现在hive内部进行了优化,自动视小表为驱动表
- 分区/分桶表的优化,避免全表扫描,提升查询效率
Hive优化的核心思想:
减少数据量(例如分区等操作)
避免数据倾斜(例如加参数,打散key值等的操作)
避免全表扫描(where过滤,特定分区等的操作,和减少数据量目标一致)
减少job数(相同的on条件放在一起作为一个任务)
下面就日常工作总结出的一些基础优化点,从以下几方面分开阐述
代码层面: