The StopQueryExecutionExample
runs an example query, immediately stops
the query, and checks the status of the query to ensure that it was canceled.
package aws.example.athena;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.athena.AthenaClient;
import software.amazon.awssdk.services.athena.model.StopQueryExecutionRequest;
import software.amazon.awssdk.services.athena.model.GetQueryExecutionRequest;
import software.amazon.awssdk.services.athena.model.GetQueryExecutionResponse;
import software.amazon.awssdk.services.athena.model.QueryExecutionState;
import software.amazon.awssdk.services.athena.model.AthenaException;
import software.amazon.awssdk.services.athena.model.QueryExecutionContext;
import software.amazon.awssdk.services.athena.model.ResultConfiguration;
import software.amazon.awssdk.services.athena.model.StartQueryExecutionRequest;
import software.amazon.awssdk.services.athena.model.StartQueryExecutionResponse;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class StopQueryExecutionExample {
public static void main(String[] args) {
AthenaClient athenaClient = AthenaClient.builder()
.region(Region.US_WEST_2)
.build();
String sampleQueryExecutionId = submitAthenaQuery(athenaClient);
stopAthenaQuery(athenaClient, sampleQueryExecutionId);
athenaClient.close();
}
public static void stopAthenaQuery(AthenaClient athenaClient, String sampleQueryExecutionId) {
try {
StopQueryExecutionRequest stopQueryExecutionRequest = StopQueryExecutionRequest.builder()
.queryExecutionId(sampleQueryExecutionId)
.build();
athenaClient.stopQueryExecution(stopQueryExecutionRequest);
GetQueryExecutionRequest getQueryExecutionRequest = GetQueryExecutionRequest.builder()
.queryExecutionId(sampleQueryExecutionId)
.build();
GetQueryExecutionResponse getQueryExecutionResponse = athenaClient
.getQueryExecution(getQueryExecutionRequest);
if (getQueryExecutionResponse.queryExecution()
.status()
.state()
.equals(QueryExecutionState.CANCELLED)) {
System.out.println("The Amazon Athena query has been cancelled!");
}
} catch (AthenaException e) {
e.printStackTrace();
System.exit(1);
}
}
// Submits an example query and returns a query execution Id value
public static String submitAthenaQuery(AthenaClient athenaClient) {
try {
QueryExecutionContext queryExecutionContext = QueryExecutionContext.builder()
.database(ExampleConstants.ATHENA_DEFAULT_DATABASE)
.build();
ResultConfiguration resultConfiguration = ResultConfiguration.builder()
.outputLocation(ExampleConstants.ATHENA_OUTPUT_BUCKET)
.build();
StartQueryExecutionRequest startQueryExecutionRequest = StartQueryExecutionRequest.builder()
.queryExecutionContext(queryExecutionContext)
.queryString(ExampleConstants.ATHENA_SAMPLE_QUERY)
.resultConfiguration(resultConfiguration).build();
StartQueryExecutionResponse startQueryExecutionResponse = athenaClient
.startQueryExecution(startQueryExecutionRequest);
return startQueryExecutionResponse.queryExecutionId();
} catch (AthenaException e) {
e.printStackTrace();
System.exit(1);
}
return null;
}
}