sql - 雅典娜 : Query exhausted resources at scale factor

标签 sql amazon-web-services query-optimization amazon-athena presto

我正在运行如下查询:

SELECT f.*, p.countryName, p.airportName, a.name AS agentName
FROM (
    SELECT 
        f.outboundlegid, 
        f.inboundlegid,
        f.querydatetime,
        cast(f.agent as bigint) as agent,
        cast(f.querydestinationplace as bigint) as querydestinationplace,
        f.queryoutbounddate,
        f.queryinbounddate,
        f.quoteageinminutes,
        f.price
    FROM flights f
    WHERE querydatetime >= '2018-01-02'
    AND querydatetime <= '2019-01-10'
) f
INNER JOIN (
  SELECT airportId, airportName, countryName
  FROM airports
  WHERE countryName IN ('Philippines', 'Indonesia', 'Malaysia', 'Hong Kong', 'Thailand', 'Vietnam')
) p
ON f.querydestinationplace = p.airportId
INNER JOIN agents a
ON f.agent = a.id
ORDER BY f.outboundlegid, f.inboundlegid, f.agent, querydatetime DESC

它出什么问题了?或者我该如何优化它?它给了我

Query exhausted resources at this scale factor



我有一个航类表,我想查询特定国家/地区内的航类

最佳答案

我从 Athena 开始就一直面临这个问题,问题是 ORDER BY条款。 Athena 只是一个安装了 hive 和 prestodb 的 EMR 集群。您面临的问题是:即使您的查询分布在 X 个节点上,排序阶段也必须由单个节点完成,在这种情况下是主节点。因此,最后,您可以订购与内存拥有主节点一样多的数据。
您可以通过减少查询返回的数据量来测试它,可能会减少时间范围。

关于sql - 雅典娜 : Query exhausted resources at scale factor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54375913/

相关文章:

amazon-web-services - 亚马逊 aws sns,短信选项不可用?

amazon-web-services - 在 AWS Parallelcluster 安装后脚本中访问其他账户的 s3 存储桶

sql - 优化大型子表的日期查询 : GiST or GIN?

sql-server-2005 - 在查询中两次使用相同的函数 (SQL Server)

sql - 地址解析 - 楼层#

sql - 在存储过程中出现 if/else 错误

sql - bWAPP- SQL 注入(inject) Hack 显示白屏?

java - Amazon Lambda Java 函数将 png 返回到 API 网关

sql - 从包含 max(column2) 的记录更新 column1 值的最佳方法是什么?

MySQL内连接查询多表