performance - 蜂巢分析查询需要很多时间
问题描述
为了加快对大表的 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/Configuration+Properties#ConfigurationProperties-Statistics
推荐阅读
- angular - Angular Nebular 样式不适用于 NbChatComponent
- php - 为什么我可以用不同的名称扩展这个类?
- sql - SQL 语句的返回计数
- python - 高级索引 - 管理越界行为
- java - 无法在 java 中解析 DatatypeConverter 类
- android - 在android中同时运行两个不同的线程
- apache - Traefik - 获取用户 IP
- python - 如何从 csv 文件中获取 Python 中 x 轴上的所有数据
- vb.net - 更改 DataGridViewRow 的轮廓
- c# - Unity C# System.Diagnostics