[
https://issues.apache.org/jira/browse/CAMEL-14992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17120292#comment-17120292
]
Jon Chase commented on CAMEL-14992:
-----------------------------------
If things go according to plan, I should have a PR up this weekend.
Here's what I wound up with in terms of the URI feel:
{code:java}
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() {
// String awsCreds = "&accessKey=xxx&secretKey=yyy®ion=eu-west-1";
String awsCreds = "amazonAthenaClient=#athenaClient";
from("direct:athenaGetQueryExecutionTest")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=getQueryExecution&" + awsCreds);
from("direct:athenaGetQueryResultsAsStreamListTest")
.setBody(constant(
"SELECT * FROM ("
+ " VALUES"
+ " (1, 'a'),"
+ " (2, 'b')"
+ ") AS t (id, name)"))
.to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation="
+ s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=getQueryResults&outputType=StreamList&" +
awsCreds);
from("direct:athenaGetQueryResultsAsSelectListTest")
.setBody(constant(
"SELECT * FROM ("
+ " VALUES"
+ " (1, 'a'),"
+ " (2, 'b')"
+ ") AS t (id, name)"))
.to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation="
+ s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=getQueryResults&outputType=SelectList&" +
awsCreds);
from("direct:athenaGetQueryResultsAsS3PointerTest")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation="
+ s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=getQueryResults&outputType=S3Pointer&" +
awsCreds);
from("direct:athenaListQueryExecutionsTest")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=listQueryExecutions&" + awsCreds);
from("direct:athenaListQueryExecutionsSetsNextTokenTest")
.loop(2)
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds)
.end()
.to("aws2-athena://label?operation=listQueryExecutions&maxResults=1&"
+ awsCreds);
from("direct:athenaStartQueryExecutionIncludesTraceInQuery")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&includeTrace=true&outputLocation="
+ s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=getQueryExecution&" + awsCreds);
from("direct:athenaStartQueryExecutionWaitForQueryCompletionTest")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation="
+ s3Bucket + "&" + awsCreds);
from("direct:athenaStartQueryExecutionByDefaultDoesNotWaitForCompletionTest")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds);
from("direct:athenaStartQueryExecutionHandlesInvalidSqlTest")
.setBody(constant("SELECT INVALID SQL")) // parses, but query fails
to complete
.to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&maxAttempts=3&retry=always&outputLocation="
+ s3Bucket + "&" + awsCreds);
from("direct:athenaStartQueryExecutionHandlesMalformedSqlTest")
.setBody(constant("MALFORMED SQL")) // unparseable by athena
.to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&maxAttempts=3&outputLocation="
+ s3Bucket + "&" + awsCreds);
from("direct:athenaStartQueryExecutionTest")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds);
from("direct:athenaStartQueryExecutionAndGetQueryExecutionUsingHeaders")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds)
.to("aws2-athena://label?operation=getQueryExecution&" + awsCreds);
from("direct:athenaStartQueryExecutionAndGetQueryResultsByWaitingWithALoop")
.setBody(constant("SELECT 1"))
.to("aws2-athena://label?operation=startQueryExecution&outputLocation=" +
s3Bucket + "&" + awsCreds)
.loopDoWhile(simple("${header." +
Athena2Constants.QUERY_EXECUTION_STATE + "} != 'SUCCEEDED'"))
.delay(1_000)
.to("aws2-athena://label?operation=getQueryExecution&" + awsCreds)
.end()
.to("aws2-athena://label?operation=getQueryResults&outputType=S3Pointer&" +
awsCreds);
}
};
}
{code}
> Create a Camel AWS2 Athena component
> ------------------------------------
>
> Key: CAMEL-14992
> URL: https://issues.apache.org/jira/browse/CAMEL-14992
> Project: Camel
> Issue Type: New Feature
> Components: camel-aws2
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 3.x
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)