跳至内容

如何解决 Athena 中的 4xx、5xx、权限和配额错误?

2 分钟阅读
0

我的 Amazon Athena 查询返回了 4xx、5xx、权限或配额错误,我想解决此问题。

解决方法

对于收到的错误消息,请按照以下故障排除步骤进行操作。

亚马逊 S3 错误代码

404 NoSuchKey 错误代码

“Status Code: 404; Error Code: NoSuchKey : Error when file gets deleted during running query(状态代码:404;错误代码:NoSuchKey:运行查询期间删除文件时出错)”

如果请求的对象在 Amazon Simple Storage Service (Amazon S3) 存储桶中不可用,则可能会出现此错误。要解决此问题,请参阅如何对来自 Amazon S3 的 404“NoSuchKey”错误进行故障排除?

503 SlowDown 错误代码

“com.amazonaws.services.s3.model.AmazonS3Exception: Please reduce your request rate.(Service: Amazon S3; Status Code: 503; Error Code: SlowDown;(com.amazonaws.services.s3.model.AmazonS3Exception:请降低您的请求速率。(服务:Amazon S3;状态代码:503;错误代码:SlowDown;)”

当您查询包含大量对象的 S3 存储桶前缀并超过每秒每个前缀配额时,可能会出现此错误。要解决此问题,请参阅如何解决“HIVE_CANNOT_OPEN_SPLIT”Athena 查询错误?

有关 5xx 错误的详细信息,请参阅如何对来自 Amazon S3 的 HTTP 500 或 503 错误进行故障排除?

AWS Glue Catalog 权限错误

“Insufficient permissions to execute the query.User: arn:aws:iam:: 1111222233334444:user/athena_user is not authorized to perform: glue:GetTable on resource: arn:aws:glue:us-east-1:1111222233334444:database/doc_example_database with an explicit deny Query Id: example_query_ID(权限不足,无法执行查询。用户 arn:aws:iam::1111222233334444:user/athena_user 无权对资源 arn:aws:glue:us-east-1:1111222233334444:database/doc_example_database 执行 glue:GetTable 操作,因为存在显式拒绝查询 ID example_query_ID)”

如果运行查询的 AWS Identity and Access Management (IAM) 身份没有所需的权限,则可能会出现此错误。确保 IAM 用户或角色拥有访问 AWS Glue 资源所需的权限。

要解决此问题,请参阅为什么我在 Amazon Athena 中运行查询时收到“Access Denied(访问被拒绝)”错误?

Lake Formation 权限错误

“Insufficient Lake Formation permission(s) on default (Service: AmazonDataCatalog; Status Code: 400; Error Code: AccessDeniedException; Request ID: c0057445-f644-4111-a793-1d2cd8bc9ac7; Proxy: null)(默认情况下 Lake Formation 权限不足(服务:AmazonDataCatalog;状态代码:400;错误代码:AccessDeniedException;请求 ID:c0057445-f644-4111-a793-1d2cd8bc9ac7;代理:null))”

当满足下列条件时,您会收到此错误:

  • IAM 用户或角色尝试在 Amazon Lake Formation 注册的 Amazon S3 存储桶中创建或修改 Data Catalog 资源。
  • IAM 用户或角色没有 Lake Formation 提供的相应数据位置权限。

要解决此问题,您必须向用于创建数据库或表的 IAM 用户或角色授予适当的数据位置权限

服务配额错误

“ClientError: An error occurred (ThrottlingException) when calling the API_name operation: Rate exceeded.(ClientError:调用 API_name 操作时出错 (ThrottlingException):超出速率。)”

当您超出 Athena API 调用的容量爆增或每秒调用次数的默认配额时,就会出现此错误。

**注意:**您可以使用容量预留来控制 Athena 查询的并发容量。有关详细信息,请参阅管理查询处理能力

“queryString failed to satisfy constraint: Member must have length less than or equal to 262144(queryString 未能满足约束条件:成员的长度必须小于或等于 262144)”

出现此错误是因为 Athena 中的最大查询字符串长度为 262,144 字节,并且您超过了最大长度。您无法调整最大查询字符串长度配额。要解决此错误,请将长查询拆分为较小的查询。有关详细信息,请参阅如何在 Amazon Athena 中增加最大查询字符串长度?

“Athena Error No: 132, HTTP Response Code: 400, Exception Name: TooManyRequestsException, Error Message: You have exceeded the limit for the number of queries you can run concurrently.Please reduce the number of concurrent queries submitted by this account.(Athena 错误编号:132,HTTP 响应代码:400,异常名称:TooManyRequestsException,错误消息:您已超出可以同时运行的查询数量限制。)”

如果正在运行的查询和排队的查询总和超过您的 DML 或 DDL 查询配额,则会出现此错误。要解决此错误,请参阅如何解决 Amazon Athena 中的 TooManyRequestsException 错误?

相关信息

常见错误

在 Athena 中进行故障排除

AWS 官方已更新 2 年前