为了加快大桌子上的etl查询,我们在这些表和晚上在这些表上运行许多analyze
查询。但是这些analyze
在列上的查询需要大量的内存和时间。我们正在使用tez。是否有任何方法可以像某些设置命令一样优化analyze
查询。
如果使用插入覆盖加载表,则可以通过在插入覆盖查询期间设置hive.stats.autogather=true
自动收集统计信息。
如果表格分区并逐步加载分区,则可以仅分析最后分区。
ANALYZE TABLE [db_name.]tablename [PARTITION(partcol1[=val1], partcol2[=val2], ...)]
请参阅此处:https://cwiki.apache.org/confluence/display/hive/statsdev
对于ORC文件,可以将hive.stats.gather.num.threads
指定到递增。
请参阅此处的统计设置的完整列表:https://cwiki.apache.org/confluence/display/hive/hive/configuration properties#configurationproperties-statistics