尝试使用JAVA API连接到AWS Athena时出现异常

时间:2018-03-14 09:05:08

标签: amazon-web-services amazon-athena

我尝试使用Java API在AWS Athena中执行查询:

public class AthenaClientFactory
{     
    String accessKey = "access";
    String secretKey = "secret";
    BasicAWSCredentials awsCredentials = new 
    BasicAWSCredentials(accessKey, secretKey);

    private final AmazonAthenaClientBuilder builder = AmazonAthenaClientBuilder.standard()
            .withRegion(Regions.US_WEST_1)
            .withCredentials(new AWSStaticCredentialsProvider(awsCredentials))
            .withClientConfiguration(new ClientConfiguration().withClientExecutionTimeout(10));

    public AmazonAthena createClient()
    {
        return builder.build();
    }
}


private static String submitAthenaQuery(AmazonAthena client) {
        QueryExecutionContext queryExecutionContext = new QueryExecutionContext().withDatabase("my_db");

        ResultConfiguration resultConfiguration = new ResultConfiguration().withOutputLocation("my_bucket");

        StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest()
                                                                    .withQueryString("select * from my_db limit 3;")
                                                                    .withQueryExecutionContext(queryExecutionContext)
                                                                    .withResultConfiguration(resultConfiguration);

        StartQueryExecutionResult startQueryExecutionResult = client.startQueryExecution(startQueryExecutionRequest);
        return startQueryExecutionResult.getQueryExecutionId();
}   

public void run() throws InterruptedException {
        AthenaClientFactory factory = new AthenaClientFactory();
        AmazonAthena client = factory.createClient(); 

        String queryExecutionId = submitAthenaQuery(client);
}

但是我从 startQueryExecutionResult 获得了一个例外。 例外是:

  

客户端执行在指定的超时之前未完成   配置。

有没有人遇到过类似的东西?

1 个答案:

答案 0 :(得分:0)

问题出在withClientExecutionTimeout(10)

将此数字增加到5000解决了问题