Search in sources :

Example 1 with PutRequest

use of com.amazonaws.services.dynamodbv2.model.PutRequest in project nifi by apache.

the class PutDynamoDBTest method testStringHashStringRangePutSuccessfulWithMockOneUnprocessed.

@Test
public void testStringHashStringRangePutSuccessfulWithMockOneUnprocessed() {
    Map<String, List<WriteRequest>> unprocessed = new HashMap<String, List<WriteRequest>>();
    PutRequest put = new PutRequest();
    put.addItemEntry("hashS", new AttributeValue("h1"));
    put.addItemEntry("rangeS", new AttributeValue("r1"));
    WriteRequest write = new WriteRequest(put);
    List<WriteRequest> writes = new ArrayList<>();
    writes.add(write);
    unprocessed.put(stringHashStringRangeTableName, writes);
    result.setUnprocessedItems(unprocessed);
    final TestRunner putRunner = TestRunners.newTestRunner(putDynamoDB);
    putRunner.setProperty(AbstractDynamoDBProcessor.ACCESS_KEY, "abcd");
    putRunner.setProperty(AbstractDynamoDBProcessor.SECRET_KEY, "cdef");
    putRunner.setProperty(AbstractDynamoDBProcessor.REGION, REGION);
    putRunner.setProperty(AbstractDynamoDBProcessor.TABLE, stringHashStringRangeTableName);
    putRunner.setProperty(AbstractDynamoDBProcessor.HASH_KEY_NAME, "hashS");
    putRunner.setProperty(AbstractDynamoDBProcessor.HASH_KEY_VALUE, "h1");
    putRunner.setProperty(AbstractDynamoDBProcessor.RANGE_KEY_NAME, "rangeS");
    putRunner.setProperty(AbstractDynamoDBProcessor.RANGE_KEY_VALUE, "r1");
    putRunner.setProperty(AbstractDynamoDBProcessor.JSON_DOCUMENT, "j2");
    putRunner.enqueue("{\"hello\":\"world\"}".getBytes());
    putRunner.run(1);
    putRunner.assertAllFlowFilesTransferred(AbstractDynamoDBProcessor.REL_UNPROCESSED, 1);
}
Also used : AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) HashMap(java.util.HashMap) WriteRequest(com.amazonaws.services.dynamodbv2.model.WriteRequest) TestRunner(org.apache.nifi.util.TestRunner) ArrayList(java.util.ArrayList) PutRequest(com.amazonaws.services.dynamodbv2.model.PutRequest) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Example 2 with PutRequest

use of com.amazonaws.services.dynamodbv2.model.PutRequest in project beam by apache.

the class DynamoDBIOIT method buildWriteRequest.

private static KV<String, WriteRequest> buildWriteRequest(TestRow row) {
    AttributeValue id = new AttributeValue().withN(row.id().toString());
    AttributeValue name = new AttributeValue().withS(row.name());
    PutRequest req = new PutRequest(ImmutableMap.of(COL_ID, id, COL_NAME, name));
    return KV.of(env.options().getDynamoDBTable(), new WriteRequest().withPutRequest(req));
}
Also used : AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) WriteRequest(com.amazonaws.services.dynamodbv2.model.WriteRequest) PutRequest(com.amazonaws.services.dynamodbv2.model.PutRequest)

Example 3 with PutRequest

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

the class LowLevelBatchWrite method writeMultipleItemsBatchWrite.

private static void writeMultipleItemsBatchWrite() {
    try {
        // Create a map for the requests in the batch
        Map<String, List<WriteRequest>> requestItems = new HashMap<String, List<WriteRequest>>();
        // Create a PutRequest for a new Forum item
        Map<String, AttributeValue> forumItem = new HashMap<String, AttributeValue>();
        forumItem.put("Name", new AttributeValue().withS("Amazon RDS"));
        forumItem.put("Threads", new AttributeValue().withN("0"));
        List<WriteRequest> forumList = new ArrayList<WriteRequest>();
        forumList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(forumItem)));
        requestItems.put(table1Name, forumList);
        // Create a PutRequest for a new Thread item
        Map<String, AttributeValue> threadItem = new HashMap<String, AttributeValue>();
        threadItem.put("ForumName", new AttributeValue().withS("Amazon RDS"));
        threadItem.put("Subject", new AttributeValue().withS("Amazon RDS Thread 1"));
        threadItem.put("Message", new AttributeValue().withS("ElastiCache Thread 1 message"));
        threadItem.put("KeywordTags", new AttributeValue().withSS(Arrays.asList("cache", "in-memory")));
        List<WriteRequest> threadList = new ArrayList<WriteRequest>();
        threadList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(threadItem)));
        // Create a DeleteRequest for a Thread item
        Map<String, AttributeValue> threadDeleteKey = new HashMap<String, AttributeValue>();
        threadDeleteKey.put("ForumName", new AttributeValue().withS("Amazon S3"));
        threadDeleteKey.put("Subject", new AttributeValue().withS("S3 Thread 100"));
        threadList.add(new WriteRequest().withDeleteRequest(new DeleteRequest().withKey(threadDeleteKey)));
        requestItems.put(table2Name, threadList);
        BatchWriteItemResult result;
        BatchWriteItemRequest batchWriteItemRequest = new BatchWriteItemRequest().withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL);
        do {
            System.out.println("Making the request.");
            batchWriteItemRequest.withRequestItems(requestItems);
            result = client.batchWriteItem(batchWriteItemRequest);
            // Print consumed capacity units
            for (ConsumedCapacity consumedCapacity : result.getConsumedCapacity()) {
                String tableName = consumedCapacity.getTableName();
                Double consumedCapacityUnits = consumedCapacity.getCapacityUnits();
                System.out.println("Consumed capacity units for table " + tableName + ": " + consumedCapacityUnits);
            }
            // Check for unprocessed keys which could happen if you exceed
            // provisioned throughput
            System.out.println("Unprocessed Put and Delete requests: \n" + result.getUnprocessedItems());
            requestItems = result.getUnprocessedItems();
        } while (result.getUnprocessedItems().size() > 0);
    } catch (AmazonServiceException ase) {
        System.err.println("Failed to retrieve items: ");
        ase.printStackTrace(System.err);
    }
}
Also used : AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) HashMap(java.util.HashMap) WriteRequest(com.amazonaws.services.dynamodbv2.model.WriteRequest) ArrayList(java.util.ArrayList) PutRequest(com.amazonaws.services.dynamodbv2.model.PutRequest) BatchWriteItemRequest(com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest) ConsumedCapacity(com.amazonaws.services.dynamodbv2.model.ConsumedCapacity) ReturnConsumedCapacity(com.amazonaws.services.dynamodbv2.model.ReturnConsumedCapacity) BatchWriteItemResult(com.amazonaws.services.dynamodbv2.model.BatchWriteItemResult) AmazonServiceException(com.amazonaws.AmazonServiceException) ArrayList(java.util.ArrayList) List(java.util.List) DeleteRequest(com.amazonaws.services.dynamodbv2.model.DeleteRequest)

