[ 
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)

Reply via email to