我有某个雅典娜查询的查询执行ID。我想获取此查询的输出位置。我知道我可以使用 java aws sdk 中的查询执行 ID 获取结果。我使用我的 aws 凭证创建了名为 'athenaClient' 的 athena 客户端对象,该对象属于 AmazonAthena 类。
GetQueryResultsRequest getQueryResultsRequest = new
GetQueryResultsRequest().withExecutionId(execId);
GetQueryResultsResult getQueryResultsResult =
athenaClient.getQueryResults(getQueryResultsRequest);
使用此getQueryResultsResult,我可以获取查询结果。但是我想通过雅典娜查询执行 ID 获取输出位置。
我对 Java SDK 没有那么深入,但可以通过 getQueryExecution
方法检索结果的位置。
所以它应该是这样的:
GetQueryExecutionResult result = athenaClient.getQueryExecution(GetQueryExecutionRequest().withExecutionId(execId));
QueryExecution exec = result.getQueryExecution();
ResultConfiguration config = exec.getResultConfiguration();
查询执行 - AWS Java 开发工具包
结果配置 - AWS Java 开发工具包
我创建了一个简单的 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());
}
});