Example usage for com.amazonaws.services.dynamodbv2.model QueryRequest QueryRequest

List of usage examples for com.amazonaws.services.dynamodbv2.model QueryRequest QueryRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.model QueryRequest QueryRequest.

Prototype

public QueryRequest() 

Source Link

Document

Default constructor for QueryRequest object.

Usage

From source file:amazon.dynamodb.config.DynamoDBUtil.java

License:Open Source License

public static QueryRequest copyQueryRequest(QueryRequest queryRequest) {
    QueryRequest copiedQueryRequest = new QueryRequest().withAttributesToGet(queryRequest.getAttributesToGet())
            .withConsistentRead(queryRequest.getConsistentRead())
            .withExclusiveStartKey(queryRequest.getExclusiveStartKey())
            .withIndexName(queryRequest.getIndexName()).withKeyConditions(queryRequest.getKeyConditions())
            .withLimit(queryRequest.getLimit())
            .withReturnConsumedCapacity(queryRequest.getReturnConsumedCapacity())
            .withScanIndexForward(queryRequest.getScanIndexForward()).withSelect(queryRequest.getSelect())
            .withTableName(queryRequest.getTableName());

    return copiedQueryRequest;
}

From source file:amazon.dynamodb.model.GeoQueryRequest.java

License:Open Source License

public GeoQueryRequest() {
    queryRequest = new QueryRequest();
}

From source file:awslabs.lab22.SolutionCode.java

License:Open Source License

@Override
public QueryResult lookupByHashKey(AmazonDynamoDBClient ddbClient, String tableName, String company) {
    // Construct an AttributeValue object containing the provided company name.
    AttributeValue attributeValue = new AttributeValue().withS(company);
    // Construct a Condition object containing the desired comparison ("EQ") and the attribute value
    // containing the company name.
    Condition condition = new Condition().withComparisonOperator("EQ").withAttributeValueList(attributeValue);

    // Construct a QueryRequest object that performs a consistent read on the specified table for the
    // previously constructed condition.
    QueryRequest queryRequest = new QueryRequest().withTableName(tableName).withConsistentRead(true);
    queryRequest.addKeyConditionsEntry("Company", condition);

    // Submit the query by calling the query method of the ddbClient object and return the result.
    return ddbClient.query(queryRequest);
}

From source file:ch.qos.logback.more.appenders.DynamoDBLogbackAppender.java

License:Apache License

private static long getLastId(String tableName, String instanceName, AmazonDynamoDBClient dynamoClient) {
    QueryRequest queryRequest = new QueryRequest().withTableName(tableName)
            .withKeyConditionExpression("instance = :pk")
            .addExpressionAttributeValuesEntry(":pk", new AttributeValue().withS(instanceName))
            .withScanIndexForward(false).withLimit(1);
    QueryResult result = dynamoClient.query(queryRequest);
    List<Map<String, AttributeValue>> items = result.getItems();
    if (items == null || items.size() == 0) {
        return 0L;
    } else {// w  w w  .  j av  a 2 s.com
        return Long.valueOf(items.get(0).get("id").getN());
    }
}

From source file:com.amazon.janusgraph.diskstorage.dynamodb.AbstractDynamoDbStore.java

License:Open Source License

protected QueryRequest createQueryRequest() {
    return new QueryRequest().withTableName(tableName).withConsistentRead(forceConsistentRead)
            .withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL);
}

From source file:com.boundary.aws.dynamodb.QueryDynamoDB.java

License:Open Source License

