sql - Hive 多个不同的查询运行缓慢?
问题描述
为什么下面的查询需要永远完成,而如果单独查询会在几秒钟内返回?
select count(*),count(distinct a), count(distinct b) from test.tablename;
但是,如果查询以下两个查询中的任何一个,它会在几秒钟内返回。例如
select count(*),count(distinct a) from test.tablename;
或者
select count(*),count(distinct b) from test.tablename;
有什么要加快的吗?已经对计算统计数据进行了分析。hive 配置大多是优化的。
更新:道歉。错过了问题中的计数。
解决方案
如果您没有太大的计数(太大的数组会导致 OOM),则可以使用另一种方法。size(collect_set())
会给你不同的计数。
select count(*), size(collect_set(a)), size(collect_set(b)) from test.tablename;
推荐阅读
- java - 如何使用 java sdk 在 azure data Lake gen1 中创建资源?
- google-cloud-platform - GCP MQL 查询:获取指标/分钟
- c# - 如何指定泛型类型参数以在 .NET6 中实现相等运算符?
- solidity - 声明错误:未找到标识符或标识符不唯一。--> 测试/4_Ballot_test.sol:66:9: | 66 | 请求存储请求 = requests[index]; | ^^^^^^^
- python - Python 谷歌驱动 API
- php - 如何使用 yii1.1 验证模型中的一个或另一个字段?
- sql - Oracle/SQL:深度,层次关系
- linkedin - 在 Share API 中扩展 Activity URN
- c# - 3 个布尔属性的 MVC 单选按钮
- ios - SwiftUI:错误的数组传递给子视图