使用get_query_results时出现InvalidRequestException,尽管我之前运行start_q



我正试图在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路径的权限是有限的。

相关内容

最新更新