Синхронный звонок от AWS Lambda до Афины - PullRequest
1 голос
/ 05 марта 2019

Я ищу данные в моих корзинах S3, используя Athena из моей AWS Lambda.Когда я посмотрел на некоторые примеры, звонок из Лямбды в Афину кажется асинхронным.Лямбда звонит Афине и ждет Афины, чтобы записать результаты в корзину S3.Есть ли способ напрямую получить ответ вместо необходимости записывать его в корзину S3?

1 Ответ

2 голосов
/ 06 марта 2019

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

Однако нет необходимости читать ответ из S3, есть также вызов API GetQueryResults, который возвращает результат вместе с информацией о типе.Если в ответе менее 1000 строк или производительность не является главным приоритетом, это лучший способ получить результаты, чем чтение CSV-файла с S3.

Если вы используете Athena из Lambda, я предлагаюсмотреть на шаговые функции.Если ваши запросы Athena никогда не выполняются дольше нескольких секунд, вы можете сэкономить много денег, создав простой конечный автомат, который выполняет запрос.Вы можете найти хороший проект в проекте примера задания по опросу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...