use of com.amazonaws.services.athena.model.StartQueryExecutionResult in project aws-doc-sdk-examples by awsdocs.
the class StartQueryExample method submitAthenaQuery.
/**
* Submits a sample query to Athena and returns the execution ID of the query.
*/
private static String submitAthenaQuery(AmazonAthena athenaClient) {
// The QueryExecutionContext allows us to set the Database.
QueryExecutionContext queryExecutionContext = new QueryExecutionContext().withDatabase(ExampleConstants.ATHENA_DEFAULT_DATABASE);
// The result configuration specifies where the results of the query should go in S3 and encryption options
ResultConfiguration resultConfiguration = new ResultConfiguration().withOutputLocation(ExampleConstants.ATHENA_OUTPUT_BUCKET);
// Create the StartQueryExecutionRequest to send to Athena which will start the query.
StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest().withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY).withQueryExecutionContext(queryExecutionContext).withResultConfiguration(resultConfiguration);
StartQueryExecutionResult startQueryExecutionResult = athenaClient.startQueryExecution(startQueryExecutionRequest);
return startQueryExecutionResult.getQueryExecutionId();
}
use of com.amazonaws.services.athena.model.StartQueryExecutionResult in project aws-doc-sdk-examples by awsdocs.
the class StopQueryExecutionExample method submitAthenaQuery.
/**
* Submits an example query and returns a query execution ID of a running query to stop.
*/
public static String submitAthenaQuery(AmazonAthena athenaClient) {
QueryExecutionContext queryExecutionContext = new QueryExecutionContext().withDatabase(ExampleConstants.ATHENA_DEFAULT_DATABASE);
ResultConfiguration resultConfiguration = new ResultConfiguration().withOutputLocation(ExampleConstants.ATHENA_OUTPUT_BUCKET);
StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest().withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY).withQueryExecutionContext(queryExecutionContext).withResultConfiguration(resultConfiguration);
StartQueryExecutionResult startQueryExecutionResult = athenaClient.startQueryExecution(startQueryExecutionRequest);
return startQueryExecutionResult.getQueryExecutionId();
}
use of com.amazonaws.services.athena.model.StartQueryExecutionResult in project cerberus by Nike-Inc.
the class AthenaService method addPartitionIfMissing.
public void addPartitionIfMissing(String region, String bucket, String year, String month, String day, String hour) {
String partition = String.format("year=%s/month=%s/day=%s/hour=%s", year, month, day, hour);
String table = String.format(TABLE_TEMPLATE, environmentName);
if (!partitions.contains(partition)) {
try {
String query = String.format("ALTER TABLE %s ADD PARTITION (year='%s', month='%s', day='%s', hour='%s') " + "LOCATION 's3://%s/audit-logs/partitioned/year=%s/month=%s/day=%s/hour=%s'", table, year, month, day, hour, bucket, year, month, day, hour);
AmazonAthena athena = athenaClientFactory.getClient(region);
StartQueryExecutionResult result = athena.startQueryExecution(new StartQueryExecutionRequest().withQueryString(query).withResultConfiguration(new ResultConfiguration().withOutputLocation(String.format("s3://%s/results/", bucket))));
log.debug("Started query: '{}' to add partition: '{}' to table: '{}'", result.getQueryExecutionId(), partition, table);
partitions.add(partition);
} catch (AmazonClientException e) {
log.error("Failed to start add partition query for year={}/month={}/day={}/hour={}", year, month, day, hour, e);
}
}
}
use of com.amazonaws.services.athena.model.StartQueryExecutionResult in project cerberus by Nike-Inc.
the class AthenaServiceTest method test_that_addPartition_works.
@Test
public void test_that_addPartition_works() {
String awsRegion = "us-west-2";
AmazonAthena athena = mock(AmazonAthena.class);
when(athenaClientFactory.getClient(awsRegion)).thenReturn(athena);
when(athena.startQueryExecution(Mockito.any())).thenReturn(new StartQueryExecutionResult().withQueryExecutionId("query-execution-id"));
athenaService.addPartitionIfMissing(awsRegion, "fake-bucket", "2018", "01", "29", "12");
verify(athenaClientFactory, times(1)).getClient(anyString());
assertEquals(1, partitions.size());
}
Aggregations