Афина: запрос исчерпанных ресурсов на коэффициент масштабирования - PullRequest
0 голосов
/ 26 января 2019

Я выполняю запрос вроде:

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

Что с ним не так?Или как я могу оптимизировать это?Это дает мне

Запрос исчерпанных ресурсов с этим масштабным коэффициентом

У меня есть таблица рейсов, и я хочу запросить рейсы внутри определенной страны

1 Ответ

0 голосов
/ 26 января 2019

Я сталкиваюсь с этой проблемой с самого начала Афины, проблема заключается в предложении ORDER BY. Athena - это просто кластер EMR с установленными кустами и prestodb. Проблема, с которой вы сталкиваетесь: даже если ваш запрос распределен по X числам узлов, этап упорядочения должен выполняться только одним узлом, в данном случае главным узлом. Таким образом, в конце вы можете заказать столько данных, сколько памяти имеет главный узел.

Вы можете проверить это, уменьшив объем данных, возвращаемых запросом, возможно, сократив временной диапазон. Я надеюсь, что это помогает:)

...