DDB Component
Available as of Camel 2.10
The DynamoDB component supports storing and retrieving data from/to Amazon's DynamoDB service.
aws-ddb://tableName[?options]
You can append query options to the URI in the following format: ?options=value&option2=value&...
URI Options
Name | Default Value | Context | Description |
---|
amazonDDBClient
| null
| Producer | Reference to a com.amazonaws.services.dynamodb.AmazonDynamoDB in the Registry. |
accessKey
| null
| Producer | Amazon AWS Access Key. |
secretKey
| null
| Producer | Amazon AWS Secret Key. |
amazonDdbEndpoint
| null
| Producer | The region with which the AWS-DDB client wants to work with. |
tableName
| null
| Producer | The name of the table currently worked with. |
readCapacity
| 0
| Producer | The provisioned throughput to reserve for reading resources from your table |
writeCapacity
| 0
| Producer | The provisioned throughput to reserved for writing resources to your table |
consistentRead
| false
| Producer | Determines whether or not strong consistency should be enforced when data is read. |
operation
| PutAttributes
| Producer | Valid values are: BatchGetItems DeleteItem DeleteTable DescribeTable GetItem PutItem Query Scan UpdateItem UpdateTable
|
proxyHost
| null
| Producer | Camel 2.16: Specify a proxy host to be used inside the client definition. |
proxyPort
| null
| Producer | Camel 2.16: Specify a proxy port to be used inside the client definition. |
Usage
Header | Type | Description |
---|
CamelAwsDdbBatchItems
| Map<String, KeysAndAttributes>
| A map of the table name and corresponding items to get by primary key. |
CamelAwsDdbTableName
| String
| Table Name for this operation. |
CamelAwsDdbKey
| Key
| The primary key that uniquely identifies each item in a table. From Camel 2.16.0: the type of this header is Map<String, AttributeValue> and not Key . |
CamelAwsDdbReturnValues
| String
| Use this parameter if you want to get the attribute name-value pairs before or after they are modified (NONE , ALL_OLD , UPDATED_OLD , ALL_NEW , UPDATED_NEW ). |
CamelAwsDdbUpdateCondition
| Map<String, ExpectedAttributeValue>
| Designates an attribute for a conditional modification. |
CamelAwsDdbAttributeNames
| Collection<String>
| If attribute names are not specified then all attributes will be returned. |
CamelAwsDdbConsistentRead
| Boolean
| If set to true, then a consistent read is issued, otherwise eventually consistent is used. |
CamelAwsDdbItem
| Map<String, AttributeValue>
| A map of the attributes for the item, and must include the primary key values that define the item. |
CamelAwsDdbExactCount
| Boolean
| If set to true, Amazon DynamoDB returns a total number of items that match the query parameters, instead of a list of the matching items and their attributes. From Camel 2.16.0 this header doesn't exist anymore. |
CamelAwsDdbKeyConditions
| Map<String, Condition>
| From Camel 2.16.0. This header specify the selection criteria for the query, and merge together the two old headers CamelAwsDdbHashKeyValue and CamelAwsDdbScanRangeKeyCondition |
CamelAwsDdbStartKey
| Key
| Primary key of the item from which to continue an earlier query. |
CamelAwsDdbHashKeyValue
| AttributeValue
| Value of the hash component of the composite primary key. From Camel 2.16.0 this header doesn't exist anymore. |
CamelAwsDdbLimit
| Integer
| The maximum number of items to return. |
CamelAwsDdbScanRangeKeyCondition
| Condition
| A container for the attribute values and comparison operators to use for the query. From Camel 2.16.0 this header doesn't exist anymore. |
CamelAwsDdbScanIndexForward
| Boolean
| Specifies forward or backward traversal of the index. |
CamelAwsDdbScanFilter
| Map<String, Condition>
| Evaluates the scan results and returns only the desired values. |
CamelAwsDdbUpdateValues
| Map<String, AttributeValueUpdate>
| Map of attribute name to the new value and action for the update. |
Header | Type | Description |
---|
CamelAwsDdbBatchResponse
| Map<String,BatchResponse>
| Table names and the respective item attributes from the tables. |
CamelAwsDdbUnprocessedKeys
| Map<String,KeysAndAttributes>
| Contains a map of tables and their respective keys that were not processed with the current response. |
Header | Type | Description |
---|
CamelAwsDdbAttributes
| Map<String, AttributeValue>
| The list of attributes returned by the operation. |
Header | Type | Description |
---|
CamelAwsDdbProvisionedThroughput
| ProvisionedThroughputDescription
| The value of the ProvisionedThroughput property for this table |
CamelAwsDdbCreationDate
| Date
| Creation DateTime of this table. |
CamelAwsDdbTableItemCount
| Long
| Item count for this table. |
CamelAwsDdbKeySchema
| KeySchema
| The KeySchema that identifies the primary key for this table. From Camel 2.16.0: the type of this header is List<KeySchemaElement> and not KeySchema . |
CamelAwsDdbTableName
| String
| The table name. |
CamelAwsDdbTableSize
| Long
| The table size in bytes. |
CamelAwsDdbTableStatus
| String
| The status of the table: CREATING , UPDATING , DELETING , ACTIVE |
Header | Type | Description |
---|
CamelAwsDdbProvisionedThroughput
| ProvisionedThroughputDescription
| The value of the ProvisionedThroughput property for this table |
CamelAwsDdbCreationDate
| Date
| Creation DateTime of this table. |
CamelAwsDdbTableItemCount
| Long
| Item count for this table. |
CamelAwsDdbKeySchema
| KeySchema
| The KeySchema that identifies the primary key for this table. From Camel 2.16.0: the type of this header is List<KeySchemaElement> and not KeySchema . |
CamelAwsDdbTableName
| String
| The table name. |
CamelAwsDdbTableSize
| Long
| The table size in bytes. |
CamelAwsDdbTableStatus
| String
| The status of the table: CREATING , UPDATING , DELETING , ACTIVE . |
CamelAwsDdbReadCapacity
| Long
| ReadCapacityUnits property of this table.
|
CamelAwsDdbWriteCapacity
| Long
| WriteCapacityUnits property of this table.
|
Header | Type | Description |
---|
CamelAwsDdbAttributes
| Map<String, AttributeValue>
| The list of attributes returned by the operation. |
Header | Type | Description |
---|
CamelAwsDdbAttributes
| Map<String, AttributeValue>
| The list of attributes returned by the operation. |
Header | Type | Description |
---|
CamelAwsDdbItems
| List<java.util.Map<String,AttributeValue>>
| The list of attributes returned by the operation. |
CamelAwsDdbLastEvaluatedKey
| Key
| Primary key of the item where the query operation stopped, inclusive of the previous result set. |
CamelAwsDdbConsumedCapacity
| Double
| The number of Capacity Units of the provisioned throughput of the table consumed during the operation. |
CamelAwsDdbCount
| Integer
| Number of items in the response. |
Header | Type | Description |
---|
CamelAwsDdbItems
| List<java.util.Map<String,AttributeValue>>
| The list of attributes returned by the operation. |
CamelAwsDdbLastEvaluatedKey
| Key
| Primary key of the item where the query operation stopped, inclusive of the previous result set. |
CamelAwsDdbConsumedCapacity
| Double
| The number of Capacity Units of the provisioned throughput of the table consumed during the operation. |
CamelAwsDdbCount
| Integer
| Number of items in the response. |
CamelAwsDdbScannedCount
| Integer
| Number of items in the complete scan before any filters are applied. |
Header | Type | Description |
---|
CamelAwsDdbAttributes
| Map<String, AttributeValue>
| The list of attributes returned by the operation. |
Advanced AmazonDynamoDB configuration
If you need more control over the AmazonDynamoDB
instance configuration you can create your own instance and refer to it from the URI:
from("direct:start")
.to("aws-ddb://tableName?amazonDDBClient=#client");
The #client
refers to a AmazonDynamoDB
in the Registry.
For example if your Camel Application is running behind a firewall:
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonDynamoDB client = new AmazonDynamoDBClient(awsCredentials, clientConfiguration);
registry.bind("client", client);
Dependencies
Maven users will need to add the following dependency to their pom.xml
.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
where ${camel-version
} must be replaced by the actual version of Camel (2.10 or higher).