Вы можете посмотреть на Cloudyr Project .У них есть пакет , который обрабатывает создание запросов на подпись для API AWS.Затем вы можете запустить запрос, опрашивать AWS до его завершения (используя QueryExecutionID) и использовать aws.s3 для загрузки набора результатов.
Вы также можете использовать system () , чтобы использовать AWS CLI для выполнения запроса, ожидания результатов и загрузки результатов.
Например: Вы можете выполнить следующие команды в командной строке, чтобы получить результаты запроса.
$ aws athena start-query-execution --query-string "select count(*) from test_null_unquoted" --execution-context Database=stackoverflow --result-configuration OutputLocation=s3://SOMEBUCKET/ --output text
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Как только вы получите query-execution-id
, вы можете проверить результаты.
$ aws athena get-query-execution --query-execution-id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --output text
QUERYEXECUTION select count(*) from test_null_unquoted XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
QUERYEXECUTIONCONTEXT stackoverflow
RESULTCONFIGURATION s3://SOMEBUCKET/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.csv
STATISTICS 104 1403
STATUS 1528809056.658 SUCCEEDED 1528809054.945
После успешного выполнения запросаВы можете загрузить данные.
$ aws s3 cp s3://stack-exchange/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.csv
Редактировать: Вы даже можете превратить эти команды в один слой (пример Bash здесь), но яуверен, что вы можете сделать то же самое в powershell.
$ eid=`aws athena start-query-execution --query-string "select count(*) from test_null_unquoted" --query-execution-context Database=SOMEDATABASE--result-configuration OutputLocation=s3://SOMEBUCKET/ --output text --output text` && until aws athena get-query-execution --query-execution-id=$eid --output text | grep "SUCCEEDE
D"; do sleep 10 | echo "waiting..."; done && aws s3 cp s3://SOMEBUCKET/$eid.csv . && unset eid