我具有某个雅典娜查询的查询执行ID。我想获取此查询的输出位置。我知道我可以使用来自java aws sdk的查询执行ID来获取结果。 我已经使用aws的凭证创建了名为AmazonAthena类的名为“ athenaClient”的雅典娜客户端对象。
GetQueryResultsRequest getQueryResultsRequest = new
GetQueryResultsRequest().withExecutionId(execId);
GetQueryResultsResult getQueryResultsResult =
athenaClient.getQueryResults(getQueryResultsRequest);
使用此getQueryResultsResult,我可以获取查询结果。 但是我想通过Athena查询执行ID获取输出位置。
答案 0 :(得分:3)
我对Java SDK的了解还不深,但是可以通过getQueryExecution
方法来检索结果的位置。
所以应该是这样的:
GetQueryExecutionResult result = athenaClient.getQueryExecution(GetQueryExecutionRequest().withExecutionId(execId));
QueryExecution exec = result.getQueryExecution();
ResultConfiguration config = exec.getResultConfiguration();
答案 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());
}
});