Amazon S3 DynamoDB Connector
Amazon S3 DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. The adapter stores data in Amazon S3 DynamoDB Storage allowing to use the X4 BPMS for persisting data in cloud environments.
Properties
Operation | Defines the operation executed by the adapter Possible values:
|
Parameters
Adapter | Main adapter class (do not change!) Possible values: de.softproject.integration.adapter.amazondynamodb.AmazonDynamoDBAdapter: Main class (default) |
keyID | Access key ID used to sign programmatic requests to AWS Possible values: Any string containing the access key Id, e.g. |
secretKey | Secret access key used to sign programmatic requests to AWS Possible values: Any string containing the secret access key e.g. |
region | Domain region Possible values: Any string containing the region name, e.g. |
tableName | Table name Possible values: Any string containing the table name The following naming rules apply to table names:
|
partitionKey , partitionType and partitionKeyValue | Items of the table primary key Possible values:
|
sortKey , sortType and sortKeyValue | Items of the table primary key Possible values:
|
readCapacityUnits , writeCapacityUnits | Read/Write Capacity Units Possible values:
|
scalableType | Defines the scalable type for AutoScaling operation. Possible values:
|
autoScaling | Defines if the new table is created by using AutoScaling. In case of a check, all scaling parameters must be specified. Possible values:
|
| Defines scaling parameters for AutoScaling operation. Possible values:
|
arnRole | ARN of the role authorized to handle AutoScaling operation for the resource of tables. Possible values:
|
consistentRead | DynamoDB uses eventually consistent reads unless it is specified otherwise. Read operations such as |
Status values
1 | The operation was executed successfully |
0 | Operation
|
-1 | An error occurred during the operation's execution |
Input
The adapter expects a specific XML structure as input. The structure depends on the operation used.
PutItem
operation:Expected structure for operation PutItem
XML<?xml version="1.0" encoding="UTF-8" ?> <RootElement> <Item> <Attribute name="..Name of PartionKey.." type="..Type of Partition.." value="..Value of PartitionKey.."/> <Attribute name="..Name of SortKey.." type="..Type of Sort.." value="..Value of SortKey.."/> <Attribute name="..Attribute Name.." type="..Attribute Type.." value="..Attribute Value.."/> </Item> </RootElement>
In case of the operation
PutItem
there are no restrictions on element names. However the attributesname
,value
andtype
are required.BatchGetMultipleItems
operation:Expected structure for operation BatchGetMultipleItems
XML<?xml version="1.0" encoding="UTF-8" ?> <PrimaryKeyValues> <PrimaryKey partitionKey="2" SortKey="Carlos" /> <PrimaryKey partitionKey="5" SortKey="Luis" /> </PrimaryKeyValues>
Primary keys can be specified for different objects. If the object matches a table where only
partitionKey
is defined, onlypartitionKey
may be specified, otherwisepartitionKey
andSortKey
.BatchPutMultipleItems
operation:Expected structure for operation BatchPutMultipleItems
XML<?xml version="1.0" encoding="UTF-8" ?> <RootElement> <Item> <Attribute name="ID" type="N" value="5" /> <Attribute name="Name" type="S" value="Luis" /> <Attribute name="Phone" type="N" value="0034666777888" /> <Attribute name="Bonus" type="BOOL" value="true" /> <Attribute name="Colours" type="LIST"> <Attribute type="S" value="Red" /> <Attribute type="S" value="Green" /> <Attribute type="S" value="Blue" /> <Attribute name="Cars" type="MAP"> <Attribute5 name="Phone" type="N" value="637559681" /> <Attribute6 name="Bonus" type="BOOL" value="true" /> <Attribute7 name="Profession" type="S" value="Programmer" /> <Attribute7 name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr" /> </Attribute> </Attribute> <Attribute name="Cars" type="MAP"> <Attribute5 name="Phone" type="N" value="637559681" /> <Attribute6 name="Bonus" type="BOOL" value="true" /> <Attribute7 name="Profession" type="S" value="Programmer" /> <Attribute7 name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr" /> </Attribute> </Item> <Item> <Attribute1 name="ID" type="N" value="5" /> <Attribute3 name="Name" type="S" value="Luis" /> <Attribute4 name="Surname" type="S" value="Delgado" /> <Attribute2 name="Address" type="S" value="Pirandello" /> <Attribute5 name="Phone" type="N" value="637559681" /> <Attribute6 name="Bonus" type="BOOL" value="true" /> <Attribute7 name="Profession" type="S" value="Programmer" /> <Attribute7 name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr" /> </Item> </RootElement>
Several items can be specified. In the items, attributes of type Boolean (BOOL), String (S), Number (N), Map (MAP), List (LIST) and Binary (B) can be specified (see example). The output of this operation is the same XML file. This can be useful for further operations.
BatchDeleteMultipleItems
operation:Expected structure for operation BatchDeleteMultipleItems
XML<?xml version="1.0" encoding="UTF-8" ?> <RootElement> <Item> <Attribute1 name="ID" type="N" value="7" /> <Attribute7 name="Name" type="S" value="Luis" /> </Item> <Item> <Attribute1 name="ID" type="N" value="6" /> <Attribute7 name="Name" type="S" value="Luis" /> </Item> </RootElement>
This input specifies the primary keys of the elements to be deleted. If the primary key consists only of
partitionKey
, onlypartionKey
is needed. If the primary key consists ofpartitionKey
andSortKey
, both keys are needed to make the item to be deleted unique. The output of this operation is also the input.UpdateItem
operation:Expected structure for operation updateItem
XML<?xml version="1.0" encoding="UTF-8"?> <Input> <Item> <Attribute name="ID" type="N" value="5" action="ADD|PUT|DELETE"></Attribute> <Attribute name="Name" type="S" value="Luis" action="ADD|PUT|DELETE"></Attribute> <Attribute name="Surname" type="S" value="Delgado" action="ADD|PUT|DELETE"></Attribute> </Item> </Input>
Actions for updateItem
ADD: Mathematically adds a numerical value to an existing numerical attribute value.
PUT: Creates a new attribute or overwrites an existing attribute value.
DELETE: Deletes the attribute from the item.
Query
operation:Expected structure for operation Query
XML<?xml version="1.0" encoding="UTF-8" ?> <Query> <KeyCondition>ID=:param1</KeyCondition> <OtherFilters>Colors[3].Profession=:param3 or DocumentCode=:param2</OtherFilters> <QueryParameters> <Parameter type="N" alias=":param1" value="5" /> <Parameter type="B" alias=":param2" value="cXdycWZnZGFzMTIyMzQ1NXNkZmZmcg==" /> <Parameter type="S" alias=":param3" value="Programmer" /> </QueryParameters> </Query>
Parent element
Query
consists of three elements:KeyCondition
: Only to specifypartitionKey
and if presentSortKey
, meeting following conditions:- Comparator between
partitionKey
andSortKey
is always "AND". partitionKey
is mandatory and always used with "=".- If
SortKey
is used, following operators can be used: =, >, <, >=, <=, !=, BETWEEN, begins_with. partitionKey
andSortKey
must not match with reserved words for AWS DynamoDB.
- Comparator between
OtherFilters
: Specifies conditions for the rest of attributes that are not part of the primary key. The attributes must not match with reserved words for AWS DynamoDB .QueryParameters
: Specifies the mapping between used parameters and their corresponding values. The type of every parameter must be specified.
Output
The adapter returns different kind of documents depending on the executed operation:
GetItem
operation:Sample output for operation GetItem
XML<?xml version="1.0" encoding="UTF-8" <Result> <Item partitionKey="ID" partitionKeyValue="2" SortKey="Name" SortKeyValue="Carlos"> <Attribute name="Address" type="S" value="Pirandello"/> <Attribute name="Phone" type="N" value="637559681"/> <Attribute name="Bonus" type="BOOL" value="true"/> <Attribute name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr"/> <Attribute name="Surname" type="S" value="Delgado"/> <Attribute name="Profession" type="S" value="Programmer"/> </Item> </Result>
BatchGetMultipleItems
operation:Sample output for operation BatchGetMultipleItems
XML<?xml version="1.0" encoding="UTF-8" ?> <Result> <Item partitionKey="ID" partitionKeyValue="5" SortKey="Name" SortKeyValue="Luis"> <Attribute type="MAP" name="Cars"> <Attribute type="N" name="Phone" value="637559681" /> <Attribute type="BOOL" name="Bonus" value="true" /> <Attribute type="B" name="DocumentCode" value="qwrqfgdas1223455sdfffr" /> <Attribute type="S" name="Profession" value="Programmer" /> </Attribute> <Attribute type="N" name="Phone" value="34666777888" /> <Attribute type="LIST" name="Colours"> <Attribute type="S" value="Red" /> <Attribute type="S" value="Green" /> <Attribute type="S" value="Blue" /> <Attribute type="MAP" name="Colours"> <Attribute type="N" name="Phone" value="637559681" /> <Attribute type="BOOL" name="Bonus" value="true" /> <Attribute type="B" name="DocumentCode" value="qwrqfgdas1223455sdfffr" /> <Attribute type="S" name="Profession" value="Programmer" /> </Attribute> </Attribute> <Attribute type="BOOL" name="Bonus" value="true" /> </Item> <Item partitionKey="ID" partitionKeyValue="2" SortKey="Name" SortKeyValue="Carlos"> <Attribute type="S" name="Address" value="Pirandello" /> <Attribute type="N" name="Phone" value="637559681" /> <Attribute type="BOOL" name="Bonus" value="true" /> <Attribute type="B" name="DocumentCode" value="qwrqfgdas1223455sdfffr" /> <Attribute type="S" name="Surname" value="Delgado" /> <Attribute type="S" name="Profession" value="Programmer" /> </Item> </Result>
For each element, an
Item
element with fields for the primary key and the associated values is created. Within theItem
element is a list of the associated attributes.ListTables
operation:Sample output for operation ListTables
XML<?xml version="1.0" encoding="UTF-8" ?> <Result> <sampleItems /> </Result>
Parent element
Result
is provided that contains one element for each table declared in the account.Query
operation:Sample output for operation Query
XML<?xml version="1.0" encoding="UTF-8" ?> <Result hasMorePages="false"> <Item> <Attribute value="{Phone=637559681, Bonus=true, DocumentCode=[B@231dee4d, Profession=Programmer}" name="Cars" /> <Attribute value="34666777888" name="Phone" /> <Attribute value="[Red, Green, Blue, {Phone=637559681, Bonus=true, DocumentCode=[B@5857d888, Profession=Programmer}]" name="Colours" /> <Attribute value="true" name="Bonus" /> <Attribute value="5" name="ID" /> <Attribute value="Luis" name="Name" /> </Item> </Result>
Parent element
Result
is delivered. AttributehasMorePages
specifies if the result has more pages to display or not. This is useful for large responses. For each element that matches the query conditions, an item element is created that contains all attributes.