blob: 944acd72f4995d2c8aa7d7da071c726f2d806687 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>PutDynamoDBRecord</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">PutDynamoDBRecord</h1><h2>Description: </h2><p>Inserts items into DynamoDB based on record-oriented data. The record fields are mapped into DynamoDB item fields, including partition and sort keys if set. Depending on the number of records the processor might execute the insert in multiple chunks in order to overcome DynamoDB's limitation on batch writing. This might result partially processed FlowFiles in which case the FlowFile will be transferred to the "unprocessed" relationship with the necessary attribute to retry later without duplicating the already executed inserts.</p><p><a href="additionalDetails.html">Additional Details...</a></p><h3>Tags: </h3><p>Amazon, DynamoDB, AWS, Put, Insert, Record</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties"><tr><th>Display Name</th><th>API Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Record Reader</strong></td><td>record-reader</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RecordReaderFactory<br/><strong>Implementations: </strong><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.grok.GrokReader/index.html">GrokReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.xml.XMLReader/index.html">XMLReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.avro.AvroReader/index.html">AvroReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.syslog.Syslog5424Reader/index.html">Syslog5424Reader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.cef.CEFReader/index.html">CEFReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.syslog.SyslogReader/index.html">SyslogReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.json.JsonTreeReader/index.html">JsonTreeReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.csv.CSVReader/index.html">CSVReader</a><br/><a href="../../../nifi-scripting-nar/1.19.1/org.apache.nifi.record.script.ScriptedReader/index.html">ScriptedReader</a><br/><a href="../../../nifi-parquet-nar/1.19.1/org.apache.nifi.parquet.ParquetReader/index.html">ParquetReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.json.JsonPathReader/index.html">JsonPathReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.lookup.ReaderLookup/index.html">ReaderLookup</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.windowsevent.WindowsEventLogReader/index.html">WindowsEventLogReader</a></td><td id="description">Specifies the Controller Service to use for parsing incoming data and determining the data's schema.</td></tr><tr><td id="name"><strong>AWS Credentials Provider Service</strong></td><td>AWS Credentials Provider service</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>AWSCredentialsProviderService<br/><strong>Implementation: </strong><a href="../org.apache.nifi.processors.aws.credentials.provider.service.AWSCredentialsProviderControllerService/index.html">AWSCredentialsProviderControllerService</a></td><td id="description">The Controller Service that is used to obtain aws credentials provider</td></tr><tr><td id="name"><strong>Region</strong></td><td>Region</td><td id="default-value">US West (Oregon)</td><td id="allowable-values"><ul><li>AWS GovCloud (US) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-gov-west-1" title="AWS Region Code : us-gov-west-1"></img></li><li>AWS GovCloud (US-East) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-gov-east-1" title="AWS Region Code : us-gov-east-1"></img></li><li>US East (N. Virginia) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-east-1" title="AWS Region Code : us-east-1"></img></li><li>US East (Ohio) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-east-2" title="AWS Region Code : us-east-2"></img></li><li>US West (N. California) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-west-1" title="AWS Region Code : us-west-1"></img></li><li>US West (Oregon) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-west-2" title="AWS Region Code : us-west-2"></img></li><li>EU (Ireland) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : eu-west-1" title="AWS Region Code : eu-west-1"></img></li><li>EU (London) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : eu-west-2" title="AWS Region Code : eu-west-2"></img></li><li>EU (Paris) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : eu-west-3" title="AWS Region Code : eu-west-3"></img></li><li>EU (Frankfurt) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : eu-central-1" title="AWS Region Code : eu-central-1"></img></li><li>EU (Stockholm) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : eu-north-1" title="AWS Region Code : eu-north-1"></img></li><li>EU (Milan) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : eu-south-1" title="AWS Region Code : eu-south-1"></img></li><li>Asia Pacific (Hong Kong) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-east-1" title="AWS Region Code : ap-east-1"></img></li><li>Asia Pacific (Mumbai) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-south-1" title="AWS Region Code : ap-south-1"></img></li><li>Asia Pacific (Singapore) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-southeast-1" title="AWS Region Code : ap-southeast-1"></img></li><li>Asia Pacific (Sydney) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-southeast-2" title="AWS Region Code : ap-southeast-2"></img></li><li>Asia Pacific (Jakarta) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-southeast-3" title="AWS Region Code : ap-southeast-3"></img></li><li>Asia Pacific (Tokyo) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-northeast-1" title="AWS Region Code : ap-northeast-1"></img></li><li>Asia Pacific (Seoul) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-northeast-2" title="AWS Region Code : ap-northeast-2"></img></li><li>Asia Pacific (Osaka) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ap-northeast-3" title="AWS Region Code : ap-northeast-3"></img></li><li>South America (Sao Paulo) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : sa-east-1" title="AWS Region Code : sa-east-1"></img></li><li>China (Beijing) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : cn-north-1" title="AWS Region Code : cn-north-1"></img></li><li>China (Ningxia) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : cn-northwest-1" title="AWS Region Code : cn-northwest-1"></img></li><li>Canada (Central) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : ca-central-1" title="AWS Region Code : ca-central-1"></img></li><li>Middle East (UAE) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : me-central-1" title="AWS Region Code : me-central-1"></img></li><li>Middle East (Bahrain) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : me-south-1" title="AWS Region Code : me-south-1"></img></li><li>Africa (Cape Town) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : af-south-1" title="AWS Region Code : af-south-1"></img></li><li>US ISO East <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-iso-east-1" title="AWS Region Code : us-iso-east-1"></img></li><li>US ISOB East (Ohio) <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-isob-east-1" title="AWS Region Code : us-isob-east-1"></img></li><li>US ISO West <img src="../../../../../html/images/iconInfo.png" alt="AWS Region Code : us-iso-west-1" title="AWS Region Code : us-iso-west-1"></img></li></ul></td><td id="description">No Description Provided.</td></tr><tr><td id="name"><strong>Table Name</strong></td><td>Table Name</td><td></td><td id="allowable-values"></td><td id="description">The DynamoDB table name<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Partition Key Strategy</strong></td><td>partition-key-strategy</td><td id="default-value">Partition By Field</td><td id="allowable-values"><ul><li>Partition By Field <img src="../../../../../html/images/iconInfo.png" alt="Uses the value of the Record field identified by the &quot;Partition Key Field&quot; property as partition key value." title="Uses the value of the Record field identified by the &quot;Partition Key Field&quot; property as partition key value."></img></li><li>Partition By Attribute <img src="../../../../../html/images/iconInfo.png" alt="Uses an incoming FlowFile attribute identified by &quot;Partition Key Attribute&quot; as the value of the partition key. The incoming Records must not contain field with the same name defined by the &quot;Partition Key Field&quot;." title="Uses an incoming FlowFile attribute identified by &quot;Partition Key Attribute&quot; as the value of the partition key. The incoming Records must not contain field with the same name defined by the &quot;Partition Key Field&quot;."></img></li><li>Generated UUID <img src="../../../../../html/images/iconInfo.png" alt="Uses a generated UUID as value for the partition key. The incoming Records must not contain field with the same name defined by the &quot;Partition Key Field&quot;." title="Uses a generated UUID as value for the partition key. The incoming Records must not contain field with the same name defined by the &quot;Partition Key Field&quot;."></img></li></ul></td><td id="description">Defines the strategy the processor uses to assign partition key value to the inserted Items.</td></tr><tr><td id="name"><strong>Partition Key Field</strong></td><td>partition-key-field</td><td></td><td id="allowable-values"></td><td id="description">Defines the name of the partition key field in the DynamoDB table. Partition key is also known as hash key. Depending on the "Partition Key Strategy" the field value might come from the incoming Record or a generated one.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Partition Key Attribute</strong></td><td>partition-key-attribute</td><td></td><td id="allowable-values"></td><td id="description">Specifies the FlowFile attribute that will be used as the value of the partition key when using "Partition by attribute" partition key strategy.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong><br/><br/><strong>This Property is only considered if </strong><strong>the [Partition Key Strategy] Property has a value of "Partition By Attribute".</strong></td></tr><tr><td id="name"><strong>Sort Key Strategy</strong></td><td>sort-key-strategy</td><td id="default-value">None</td><td id="allowable-values"><ul><li>None <img src="../../../../../html/images/iconInfo.png" alt="The processor will not assign sort key to the inserted Items." title="The processor will not assign sort key to the inserted Items."></img></li><li>Sort By Field <img src="../../../../../html/images/iconInfo.png" alt="Uses the value of the Record field identified by the &quot;Sort Key Field&quot; property as sort key value." title="Uses the value of the Record field identified by the &quot;Sort Key Field&quot; property as sort key value."></img></li><li>Generate Sequence <img src="../../../../../html/images/iconInfo.png" alt="The processor will assign a number for every item based on the original record's position in the incoming FlowFile. This will be used as sort key value." title="The processor will assign a number for every item based on the original record's position in the incoming FlowFile. This will be used as sort key value."></img></li></ul></td><td id="description">Defines the strategy the processor uses to assign sort key to the inserted Items.</td></tr><tr><td id="name"><strong>Sort Key Field</strong></td><td>sort-key-field</td><td></td><td id="allowable-values"></td><td id="description">Defines the name of the sort key field in the DynamoDB table. Sort key is also known as range key.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong><br/><br/><strong>This Property is only considered if </strong><strong>the [Sort Key Strategy] Property is set to one of the following values: [Sort By Field], [Generate Sequence]</strong></td></tr><tr><td id="name"><strong>Communications Timeout</strong></td><td>Communications Timeout</td><td id="default-value">30 secs</td><td id="allowable-values"></td><td id="description">No Description Provided.</td></tr><tr><td id="name">Proxy Configuration Service</td><td>proxy-configuration-service</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>ProxyConfigurationService<br/><strong>Implementation: </strong><a href="../../../nifi-proxy-configuration-nar/1.19.1/org.apache.nifi.proxy.StandardProxyConfigurationService/index.html">StandardProxyConfigurationService</a></td><td id="description">Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component.</td></tr><tr><td id="name">SSL Context Service</td><td>SSL Context Service</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>SSLContextService<br/><strong>Implementations: </strong><a href="../../../nifi-ssl-context-service-nar/1.19.1/org.apache.nifi.ssl.StandardRestrictedSSLContextService/index.html">StandardRestrictedSSLContextService</a><br/><a href="../../../nifi-ssl-context-service-nar/1.19.1/org.apache.nifi.ssl.StandardSSLContextService/index.html">StandardSSLContextService</a></td><td id="description">Specifies an optional SSL Context Service that, if provided, will be used to create connections</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>unprocessed</td><td>FlowFiles are routed to unprocessed relationship when DynamoDB is not able to process all the items in the request. Typical reasons are insufficient table throughput capacity and exceeding the maximum bytes per request. Unprocessed FlowFiles can be retried with a new request.</td></tr><tr><td>success</td><td>FlowFiles are routed to success relationship</td></tr><tr><td>failure</td><td>FlowFiles are routed to failure relationship</td></tr></table><h3>Reads Attributes: </h3><table id="reads-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>dynamodb.chunks.processed</td><td>Number of chunks successfully inserted into DynamoDB. If not set, it is considered as 0</td></tr></table><h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>dynamodb.chunks.processed</td><td>Number of chunks successfully inserted into DynamoDB. If not set, it is considered as 0</td></tr><tr><td>dynamodb.key.error.unprocessed</td><td>DynamoDB unprocessed keys</td></tr><tr><td>dynmodb.range.key.value.error</td><td>DynamoDB range key error</td></tr><tr><td>dynamodb.key.error.not.found</td><td>DynamoDB key not found</td></tr><tr><td>dynamodb.error.exception.message</td><td>DynamoDB exception message</td></tr><tr><td>dynamodb.error.code</td><td>DynamoDB error code</td></tr><tr><td>dynamodb.error.message</td><td>DynamoDB error message</td></tr><tr><td>dynamodb.error.type</td><td>DynamoDB error type</td></tr><tr><td>dynamodb.error.service</td><td>DynamoDB error service</td></tr><tr><td>dynamodb.error.retryable</td><td>DynamoDB error is retryable</td></tr><tr><td>dynamodb.error.request.id</td><td>DynamoDB error request id</td></tr><tr><td>dynamodb.error.status.code</td><td>DynamoDB error status code</td></tr><tr><td>dynamodb.item.io.error</td><td>IO exception message on creating item</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3><table id="system-resource-considerations"><tr><th>Resource</th><th>Description</th></tr><tr><td>MEMORY</td><td>An instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance.</td></tr><tr><td>NETWORK</td><td>An instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance.</td></tr></table><h3>See Also:</h3><p><a href="../org.apache.nifi.processors.aws.dynamodb.DeleteDynamoDB/index.html">DeleteDynamoDB</a>, <a href="../org.apache.nifi.processors.aws.dynamodb.GetDynamoDB/index.html">GetDynamoDB</a>, <a href="../org.apache.nifi.processors.aws.dynamodb.PutDynamoDB/index.html">PutDynamoDB</a></p></body></html>