我正试图在Jupyter笔记本中执行AWS Athena查询,并使用Boto3检索结果。
我第一次运行这个来执行我的查询:
response1 = client.start_query_execution(
QueryString= "SELECT date from my data_table LIMIT 1;",
QueryExecutionContext={
'Database': 'my_database',
'Catalog': 'AwsDataCatalog'
},
ResultConfiguration={
'OutputLocation': 's3://XXX/YYY/'
}
)
响应的结果输出为:
{'QueryExecutionId': 'abcd123456',
'ResponseMetadata': {'RequestId': 'efgh123456',
'HTTPStatusCode': 200,
'HTTPHeaders': {'content-type': 'application/x-amz-json-1.1',
'date': 'Mon, 05 Jul 2021 06:38:15 GMT',
'x-amzn-requestid': 'ijklmn123456',
'content-length': '59',
'connection': 'keep-alive'},
'RetryAttempts': 0}}
接下来,我想使用上面获得的QueryExecutionId"abcd123456"检索结果,如下所示:
response2 = client.get_query_results(
QueryExecutionId = 'abcd123456',
MaxResults = 123
)
然而,它给我带来了一个错误:
InvalidRequestException: An error occurred (InvalidRequestException) when calling the GetQueryResults operation: Query did not finish successfully. Final query state: FAILED
我想知道,当start_query_execution的HTTPStatusCode为200时,为什么它说最终查询状态为"FAILED"。我在调用GetQueryResults时确实引用了此链接(InvalidRequestException(。。。。。从Lambda Python查询Athena。。。。无法读取结果,但我无法解决问题。
如果有人能帮我,我将不胜感激!
当我更改s3输出位置时,我可以运行查询并获得结果。我想我对以前使用的s3 bucket路径的权限是有限的。