AWS Athena查询FAILED状态下的transient error判定规则是什么?
Athena FAILED状态错误类型的API判定方法
你可以通过调用Athena的GetQueryExecution API获取查询的详情信息,再通过返回参数中的固定字段做判定:
- 优先查看返回结构中
QueryExecutionStatus.AthenaError.Category的枚举值:- 若值为
TRANSIENT,属于可自动重试的瞬态错误,Athena会自动将查询状态切回QUEUED或RUNNING,无需手动干预 - 若值为
USER,属于用户侧非瞬态错误,常见场景包括SQL语法错误、权限不足、查询资源不存在、配额超限等,不会自动重试,需要修正问题后手动重试 - 若值为
SYSTEM,属于Athena侧非瞬态故障,同样不会自动重试,需要手动重试或等待服务恢复后再操作
- 若值为
- 若API返回结果中没有
AthenaError字段,可辅助判断QueryExecutionStatus.StateChangeReason的内容:如果包含Transient error、Internal service error等关键词,大概率为可自动重试的瞬态错误,该判断优先级低于AthenaError.Category的枚举值
另外你也可以结合状态停留时间辅助判断:瞬态错误导致的FAILED状态一般停留不超过10秒,若查询在FAILED状态停留超过10秒,基本可判定为不可自动重试的非瞬态错误。
内容的提问来源于stack exchange,提问作者Ada
相关产品推荐
相关产品推荐

