API Compatibility
This section describes APIs supported by GeminiDB (DynamoDB API compatible) and precautions.
Usage Notes
- GeminiDB (DynamoDB API compatible) allows you to add, delete, and modify tables only through DynamoDB APIs. Tables can only be read on the console.
- Tables created through non-DynamoDB APIs cannot be used on GeminiDB (DynamoDB API compatible) instances.
- In the current version, traffic statistics, traffic limit, and transaction functions (TransactWriteItems and TransactGetItems) are not supported.
- In the current version, on-demand backup APIs CreateBackup, DescribeBackup, DeleteBackup, ListBackups, and RestoreTableFromBackup are not supported.
- Hash or partition keys determine where items are stored in an internal storage device of a GeminiDB (DynamoDB API compatible) instance. Amazon DynamoDB uses a dedicated hash function, while GeminiDB (DynamoDB API compatible) uses the Murmur3 algorithm. As a result, the sequence of data returned by a scan operation is different.
- A load balancing plug-in evenly sends requests from applications to all nodes. If this plug-in is not used, requests are sent only to a specified endpoint address. To obtain the plug-in package, choose Service Tickets > Create Service Ticket in the upper right corner of the console and contact customer service of GeminiDB (DynamoDB API compatible).
- The table or index name cannot contain periods (.).
- Due to different encoding methods, the size of each row of data in a table on a GeminiDB (DynamoDB API compatible) instance is not strictly limited to 400 KB.
- All DDL APIs are synchronous APIs.
Load Balancing
DynamoDB applications typically connect to a URL and then distribute requests within a server. To evenly distribute requests of GeminiDB (DynamoDB API compatible) to all nodes, a cost-effective and small-capacity database is attached to DynamoDB SDK. Before DynamoDB SDK sends requests, an interceptor changes the destination address in the request header to an IP address of any available node in the current cluster to achieve load balancing. The following is an example:
TABLE_NAME ='user' // seed url URL = boto3_lb.setup(['***.***.***.***'],'http',8000,'fake.domain.com') dynamodb = boto3.resource('dynamodb', endpoint_url=URL,region_name='None', aws_access_key_id='None', aws_secret_access_key='None')
Supported Expressions
ConditionExpression of GeminiDB (DynamoDB API compatible) supports the following function syntax:
function ::= attribute_exists (path) | attribute_not_exists (path) | attribute_type (path, type) | begins_with (path, substr) | contains (path, operand) The value of operand in contains(path,operand) can only be an attribute value (that is, the input value placeholder).
UpdateExpression of GeminiDB (DynamoDB API compatible) supports the following syntax:
update-expression ::= [ SET action [, action] ... ] [ REMOVE action [, action] ...] [ ADD action [, action] ... ] [ DELETE action [, action] ...] set-action ::= path =value value ::= operand | operand '+' operand | operand '-' operand operand ::= path | function function ::= if_not_exists (path, value) | list_append (list1, list2) remove-action ::= path add-action ::= path value delete-action ::= path value In the SET path = operand syntax, the value of operand cannot be set to path. In the SET path = operand1 '+'|'-' operand2 syntax, the value of operand1 must be set to path, and the value of operand2 must be an attribute value. In the SET path = if_not_exists (path, value) syntax, values of the two path parameters must be the same, and the values must be expression attribute values. All values can only be placeholder expressions, for example, :placeholder.
Compatible APIs
API |
---|
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
CreateTable |
Request parameters |
AttributeDefinitions |
Yes |
Yes |
- |
KeySchema |
Yes |
Yes |
- |
||
TableName |
Yes |
Yes |
The value contains 3 to 48 characters. The regular expression is ([\w-]+). |
||
BillingMode |
No |
No |
Billing parameter, which is not supported. |
||
GlobalSecondaryIndexes |
No |
Yes |
- |
||
LocalSecondaryIndexes |
No |
Yes |
- |
||
ProvisionedThroughput |
No |
Yes |
- |
||
SSESpecification |
No |
No |
This parameter is not supported in the current version and is being planned. |
||
StreamSpecification |
No |
No |
This parameter is not supported in the current version and is being planned. |
||
Tags |
No |
No |
This parameter is not supported in the current version and is being planned. |
||
Response parameter |
TableDescription |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
UpdateTable |
Request parameters |
AttributeDefinitions |
No |
Yes |
- |
BillingMode |
No |
No |
Billing parameter, which is not supported. |
||
GlobalSecondaryIndexesUpdates |
Yes |
Yes |
CREATE and DELETE statements are supported. UPDATE statements are not supported. |
||
ProvisionedThroughput |
No |
No |
Billing parameter, which is not supported. |
||
ReplicaUpdates |
No |
No |
Strong consistency parameter by default |
||
SSESpecification |
No |
No |
This parameter is not supported in the current version and is being planned. |
||
StreamSpecification |
No |
No |
This parameter is not supported in the current version and is being planned. |
||
TableName |
Yes |
Yes |
- |
||
Response parameter |
TableDescription |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
DescribeTable |
Request parameter |
TableName |
Yes |
Yes |
- |
Response parameter |
Table |
- |
Yes |
The itemCount field is not supported. |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
ListTables |
Request parameters |
ExclusiveStartTableName |
No |
Yes |
- |
Limit |
No |
Yes |
- |
||
Response parameters |
LastEvaluatedTableName |
- |
Yes |
- |
|
TableNames |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
DeleteTable |
Request parameter |
TableName |
Yes |
Yes |
- |
Response parameter |
TableDescription |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
PutItem |
Request parameters |
Item |
Yes |
Yes |
- |
TableName |
Yes |
Yes |
- |
||
ConditionalOperator |
No |
No |
Deprecated parameter. For details, see ConditionExpression. |
||
ConditionExpression |
No |
Yes |
- |
||
Expected |
No |
No |
Deprecated parameter. For details, see ConditionExpression in this API. |
||
ExpressionAttributeNames |
No |
Yes |
- |
||
ExpressionAttributeValues |
No |
Yes |
- |
||
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
ReturnItemCollectionMetrics |
No |
No |
Statistics parameter, which is not supported. |
||
ReturnValues |
No |
Yes |
- |
||
Response parameters |
Attributes |
- |
Yes |
- |
|
ConsumedCapacity |
- |
No |
Billing parameter, which is not supported. |
||
ItemCollectionMetrics |
- |
No |
Statistics parameter, which is not supported. |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
UpdateItem |
Request parameters |
Key |
Yes |
Yes |
- |
TableName |
Yes |
Yes |
- |
||
AttributeUpdates |
No |
No |
Deprecated parameter. For details, see UpdateExpression in this API. |
||
ConditionalOperator |
No |
No |
Deprecated parameter. For details, see UpdateExpression in this API. |
||
ConditionExpression |
No |
Yes |
- |
||
Expected |
No |
No |
Deprecated parameter. For details, see UpdateExpression in this API. |
||
ExpressionAttributeNames |
No |
Yes |
- |
||
ExpressionAttributeValues |
No |
Yes |
- |
||
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
ReturnItemCollectionMetrics |
No |
No |
Statistics parameter, which is not supported. |
||
ReturnValues |
No |
Yes |
- |
||
UpdateExpression |
No |
Yes |
- |
||
Response parameters |
Attributes |
- |
Yes |
- |
|
ConsumedCapacity |
- |
No |
Billing parameter, which is not supported. |
||
ItemCollectionMetrics |
- |
No |
Statistics parameter, which is not supported. |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
GetItem |
Request parameters |
Key |
Yes |
Yes |
- |
TableName |
Yes |
Yes |
- |
||
AttributesToGet |
No |
No |
Deprecated parameter. For details, see ProjectionExpression in this API. |
||
ConsistentRead |
No |
No |
Strong consistency parameter by default |
||
ExpressionAttributeNames |
No |
Yes |
- |
||
ProjectionExpression |
No |
Yes |
- |
||
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
Response parameters |
ConsumedCapacity |
- |
No |
Billing parameter, which is not supported. |
|
Item |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
DeleteItem |
Request parameters |
Key |
Yes |
Yes |
- |
TableName |
Yes |
Yes |
- |
||
ConditionalOperator |
No |
No |
Deprecated parameter. For details, see ConditionExpression in this API. |
||
ConditionExpression |
No |
Yes |
- |
||
Expected |
No |
No |
Deprecated parameter. For details, see ConditionExpression in this API. |
||
ExpressionAttributeNames |
No |
Yes |
- |
||
ExpressionAttributeValues |
No |
Yes |
- |
||
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
ReturnItemCollectionMetrics |
No |
No |
Statistics parameter, which is not supported. |
||
ReturnValues |
No |
Yes |
- |
||
Response parameters |
Attributes |
- |
Yes |
- |
|
ConsumedCapacity |
- |
No |
Billing parameter, which is not supported. |
||
ItemCollectionMetrics |
- |
No |
Statistics parameter, which is not supported. |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
BatchWriteItem |
Request parameters |
RequestItems |
Yes |
Yes |
- |
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
ReturnItemCollectionMetrics |
No |
No |
Statistics parameter, which is not supported. |
||
Response parameters |
ConsumedCapacity |
- |
No |
Billing parameter, which is not supported. |
|
ItemCollectionMetrics |
- |
No |
Statistics parameter, which is not supported. |
||
UnprocessedItems |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
BatchGetItem |
Request parameters |
RequestItems |
Yes |
Yes |
None |
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
Response parameters |
ConsumedCapacity |
- |
No |
Statistics parameter, which is not supported. |
|
Responses |
- |
Yes |
- |
||
UnprocessedKeys |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
Query |
Request parameters |
TableName |
Yes |
Yes |
- |
AttributesToGet |
No |
No |
Deprecated parameter. For details, see ProjectionExpression in this API. |
||
ConditionalOperator |
No |
No |
Deprecated parameter. For details, see ProjectionExpression in this API. |
||
ConsistentRead |
No |
No |
Strong consistency parameter by default |
||
ExclusiveStartKey |
No |
Yes |
- |
||
ExpressionAttributeNames |
No |
Yes |
- |
||
ExpressionAttributeValues |
No |
Yes |
- |
||
FilterExpression |
No |
Yes |
- |
||
IndexName |
No |
Yes |
- |
||
KeyConditionExpression |
No |
Yes |
- |
||
KeyConditions |
No |
No |
Deprecated parameter. For details, see KeyConditionExpression in this API. |
||
Limit |
No |
Yes |
- |
||
ProjectionExpression |
No |
Yes |
- |
||
QueryFilter |
No |
No |
Deprecated parameter. For details, see FilterExpression in this API. |
||
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
ScanIndexForward |
No |
Yes |
- |
||
Select |
No |
Yes |
SELECT COUNT is not supported. |
||
Response parameters |
ConsumedCapacity |
- |
No |
Billing parameter, which is not supported. |
|
Count |
- |
Yes |
- |
||
Items |
- |
Yes |
- |
||
LastEvaluatedKey |
- |
Yes |
- |
||
ScannedCount |
- |
Yes |
- |
API |
Parameter |
Mandatory |
Supported |
Description |
|
---|---|---|---|---|---|
Scan |
Request parameters |
TableName |
Yes |
Yes |
- |
AttributesToGet |
No |
No |
Deprecated parameter. For details, see ProjectionExpression in this API. |
||
ConditionalOperator |
No |
No |
Deprecated parameter. For details, see ConditionExpression in this API. |
||
ConsistentRead |
No |
No |
Strong consistency parameter by default |
||
ExclusiveStartKey |
No |
Yes |
- |
||
ExpressionAttributeNames |
No |
Yes |
- |
||
ExpressionAttributeValues |
No |
Yes |
- |
||
FilterExpression |
No |
Yes |
- |
||
IndexName |
No |
Yes |
- |
||
Limit |
No |
Yes |
- |
||
ProjectionExpression |
No |
Yes |
- |
||
ReturnConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
||
ScanFilter |
No |
No |
Deprecated parameter. For details, see FilterExpression in this API. |
||
Segment |
No |
Yes |
- |
||
Select |
No |
Yes |
SELECT COUNT is not supported. |
||
TotalSegments |
No |
Yes |
- |
||
Response parameters |
ConsumedCapacity |
No |
No |
Billing parameter, which is not supported. |
|
Count |
- |
Yes |
- |
||
Items |
- |
Yes |
- |
||
LastEvaluatedKey |
- |
Yes |
- |
||
ScannedCount |
- |
Yes |
- |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot