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.
PutItemoperation: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
PutItemthere are no restrictions on element names. However the attributesname,valueandtypeare required.BatchGetMultipleItemsoperation: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
partitionKeyis defined, onlypartitionKeymay be specified, otherwisepartitionKeyandSortKey.BatchPutMultipleItemsoperation: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.
BatchDeleteMultipleItemsoperation: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, onlypartionKeyis needed. If the primary key consists ofpartitionKeyandSortKey, both keys are needed to make the item to be deleted unique. The output of this operation is also the input.UpdateItemoperation: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.
Queryoperation: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
Queryconsists of three elements:KeyCondition: Only to specifypartitionKeyand if presentSortKey, meeting following conditions:- Comparator between
partitionKeyandSortKeyis always "AND". partitionKeyis mandatory and always used with "=".- If
SortKeyis used, following operators can be used: =, >, <, >=, <=, !=, BETWEEN, begins_with. partitionKeyandSortKeymust 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:
GetItemoperation: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>BatchGetMultipleItemsoperation: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
Itemelement with fields for the primary key and the associated values is created. Within theItemelement is a list of the associated attributes.ListTablesoperation:Sample output for operation ListTables
XML<?xml version="1.0" encoding="UTF-8" ?> <Result> <sampleItems /> </Result>Parent element
Resultis provided that contains one element for each table declared in the account.Queryoperation: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
Resultis delivered. AttributehasMorePagesspecifies 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.