Search in sources :

Example 6 with QueryResult

use of com.amazonaws.services.dynamodbv2.model.QueryResult in project aws-doc-sdk-examples by awsdocs.

the class LowLevelQuery method findRepliesInLast15DaysWithConfig.

private static void findRepliesInLast15DaysWithConfig(String forumName, String threadSubject) {
    long twoWeeksAgoMilli = (new Date()).getTime() - (15L * 24L * 60L * 60L * 1000L);
    Date twoWeeksAgo = new Date();
    twoWeeksAgo.setTime(twoWeeksAgoMilli);
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    String twoWeeksAgoStr = df.format(twoWeeksAgo);
    Condition sortKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.GT.toString()).withAttributeValueList(new AttributeValue().withS(twoWeeksAgoStr));
    Map<String, Condition> keyConditions = makeReplyKeyConditions(forumName, threadSubject);
    keyConditions.put("ReplyDateTime", sortKeyCondition);
    QueryRequest queryRequest = new QueryRequest().withTableName(tableName).withKeyConditions(keyConditions).withProjectionExpression("Message, ReplyDateTime, PostedBy");
    QueryResult result = client.query(queryRequest);
    for (Map<String, AttributeValue> item : result.getItems()) {
        printItem(item);
    }
}
Also used : Condition(com.amazonaws.services.dynamodbv2.model.Condition) AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) QueryResult(com.amazonaws.services.dynamodbv2.model.QueryResult) QueryRequest(com.amazonaws.services.dynamodbv2.model.QueryRequest) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 7 with QueryResult

use of com.amazonaws.services.dynamodbv2.model.QueryResult in project aws-doc-sdk-examples by awsdocs.

the class LowLevelQuery method findRepliesUsingAFilterExpression.

private static void findRepliesUsingAFilterExpression(String forumName, String threadSubject) {
    Map<String, Condition> keyConditions = makeReplyKeyConditions(forumName, threadSubject);
    Map<String, AttributeValue> expressionAttributeValues = new HashMap<String, AttributeValue>();
    expressionAttributeValues.put(":val", new AttributeValue().withS("User B"));
    QueryRequest queryRequest = new QueryRequest().withTableName(tableName).withKeyConditions(keyConditions).withFilterExpression("PostedBy = :val").withExpressionAttributeValues(expressionAttributeValues).withProjectionExpression("Message, ReplyDateTime, PostedBy");
    QueryResult result = client.query(queryRequest);
    for (Map<String, AttributeValue> item : result.getItems()) {
        printItem(item);
    }
}
Also used : Condition(com.amazonaws.services.dynamodbv2.model.Condition) AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) QueryResult(com.amazonaws.services.dynamodbv2.model.QueryResult) QueryRequest(com.amazonaws.services.dynamodbv2.model.QueryRequest) HashMap(java.util.HashMap)

Example 8 with QueryResult

use of com.amazonaws.services.dynamodbv2.model.QueryResult in project camel by apache.

the class QueryCommand method execute.

@Override
public void execute() {
    QueryResult result = ddbClient.query(new QueryRequest().withTableName(determineTableName()).withAttributesToGet(determineAttributeNames()).withConsistentRead(determineConsistentRead()).withExclusiveStartKey(determineStartKey()).withKeyConditions(determineKeyConditions()).withExclusiveStartKey(determineStartKey()).withLimit(determineLimit()).withScanIndexForward(determineScanIndexForward()));
    Map tmp = new HashMap<>();
    tmp.put(DdbConstants.ITEMS, result.getItems());
    tmp.put(DdbConstants.LAST_EVALUATED_KEY, result.getLastEvaluatedKey());
    tmp.put(DdbConstants.CONSUMED_CAPACITY, result.getConsumedCapacity());
    tmp.put(DdbConstants.COUNT, result.getCount());
    addToResults(tmp);
}
Also used : QueryResult(com.amazonaws.services.dynamodbv2.model.QueryResult) QueryRequest(com.amazonaws.services.dynamodbv2.model.QueryRequest) HashMap(java.util.HashMap) Map(java.util.Map) HashMap(java.util.HashMap)

