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

Exception when trying to connect to AWS Athena using JAVA API

我正在尝试使用 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 得到一个异常。 例外情况是:

Client execution did not complete before the specified timeout configuration.

有没有人遇到过类似的情况?

问题出在 withClientExecutionTimeout(10)

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