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