配置单元分析查询花费大量时间
hive analyze query taking lot of time
为了加快对大型表的 ETL 查询,我们在晚上对这些表和日期列进行了 运行 多次 analyze
查询。
但是这些 analyze
列查询会占用大量内存和时间。
我们正在使用 tez。
有什么方法可以像某些设置命令一样优化 analyze
查询。
如果您使用插入覆盖加载 table 秒,则可以在插入覆盖查询期间通过设置 hive.stats.autogather=true
自动收集统计信息。
如果 table 已分区并且分区正在增量加载,那么您只能分析最后的分区。
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/Configuration+Properties#ConfigurationProperties-Statistics
为了加快对大型表的 ETL 查询,我们在晚上对这些表和日期列进行了 运行 多次 analyze
查询。
但是这些 analyze
列查询会占用大量内存和时间。
我们正在使用 tez。
有什么方法可以像某些设置命令一样优化 analyze
查询。
如果您使用插入覆盖加载 table 秒,则可以在插入覆盖查询期间通过设置 hive.stats.autogather=true
自动收集统计信息。
如果 table 已分区并且分区正在增量加载,那么您只能分析最后的分区。
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/Configuration+Properties#ConfigurationProperties-Statistics