ANALYZE TABLE hive_table PARTITION(partitioned_col) COMPUTE STATISTICS FOR COLUMNS;
启用cbo和统计信息自动收集:
set hive.cbo.enable=true;
set hive.stats.autogather=true;
使用这些设置可以使用统计信息启用cbo:
set hive.compute.query.using.stats=true;
set hive.stats.fetch.partition.stats=true;
set hive.stats.fetch.column.stats=true;
如果没有任何帮助,我建议应用这种方法快速查找最后一个分区:使用表位置的shell脚本解析最大分区键。下面的命令将打印所有表文件夹路径、排序、获取最新排序、获取最后一个子文件夹名称、解析分区文件夹名称和提取值。你只需要初始化 TABLE_DIR 变量和put the number of partition subfolder in the path :
last_partition=$(hadoop fs -ls $TABLE_DIR/* | awk '{ print $8 }' | sort -r | head -n1 | cut -d / -f [number of partition subfolder in the path here] | cut -d = -f 2
1条答案
按热度按时间xzv2uavs1#
每次更改数据时计算表统计信息。
启用cbo和统计信息自动收集:
使用这些设置可以使用统计信息启用cbo:
如果没有任何帮助,我建议应用这种方法快速查找最后一个分区:使用表位置的shell脚本解析最大分区键。下面的命令将打印所有表文件夹路径、排序、获取最新排序、获取最后一个子文件夹名称、解析分区文件夹名称和提取值。你只需要初始化
TABLE_DIR
变量和putthe number of partition subfolder in the path
:然后使用
$last_partition
变量传递给脚本作为