Там нет.Афина всегда будет записывать результаты в S3 (даже с новым полуприватным «потоковым» API, который используется драйвером JDBC).Единственный способ узнать, когда запрос Athena завершен, это опрос с помощью вызова API GetQueryExecution
.Даже на первый взгляд синхронные API, такие как драйвер JDBC, используют этот метод внутренне.
Однако нет необходимости читать ответ из S3, есть также вызов API GetQueryResults
, который возвращает результат вместе с информацией о типе.Если в ответе менее 1000 строк или производительность не является главным приоритетом, это лучший способ получить результаты, чем чтение CSV-файла с S3.
Если вы используете Athena из Lambda, я предлагаюсмотреть на шаговые функции.Если ваши запросы Athena никогда не выполняются дольше нескольких секунд, вы можете сэкономить много денег, создав простой конечный автомат, который выполняет запрос.Вы можете найти хороший проект в проекте примера задания по опросу .