Amazon S3 DynamoDB Connector
Dieser Adapter speichert Daten im Amazon S3 DynamoDB Storage und ermöglicht die Verwendung der X4 BPMS, um Daten in Cloud-Umgebungen zu persistieren. Amazon S3 DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankdienst, der schnelle und vorhersehbare Leistung bei nahtloser Skalierbarkeit gewährleistet.
Eigenschaften (Properties)
Operation | Vom Adapter ausgeführte Operation Mögliche Werte:
|
Parameter
Adapter | Adapter-Hauptklasse (nicht verändern!) Mögliche Werte: de.softproject.integration.adapter.amazondynamodb.AmazonDynamoDBAdapter: Hauptklasse (Standard) |
keyID | Zugangsschlüssel-ID für Anfragen an AWS (Amazon Web Services)
Mögliche Werte: Beliebige Zeichenkette mit der Zugangsschlüssel-ID, z. B. |
secretKey | Geheimer Zugangsschlüssel für Anfragen an AWS
Mögliche Werte: Beliebige Zeichenkette mit der geheimen Zugangsschlüssel, z. B. |
region | Region der Domains Mögliche Werte: Beliebige Zeichenkette mit dem Namen der Region, z. B.
|
tableName | Tabellen-Name Mögliche Werte: Beliebige Zeichenkette mit dem Tabellen-Namen Folgende Namensregeln gelten für Tabellen-Namen:
|
partitionKey , partitionType und partitionKeyValue | Elemente des Tabellen-Primärschlüssels Mögliche Werte:
|
sortKey , sortType and sortKeyValue | Elemente des Tabellen-Primärschlüssels Mögliche Werte:
|
readCapacityUnits , writeCapacitiyUnits | Read/Write Capacity Units Mögliche Werte:
|
scalableType | Definiert den Skalierbarkeitstyp für Mögliche Werte:
|
autoScaling | Legt fest, dass die Tabelle mithilfe von Mögliche Werte:
|
scalingMinCapacity , scalingMaxCapacity , scalingTargetValue , scalingInCooldown , scalingOutCooldown | Definiert die Scaling-Parameter für Mögliche Werte:
|
arnRole | ARN der Rolle, die autorisiert ist, AutoScaling für die Tabellenressource anzuwenden. Mögliche Werte:
|
consistentRead | DynamoDB verwendet Eventually Consistent Reads, sofern nichts anderes angeben ist. Leseoperationen wie |
Statuswerte
1 | Die Adapter-Operation wurde erfolgreich ausgeführt |
0 | Operation
|
-1 | Bei der Ausführung des Adapters kam es zu einem Fehler |
Input
Der Adapter erwartet eine vordefinierte XML-Struktur als Input. Die Struktur ist abhängig von der verwendeten Operation.
PutItem
-Operation:Erwartete Struktur für die 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>
Für die Operation
PutItem
gibt es keine Einschränkungen für Elementnamen. Die Attributename
,value
undtype
sind jedoch erforderlich.BatchGetMultipleItems
-Operation:Erwartete Struktur für die Operation BatchGetMultipleItems
XML<?xml version="1.0" encoding="UTF-8" ?> <PrimaryKeyValues> <PrimaryKey partitionKey="2" SortKey="Carlos" /> <PrimaryKey partitionKey="5" SortKey="Luis" /> </PrimaryKeyValues>
Primary Keys können für verschiedene Objekte spezifiziert werden. Wenn das Objekt mit einer Tabelle übereinstimmt, in der nur
partitionKey
definiert ist, darf nurpartitionKey
angegeben werden, andernfallspartitionKey
undSortKey
.BatchPutMultipleItems
-Operation:Erwartete Struktur für die 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>
Es können mehrere Items spezifiziert werden. In den Items können Attribute vom Typ Boolean (BOOL), String (S), Number (N), Map (MAP), List (LIST) und Binary (B) spezifiziert werden. Der Output dieser Operation ist dieselbe XML-Datei. Das kann für weitere Operationen nützlich sein.
BatchDeleteMultipleItems
-Operation:Erwartete Struktur für die 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>
In diesem Input werden die Primärschlüssel der Elemente angegeben, die gelöscht werden sollen. Wenn der Primärschlüssel nur aus dem
partitionKey
besteht, wird nur derpartionKey
benötigt. Wenn der Primärschlüssel auspartitionKey
undSortKey
besteht, werden beide Schlüssel benötigt, damit das zu löschende Element eindeutig ist. Der Output dieser Operation ist auch der Input.UpdateItem
-Operation:Erwartete Struktur für die 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 für updateItem
ADD: Fügt ein neues Attribut im Element hinzu.
PUT: Aktualisiert den Wert des Attribut im angegebenen Element.
DELETE: Löscht das Attribut aus dem Element.
Query
-Operation:Erwartete Struktur für die 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>
Das Elternelement
Query
enthält drei Elemente:KeyCondition
: enthält nur den spezifischenpartitionKey
und falls vorhandenSortKey
, die folgende Bedingungen erfüllen:Der Komparator zwischen
partitionKey
undSortKey
ist immer "AND".partitionKey
ist obligatorisch und wird immer mit "=" verwendet.- Wenn
SortKey
verwendet wird, können folgende Operatoren verwendet werden: =, >, <, >=, <=, !=, BETWEEN, begins_with partitionKey
undSortKey
dürfen nicht mit für AWS DynamoDB reservierten Wörtern übereinstimmen.
OtherFilters
: spezifiziert Bedingungen für die restlichen Attribute, die nicht Teil des Primärschlüssels sind. Die betroffenen Attribute dürfen nicht mit für AWS Dynamo DB reservierten Wörtern übereinstimmen.QueryParameters
: spezifiziert das Mapping zwischen den verwendeten Parametern und Ihren entsprechenden Werten. Der Typ jedes Parameters muss spezifiziert werden.
Output
Je nach Operation gibt der Adapter Daten in verschiedenen XML-Strukturen aus:
GetItem
-OperationBeispiel-Output für die 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:Beispiel-Output für die 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>
Für jedes Element entsteht ein
Item
-Element mit Feldern für den Primärschlüssel und die dazugehörigen Werte. Innerhalb desItem
-Elements findet sich eine Liste der dazugehörigen Attribute.ListTables
-OperationBeispiel-Output für die Operation ListTables
XML<?xml version="1.0" encoding="UTF-8" ?> <Result> <sampleItems /> </Result>
Es wirt ein Elternelement
Result
geliefert, das ein Element für jede Tabelle enthält, die im Account deklariert ist.Query
-OperationBeispiel-Output für die 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>
Es wird ein Elternelement
Result
geliefert. Das AttributhasMorePages
gibt an, ob das Ergebnis noch mehr Seiten hat, die angezeigt werden sollen oder nicht. Das ist hilfreich bei umfangreichen Antworten. Für jedes Element, das die Abfragebedingungen erfüllt, wirt einItem
-Element erzeugt, das alle Attribute enthält.