Example 4 with PutRequest

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

the class LowLevelBatchWriteSyntax method writeMultipleItemsBatchWrite.

private static void writeMultipleItemsBatchWrite() {
    try {
        // Begin syntax extract
        // Create a map for the requests in the batch
        Map<String, List<WriteRequest>> requestItems = new HashMap<String, List<WriteRequest>>();
        // Create a PutRequest for a new Forum item
        Map<String, AttributeValue> forumItem = new HashMap<String, AttributeValue>();
        forumItem.put("Name", new AttributeValue().withS("Amazon RDS"));
        forumItem.put("Threads", new AttributeValue().withN("0"));
        List<WriteRequest> forumList = new ArrayList<WriteRequest>();
        forumList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(forumItem)));
        requestItems.put("Forum", forumList);
        // Create a PutRequest for a new Thread item
        Map<String, AttributeValue> threadItem = new HashMap<String, AttributeValue>();
        threadItem.put("ForumName", new AttributeValue().withS("Amazon RDS"));
        threadItem.put("Subject", new AttributeValue().withS("Amazon RDS Thread 1"));
        List<WriteRequest> threadList = new ArrayList<WriteRequest>();
        threadList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(threadItem)));
        // Create a DeleteRequest for a Thread item
        Map<String, AttributeValue> threadDeleteKey = new HashMap<String, AttributeValue>();
        threadDeleteKey.put("ForumName", new AttributeValue().withS("Some partition key value"));
        threadDeleteKey.put("Subject", new AttributeValue().withS("Some sort key value"));
        threadList.add(new WriteRequest().withDeleteRequest(new DeleteRequest().withKey(threadDeleteKey)));
        requestItems.put("Thread", threadList);
        BatchWriteItemRequest batchWriteItemRequest = new BatchWriteItemRequest();
        System.out.println("Making the request.");
        batchWriteItemRequest.withRequestItems(requestItems);
        client.batchWriteItem(batchWriteItemRequest);
    // End syntax extract
    } catch (AmazonServiceException ase) {
        System.err.println("Failed to retrieve items: ");
        ase.printStackTrace(System.err);
    }
}
Also used : AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) HashMap(java.util.HashMap) WriteRequest(com.amazonaws.services.dynamodbv2.model.WriteRequest) ArrayList(java.util.ArrayList) PutRequest(com.amazonaws.services.dynamodbv2.model.PutRequest) BatchWriteItemRequest(com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest) AmazonServiceException(com.amazonaws.AmazonServiceException) ArrayList(java.util.ArrayList) List(java.util.List) DeleteRequest(com.amazonaws.services.dynamodbv2.model.DeleteRequest)

Aggregations

AttributeValue (com.amazonaws.services.dynamodbv2.model.AttributeValue)4 PutRequest (com.amazonaws.services.dynamodbv2.model.PutRequest)4 WriteRequest (com.amazonaws.services.dynamodbv2.model.WriteRequest)4 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 List (java.util.List)3 AmazonServiceException (com.amazonaws.AmazonServiceException)2 BatchWriteItemRequest (com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest)2 DeleteRequest (com.amazonaws.services.dynamodbv2.model.DeleteRequest)2 BatchWriteItemResult (com.amazonaws.services.dynamodbv2.model.BatchWriteItemResult)1 ConsumedCapacity (com.amazonaws.services.dynamodbv2.model.ConsumedCapacity)1 ReturnConsumedCapacity (com.amazonaws.services.dynamodbv2.model.ReturnConsumedCapacity)1 TestRunner (org.apache.nifi.util.TestRunner)1 Test (org.junit.Test)1