Athena:按比例查询耗尽资源
Athena: Query exhausted resources at scale factor
我是运行这样的查询:
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
我有航班table,我想查询特定国家/地区内的航班
我从 Athena 开始就一直面临这个问题,问题是 ORDER BY
子句。 Athena 只是一个安装了 hive 和 prestodb 的 EMR 集群。您面临的问题是:即使您的查询分布在 X 个节点上,排序阶段也必须仅由一个节点(在本例中为主节点)完成。所以最后,你可以订购多少内存有主节点的数据。
您可以通过减少查询的数据量来测试它returns或者减少时间范围。
我是运行这样的查询:
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
我有航班table,我想查询特定国家/地区内的航班
我从 Athena 开始就一直面临这个问题,问题是 ORDER BY
子句。 Athena 只是一个安装了 hive 和 prestodb 的 EMR 集群。您面临的问题是:即使您的查询分布在 X 个节点上,排序阶段也必须仅由一个节点(在本例中为主节点)完成。所以最后,你可以订购多少内存有主节点的数据。
您可以通过减少查询的数据量来测试它returns或者减少时间范围。