Example 9 with QueryResult

use of com.amazonaws.services.dynamodbv2.model.QueryResult in project camel by apache.

the class AmazonDDBClientMock method query.

@SuppressWarnings("unchecked")
@Override
public QueryResult query(QueryRequest queryRequest) {
    this.queryRequest = queryRequest;
    ConsumedCapacity consumed = new ConsumedCapacity();
    consumed.setCapacityUnits(1.0);
    Map<String, AttributeValue> lastEvaluatedKey = new HashMap<String, AttributeValue>();
    lastEvaluatedKey.put("1", new AttributeValue("LAST_KEY"));
    return new QueryResult().withConsumedCapacity(consumed).withCount(1).withItems(getAttributes()).withLastEvaluatedKey(lastEvaluatedKey);
}
Also used : AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) QueryResult(com.amazonaws.services.dynamodbv2.model.QueryResult) HashMap(java.util.HashMap) ConsumedCapacity(com.amazonaws.services.dynamodbv2.model.ConsumedCapacity)

Example 10 with QueryResult

use of com.amazonaws.services.dynamodbv2.model.QueryResult in project jcabi-dynamo by jcabi.

the class QueryValve method count.

@Override
public int count(final Credentials credentials, final String table, final Map<String, Condition> conditions) throws IOException {
    final AmazonDynamoDB aws = credentials.aws();
    try {
        QueryRequest request = new QueryRequest().withTableName(table).withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL).withKeyConditions(conditions).withConsistentRead(this.consistent).withSelect(Select.COUNT).withLimit(Integer.MAX_VALUE);
        if (!this.index.isEmpty()) {
            request = request.withIndexName(this.index);
        }
        final long start = System.currentTimeMillis();
        final QueryResult rslt = aws.query(request);
        final int count = rslt.getCount();
        Logger.info(this, // @checkstyle LineLength (1 line)
        "#total(): COUNT=%d in '%s' using %s, %s, in %[ms]s", count, request.getTableName(), request.getQueryFilter(), new PrintableConsumedCapacity(rslt.getConsumedCapacity()).print(), System.currentTimeMillis() - start);
        return count;
    } catch (final AmazonClientException ex) {
        throw new IOException(String.format("Failed to count from \"%s\" by %s", table, conditions), ex);
    } finally {
        aws.shutdown();
    }
}
Also used : QueryResult(com.amazonaws.services.dynamodbv2.model.QueryResult) QueryRequest(com.amazonaws.services.dynamodbv2.model.QueryRequest) AmazonClientException(com.amazonaws.AmazonClientException) AmazonDynamoDB(com.amazonaws.services.dynamodbv2.AmazonDynamoDB) IOException(java.io.IOException)

Aggregations

QueryResult (com.amazonaws.services.dynamodbv2.model.QueryResult)13 QueryRequest (com.amazonaws.services.dynamodbv2.model.QueryRequest)12 AttributeValue (com.amazonaws.services.dynamodbv2.model.AttributeValue)10 HashMap (java.util.HashMap)7 Condition (com.amazonaws.services.dynamodbv2.model.Condition)6 AmazonDynamoDB (com.amazonaws.services.dynamodbv2.AmazonDynamoDB)4 Map (java.util.Map)3 AmazonClientException (com.amazonaws.AmazonClientException)2 ConsumedCapacity (com.amazonaws.services.dynamodbv2.model.ConsumedCapacity)2 IOException (java.io.IOException)2 SimpleDateFormat (java.text.SimpleDateFormat)2 Date (java.util.Date)2 AmazonDynamoDBException (com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 HashSet (java.util.HashSet)1 ToString (lombok.ToString)1 Test (org.junit.Test)1