Результаты запроса AWS boto3 Athena не сохраняются по локальному пути - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь выполнить простой запрос athena и пытаюсь сохранить результаты в локальном пути.

response = athena.start_query_execution(
    QueryString='select query',
    QueryExecutionContext={
        'Database': 'test'
    },
    ResultConfiguration={
        'OutputLocation': r'C:\Projects\Project0\'
    }

Но я получаю ошибку ниже.

botocore.errorfactory.InvalidRequestException: Произошла ошибка (InvalidRequestException) при вызове операции StartQueryExecution: outputLocation не является допустимым путем S3.

Возможно ли сохранить результаты в локальном пути?Я не смог найти какую-либо информацию в документации по boto3.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

В Афине результаты могут быть сохранены только в местоположении s3. Пожалуйста, обратитесь к OutputLocation , чтобы узнать больше о семантике. Если вы хотите получить этот результат в своей локальной системе, тогда вы можете перейти в местоположение s3, которое выпредоставить в качестве входных данных для вызова API start_query_execution и загрузить результат с консоли s3 или использовать команду aws s3 cp

0 голосов
/ 20 декабря 2018

ResultConfiguration не содержит результат вашего запроса.Вы должны сделать второй вызов, используя 'QueryExecutionId' и функцию get_query_results:

exe = athena.start_query_execution(
    QueryString='select query',
    QueryExecutionContext={
        'Database': 'test'
    },
    ResultConfiguration={
        'OutputLocation': 's3 location'
    }
result = athena.get_query_results(
    QueryExecutionId=exe['QueryExecutionId']
     )
...