从Athena查询执行ID中获取输出位置

时间:2019-06-15 11:32:41

标签: java aws-sdk amazon-athena

我具有某个雅典娜查询的查询执行ID。我想获取此查询的输出位置。我知道我可以使用来自java aws sdk的查询执行ID来获取结果。 我已经使用aws的凭证创建了名为AmazonAthena类的名为“ athenaClient”的雅典娜客户端对象。

GetQueryResultsRequest getQueryResultsRequest = new 
GetQueryResultsRequest().withExecutionId(execId);
GetQueryResultsResult getQueryResultsResult = 
athenaClient.getQueryResults(getQueryResultsRequest);

使用此getQueryResultsResult,我可以获取查询结果。 但是我想通过Athena查询执行ID获取输出位置。

2 个答案:

答案 0 :(得分:3)

我对Java SDK的了解还不深,但是可以通过getQueryExecution方法来检索结果的位置。

所以应该是这样的:

GetQueryExecutionResult result = athenaClient.getQueryExecution(GetQueryExecutionRequest().withExecutionId(execId));
QueryExecution exec = result.getQueryExecution();
ResultConfiguration config = exec.getResultConfiguration();

QueryExecution - AWS Java SDK

ResultConfiguration - AWS Java SDK

答案 1 :(得分:0)

嗨,我创建了一个简单的API SDK,您可以在

上找到

https://github.com/fulmicotone/aws-java-athena-helper

欢迎一切改进,谢谢

  MyAthena.Builder.standard(ATHENA_DEFAULT_DATABASE,ATHENA_OUTPUT_BUCKET)
 .build()
 .newQuery(ATHENA_SAMPLE_QUERY)
 .submit()
 .waitForQueryToComplete()
 .processResultRows(5, new Consumer<AthenaPageResults>() {
     @Override
     public void accept(AthenaPageResults athenaPageResults) {

         System.out.println("page:"+athenaPageResults.getPage());

     }
 });