public static void main(String[] args) throws Exception {
    init();/*from w w  w  .  j a v a 2 s. com*/

    try {
        String tableName = "my-favorite-movies-table";

        // Create table if it does not exist yet
        if (Tables.doesTableExist(dynamoDB, tableName)) {
            System.out.println("Table " + tableName + " is already ACTIVE");
        } else {
            System.out.println("Table to query " + tableName + "does not exist");
        }

        while (true) {
            // Scan items for movies with a year attribute greater than 1985
            HashMap<String, Condition> scanFilter = new HashMap<String, Condition>();
            Condition scanCondition = new Condition().withComparisonOperator(ComparisonOperator.GT.toString())
                    .withAttributeValueList(new AttributeValue().withN("1985"));
            scanFilter.put("year", scanCondition);
            ScanRequest scanRequest = new ScanRequest(tableName).withScanFilter(scanFilter);
            ScanResult scanResult = dynamoDB.scan(scanRequest);
            System.out.println("Result: " + scanResult);

            Condition hashKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.EQ)
                    .withAttributeValueList(new AttributeValue().withS("Matrix"));

            Map<String, Condition> keyConditions = new HashMap<String, Condition>();
            keyConditions.put("name", hashKeyCondition);

            QueryRequest queryRequest = new QueryRequest().withTableName(tableName)
                    .withKeyConditions(keyConditions);

            QueryResult queryResult = dynamoDB.query(queryRequest);
            System.out.println("Result: " + queryResult);

            Thread.sleep(5000);
        }

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means your request made it "
                + "to AWS, but was rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with AWS, "
                + "such as not being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}

From source file:com.clicktravel.infrastructure.persistence.aws.dynamodb.DynamoDbTemplate.java

License:Apache License

private <T extends Item> Collection<T> executeQuery(final AttributeQuery query, final Class<T> itemClass) {
    final ItemConfiguration itemConfiguration = getItemConfiguration(itemClass);
    final com.amazonaws.services.dynamodbv2.model.Condition condition = new com.amazonaws.services.dynamodbv2.model.Condition();

    if (query.getCondition().getComparisonOperator() == Operators.NULL) {
        condition.setComparisonOperator(ComparisonOperator.NULL);
    } else if (query.getCondition().getComparisonOperator() == Operators.NOT_NULL) {
        condition.setComparisonOperator(ComparisonOperator.NOT_NULL);
    } else {/*from w ww.j ava2s  . c o m*/
        if (query.getCondition().getComparisonOperator() == Operators.EQUALS) {
            condition.setComparisonOperator(ComparisonOperator.EQ);
        } else if (query.getCondition().getComparisonOperator() == Operators.LESS_THAN_OR_EQUALS) {
            condition.setComparisonOperator(ComparisonOperator.LE);
        } else if (query.getCondition().getComparisonOperator() == Operators.GREATER_THAN_OR_EQUALS) {
            condition.setComparisonOperator(ComparisonOperator.GE);
        }

        final Collection<AttributeValue> attributeValueList = new ArrayList<>();

        for (final String value : query.getCondition().getValues()) {
            if (value != null && !value.isEmpty()) {
                attributeValueList.add(new AttributeValue(value));
            }
        }

        if (attributeValueList.size() == 0) {
            return new ArrayList<>();
        }

        condition.setAttributeValueList(attributeValueList);
    }

    final Map<String, com.amazonaws.services.dynamodbv2.model.Condition> conditions = new HashMap<>();
    conditions.put(query.getAttributeName(), condition);
    final List<T> totalItems = new ArrayList<>();
    Map<String, AttributeValue> lastEvaluatedKey = null;
    final String tableName = databaseSchemaHolder.schemaName() + "." + itemConfiguration.tableName();
    if (itemConfiguration.hasIndexOn(query.getAttributeName())) {
        do {
            final String queryAttributeName = query.getAttributeName();
            final PrimaryKeyDefinition primaryKeyDefinition = itemConfiguration.primaryKeyDefinition();
            final String primaryKeyPropertyName = primaryKeyDefinition.propertyName();
            final boolean isPrimaryKeyQuery = queryAttributeName.equals(primaryKeyPropertyName);
            final QueryRequest queryRequest = new QueryRequest().withTableName(tableName)
                    .withKeyConditions(conditions).withExclusiveStartKey(lastEvaluatedKey);
            if (!isPrimaryKeyQuery) {
                queryRequest.withIndexName(queryAttributeName + "_idx");
            }

            final QueryResult queryResult;
            try {
                queryResult = amazonDynamoDbClient.query(queryRequest);
            } catch (final AmazonServiceException e) {
                throw new PersistenceResourceFailureException("Failure while attempting DynamoDb Query", e);
            }
            totalItems.addAll(marshallIntoObjects(itemClass, queryResult.getItems()));
            lastEvaluatedKey = queryResult.getLastEvaluatedKey();
        } while (lastEvaluatedKey != null);

    } else {
        logger.debug("Performing table scan with query: " + query);
        do {
            final ScanRequest scanRequest = new ScanRequest().withTableName(tableName)
                    .withScanFilter(conditions).withExclusiveStartKey(lastEvaluatedKey);
            final ScanResult scanResult;
            try {
                scanResult = amazonDynamoDbClient.scan(scanRequest);
            } catch (final AmazonServiceException e) {
                throw new PersistenceResourceFailureException("Failure while attempting DynamoDb Scan", e);
            }
            totalItems.addAll(marshallIntoObjects(itemClass, scanResult.getItems()));
            lastEvaluatedKey = scanResult.getLastEvaluatedKey();
        } while (lastEvaluatedKey != null);
    }

    return totalItems;
}

From source file:com.dell.doradus.db.s3.DynamoDBService2.java

License:Apache License

@Override
public List<DColumn> getColumns(String storeName, String rowKey, String startColumn, String endColumn,
        int count) {
    Timer t = new Timer();
    String key = storeName + "_" + rowKey;
    HashMap<String, Condition> keyConditions = new HashMap<String, Condition>();
    keyConditions.put("key", new Condition().withComparisonOperator(ComparisonOperator.EQ)
            .withAttributeValueList(new AttributeValue().withS(key)));
    if (startColumn != null && endColumn != null) {
        keyConditions.put("column",
                new Condition().withComparisonOperator(ComparisonOperator.BETWEEN).withAttributeValueList(
                        new AttributeValue().withS(startColumn), new AttributeValue(endColumn)));
    } else if (startColumn != null) {
        keyConditions.put("column", new Condition().withComparisonOperator(ComparisonOperator.GE)
                .withAttributeValueList(new AttributeValue().withS(startColumn)));
    } else if (endColumn != null) {
        keyConditions.put("column", new Condition().withComparisonOperator(ComparisonOperator.LT)
                .withAttributeValueList(new AttributeValue().withS(endColumn)));
    }/*from   www. j  a  v  a 2 s .c  om*/

    QueryRequest request = new QueryRequest().withTableName(getTenant().getName())
            .withLimit(Math.min(100, count)).withKeyConditions(keyConditions);
    QueryResult result = m_client.query(request);
    List<DColumn> list = fromItems(result.getItems());
    m_logger.debug("get columns range for {} in {}", getTenant().getName(), t);
    return list;
}

From source file:com.facebook.presto.dynamodb.DynamodbClient.java

License:Apache License

public Iterator<List<Map<String, AttributeValue>>> getTableData(String name,
        Optional<Entry<String, AttributeValue>> hashKeyCondition,
        Optional<Entry<String, Condition>> rangeKeyCondition) {
    AtomicReference<Map<String, AttributeValue>> lastKeyEvaluated = new AtomicReference<>();
    AtomicBoolean firstRun = new AtomicBoolean(true);

    return new Iterator<List<Map<String, AttributeValue>>>() {
        @Override//from   ww  w  .ja  v  a  2  s  .  c  om
        public boolean hasNext() {
            return firstRun.get() && lastKeyEvaluated.get() != null;
        }

        @Override
        public List<Map<String, AttributeValue>> next() {
            firstRun.set(false);
            if (hashKeyCondition.isPresent()) {
                ImmutableMap.Builder<String, Condition> builder = ImmutableMap.builder();
                builder.put(hashKeyCondition.get().getKey(), new Condition()
                        .withAttributeValueList(hashKeyCondition.get().getValue()).withComparisonOperator(EQ));

                if (rangeKeyCondition.isPresent()) {
                    Entry<String, Condition> rangeEntry = rangeKeyCondition.get();
                    if (rangeEntry.getValue().getComparisonOperator() == EQ.name()
                            && rangeEntry.getValue().getAttributeValueList().size() == 1) {
                        GetItemResult item = dynamoDBClient.getItem(name,
                                ImmutableMap.of(hashKeyCondition.get().getKey(),
                                        hashKeyCondition.get().getValue(), rangeEntry.getKey(),
                                        rangeEntry.getValue().getAttributeValueList().get(0)));
                        return ImmutableList.of(item.getItem());
                    } else {
                        builder.put(rangeKeyCondition.get().getKey(), rangeKeyCondition.get().getValue());
                    }
                }

                QueryResult query = dynamoDBClient.query(
                        new QueryRequest().withTableName(name).withExclusiveStartKey(lastKeyEvaluated.get())
                                .withKeyConditions(builder.build()).withLimit(100000));

                lastKeyEvaluated.set(query.getLastEvaluatedKey());

                return query.getItems();
            } else {
                ScanResult scan = dynamoDBClient.scan(new ScanRequest()
                        .withExclusiveStartKey(lastKeyEvaluated.get()).withLimit(100000).withTableName(name));

                lastKeyEvaluated.set(scan.getLastEvaluatedKey());
                return scan.getItems();
            }
        }
    };
}

From source file:com.intuit.tank.persistence.databases.AmazonDynamoDatabaseDocApi.java

License:Open Source License

/**
 * @{inheritDoc//from   ww  w . j  av a  2  s.c  om
 */
@Override
public boolean hasJobData(String tableName, String jobId) {
    if (hasTable(tableName)) {
        Map<String, Condition> keyConditions = new HashMap<String, Condition>();
        Condition jobIdCondition = new Condition().withComparisonOperator(ComparisonOperator.EQ)
                .withAttributeValueList(new AttributeValue().withS(jobId));
        keyConditions.put(DatabaseKeys.JOB_ID_KEY.getShortKey(), jobIdCondition);
        QueryRequest queryRequest = new QueryRequest().withTableName(tableName).withKeyConditions(keyConditions)
                .withLimit(1);

        return dynamoDb.query(queryRequest).getCount() > 0;
    }
    return false;
}