为了加速对大型表的ETL查询,我们在晚上对这些表和日期列运行许多分析查询。但这些分析查询列需要大量的内存和时间。我们是 …
如果使用insert overwrite加载表,则可以通过设置自动收集统计信息 hive.stats.autogather=true 在插入覆盖查询期间。
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 提升并行性。
hive.stats.gather.num.threads
在此处查看完整的统计设置列表: https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-Statistics