GetQueryResults
Streams the results of a single query execution specified by
QueryExecutionId from the Athena query results location in
Amazon S3. For more information, see Working with query results, recent queries, and
output files in the Amazon Athena User Guide.
This request does not execute the query but returns results. Use StartQueryExecution to run a query.
To stream query results successfully, the IAM principal with permission to call
GetQueryResults also must have permissions to the Amazon S3
GetObject action for the Athena query results location.
Important
IAM principals with permission to the Amazon S3
GetObject action for the query results location are able to retrieve
query results from Amazon S3 even if permission to the
GetQueryResults action is denied. To restrict user or role access,
ensure that Amazon S3 permissions to the Athena query location
are denied.
Request Syntax
{
"MaxResults": number,
"NextToken": "string",
"QueryExecutionId": "string",
"QueryResultType": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- MaxResults
-
The maximum number of results (rows) to return in this request.
Type: Integer
Valid Range: Minimum value of 1. Maximum value of 1000.
Required: No
- NextToken
-
A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the
NextTokenfrom the response object of the previous page call.Type: String
Length Constraints: Minimum length of 1. Maximum length of 1024.
Required: No
- QueryExecutionId
-
The unique ID of the query execution.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 128.
Pattern:
\S+Required: Yes
- QueryResultType
-
When you set this to
DATA_ROWSor empty,GetQueryResultsreturns the query results in rows. If set toDATA_MANIFEST, it returns the manifest file in rows. Only the query typesCREATE TABLE AS SELECT,UNLOAD, andINSERTcan generate a manifest file. If you useDATA_MANIFESTfor other query types, the query will fail.Type: String
Valid Values:
DATA_MANIFEST | DATA_ROWSRequired: No
Response Syntax
{
"NextToken": "string",
"ResultSet": {
"ResultSetMetadata": {
"ColumnInfo": [
{
"CaseSensitive": boolean,
"CatalogName": "string",
"Label": "string",
"Name": "string",
"Nullable": "string",
"Precision": number,
"Scale": number,
"SchemaName": "string",
"TableName": "string",
"Type": "string"
}
]
},
"Rows": [
{
"Data": [
{
"VarCharValue": "string"
}
]
}
]
},
"UpdateCount": number
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- NextToken
-
A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the
NextTokenfrom the response object of the previous page call.Type: String
Length Constraints: Minimum length of 1. Maximum length of 1024.
- ResultSet
-
The results of the query execution.
Type: ResultSet object
- UpdateCount
-
The number of rows inserted with a
CREATE TABLE AS SELECT,INSERT INTO, orUPDATEstatement.Type: Long
Errors
For information about the errors that are common to all actions, see Common Errors.
- InternalServerException
-
Indicates a platform issue, which may be due to a transient condition or outage.
HTTP Status Code: 500
- InvalidRequestException
-
Indicates that something is wrong with the input to the request. For example, a required parameter may be missing or out of range.
- AthenaErrorCode
-
The error code returned when the query execution failed to process, or when the processing request for the named query failed.
HTTP Status Code: 400
- TooManyRequestsException
-
Indicates that the request was throttled.
- Reason
-
The reason for the query throttling, for example, when it exceeds the concurrent query limit.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: