[ https://issues.apache.org/jira/browse/NIFI-1516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15169604#comment-15169604 ]
James Wing commented on NIFI-1516: ---------------------------------- We need the key specification to Get or Delete an item, but I don't believe we need it for a Put. Instead of (PutDynamoDB.java, line 123+): {code} try { if ( rangeKeyValue == null || StringUtils.isBlank(rangeKeyValue.toString()) ) { tableWriteItems.addItemToPut(new Item().withKeyComponent(hashKeyName, hashKeyValue) .withJSON(jsonDocument, IOUtils.toString(baos.toByteArray(),charset))); } else { tableWriteItems.addItemToPut(new Item().withKeyComponent(hashKeyName, hashKeyValue) .withKeyComponent(rangeKeyName, rangeKeyValue) .withJSON(jsonDocument, IOUtils.toString(baos.toByteArray(),charset))); } {code} We could do something like this: {code} try { String jsonContent = IOUtils.toString(baos.toByteArray(),charset); Item flowFileItem = Item.fromJSON(jsonContent); tableWriteItems.addItemToPut(flowFileItem); {code} That would leave us with a problem mapping unprocessed items. From the documentation, it appears possible to use {{Item.hashcode()}} for this, but I have not verified that an unprocessed item will truly hash the same as the original item. Doing it this way might be left to another processor in another ticket. I don't know that either is better or more intuitive for anyone other than myself :). > Provide AWS DynamoDB Delete/Put/Get processors > ---------------------------------------------- > > Key: NIFI-1516 > URL: https://issues.apache.org/jira/browse/NIFI-1516 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions > Affects Versions: 0.5.0 > Environment: all > Reporter: Mans Singh > Assignee: Mans Singh > Priority: Minor > Labels: aws, delete,, dynamodb,, get,, insert,, put, > Fix For: 0.6.0 > > Original Estimate: 72h > Remaining Estimate: 72h > > Implement AWS DynamoDB Get/Put/Delete processors. -- This message was sent by Atlassian JIRA (v6.3.4#6332)