雅典娜:按比例因子查询耗尽的资源



我正在运行如下查询:

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

怎么了?或者如何优化它?它给了我

在此比例因子下查询耗尽的资源

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

我从雅典娜开始就一直面临这个问题,问题是ORDER BY子句。Athena 只是一个安装了 Hive 和 prestodb 的 EMR 集群。您面临的问题是:即使您的查询分布在 X 个节点上,排序阶段也必须仅由单个节点(在本例中为主节点)完成。因此,最后,您可以订购与内存具有主节点一样多的数据。

可以通过减少查询返回的数据量来测试它,这可能会减少时间范围。

相关内容

  • 没有找到相关文章

最新更新