接口兼容性介绍
本章节介绍GeminiDB兼容DynamoDB接口支持的接口详情以及注意事项。
使用须知
- GeminiDB兼容DynamoDB接口支持使用DynamoDB的API对表进行增删改操作,控制台只支持读操作。
- 非DynamoDB的API创建的表,无法在GeminiDB兼容DynamoDB接口中使用。
- 当前版本不支持流量统计、流量限制、事务功能(TransactWriteItems, TransactGetItems)。
- 当前版本不支持按需备份接口:CreateBackup、DescribeBackup、 DeleteBackup、 ListBackups、 RestoreTableFromBackup。
- 在DynamoDB中,哈希键(或分区键)决定项目存储在DynamoDB内部存储中的位置。DynamoDB使用专有的哈希函数,GeminiDB兼容DynamoDB接口使用的是Murmur3算法,这种差异会导致Scan操作返回的数据顺序不同。
- 表/索引名称中不能包含的字符有:"."。
- 由于编码方式不同,GeminiDB兼容DynamoDB接口表中的每行数据不会严格限制400KB大小。
- DDL接口均为同步接口。
- 通常情况下,索引同步可在1秒内完成;在极端场景下,延迟最多延长至1~2分钟。
支持的表达式
GeminiDB兼容DynamoDB接口中的ConditionExpression支持的函数语法如下:
function ::=
attribute_exists (path)
| attribute_not_exists (path)
| attribute_type (path, type)
| begins_with (path, substr)
| contains (path, operand)
contains(path,operand)中operand只能是属性值(即传入的value占位符)。 GeminiDB兼容DynamoDB接口中的UpdateExpression语法如下:
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
SET path = operand语法中,不支持operand是path的场景。
SET path = operand1 '+'|'-' operand2语法中,operand1必须等于path,operand2必须是属性值
SET path = if_not_exists (path, value)语法中,两个path必须相等,且value只能是表达式属性值。
所有的value只能是占位符,比如':placeholder'。 兼容的接口列表
接口名称 |
|---|
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
CreateTable | 请求参数 | AttributeDefinitions | 是 | 是 | - |
KeySchema | 是 | 是 | - | ||
TableName | 是 | 是 | Table Name 字符长度3~48,正则表达式([\w-]+)。 | ||
BillingMode | 否 | 否 | 计费属性,暂不支持。 | ||
GlobalSecondaryIndexes | 否 | 是 | - | ||
LocalSecondaryIndexes | 否 | 是 | - | ||
ProvisionedThroughput | 是 | 是 | - | ||
SSESpecification | 否 | 否 | 当前版本不支持,规划中。 | ||
StreamSpecification | 否 | 是 | - | ||
Tags | 否 | 否 | 当前版本不支持,规划中。 | ||
返回参数 | TableDescription | - | 是 | - | |
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
UpdateTable | 请求参数 | AttributeDefinitions | 否 | 是 | - |
BillingMode | 否 | 否 | 计费属性,不予支持。 | ||
GlobalSecondaryIndexesUpdates | 是 | 是 | 支持Create和Delete,不支持Update。 | ||
ProvisionedThroughput | 否 | 否 | 计费属性,不予支持。 | ||
ReplicaUpdates | 否 | 否 | 默认强一致性。 | ||
SSESpecification | 否 | 否 | 当前版本不支持,规划中。 | ||
StreamSpecification | 否 | 是 | - | ||
TableName | 是 | 是 | - | ||
返回参数 | TableDescription | - | 是 | - | |
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
ListTables | 请求参数 | ExclusiveStartTableName | 否 | 是 | - |
Limit | 否 | 是 | - | ||
返回参数 | LastEvaluatedTableName | - | 是 | - | |
TableNames | - | 是 | - | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
PutItem | 请求参数 | Item | 是 | 是 | - |
TableName | 是 | 是 | - | ||
ConditionalOperator | 否 | 否 | 遗弃参数,见ConditionExpression。 | ||
ConditionExpression | 否 | 是 | - | ||
Expected | 否 | 否 | 遗弃参数,见该接口中ConditionExpression字段。 | ||
ExpressionAttributeNames | 否 | 是 | - | ||
ExpressionAttributeValues | 否 | 是 | - | ||
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
ReturnItemCollectionMetrics | 否 | 否 | 统计属性,暂不支持。 | ||
ReturnValues | 否 | 是 | - | ||
返回参数 | Attributes | - | 是 | - | |
ConsumedCapacity | - | 否 | 计费属性,暂不支持。 | ||
ItemCollectionMetrics | - | 否 | 统计属性,暂不支持。 | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
UpdateItem | 请求参数 | Key | 是 | 是 | - |
TableName | 是 | 是 | - | ||
AttributeUpdates | 否 | 否 | 遗弃参数,见该接口中UpdateExpression字段。 | ||
ConditionalOperator | 否 | 否 | 遗弃参数,见该接口中UpdateExpression字段。 | ||
ConditionExpression | 否 | 是 | - | ||
Expected | 否 | 否 | 遗弃参数,见该接口中UpdateExpression字段。 | ||
ExpressionAttributeNames | 否 | 是 | - | ||
ExpressionAttributeValues | 否 | 是 | - | ||
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
ReturnItemCollectionMetrics | 否 | 否 | 统计属性,暂不支持。 | ||
ReturnValues | 否 | 是 | - | ||
UpdateExpression | 否 | 是 | - | ||
返回参数 | Attributes | - | 是 | - | |
ConsumedCapacity | - | 否 | 计费属性,暂不支持。 | ||
ItemCollectionMetrics | - | 否 | 统计属性,暂不支持。 | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
GetItem | 请求参数 | Key | 是 | 是 | - |
TableName | 是 | 是 | - | ||
AttributesToGet | 否 | 否 | 遗弃参数,见该接口中ProjectionExpression字段。 | ||
ConsistentRead | 否 | 否 | 默认强一致性。 | ||
ExpressionAttributeNames | 否 | 是 | - | ||
ProjectionExpression | 否 | 是 | - | ||
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
返回参数 | ConsumedCapacity | - | 否 | 计费属性,暂不支持。 | |
Item | - | 是 | - | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
DeleteItem | 请求参数 | Key | 是 | 是 | - |
TableName | 是 | 是 | - | ||
ConditionalOperator | 否 | 否 | 遗弃参数,见该接口中ConditionExpression字段。 | ||
ConditionExpression | 否 | 是 | - | ||
Expected | 否 | 否 | 遗弃参数,见该接口中ConditionExpression字段。 | ||
ExpressionAttributeNames | 否 | 是 | - | ||
ExpressionAttributeValues | 否 | 是 | - | ||
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
ReturnItemCollectionMetrics | 否 | 否 | 统计属性,暂不支持。 | ||
ReturnValues | 否 | 是 | - | ||
返回参数 | Attributes | - | 是 | - | |
ConsumedCapacity | - | 否 | 计费属性,暂不支持。 | ||
ItemCollectionMetrics | - | 否 | 统计属性,暂不支持。 | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
BatchWriteItem | 请求参数 | RequestItems | 是 | 是 | - |
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
ReturnItemCollectionMetrics | 否 | 否 | 统计属性,暂不支持。 | ||
返回参数 | ConsumedCapacity | - | 否 | 计费属性,暂不支持。 | |
ItemCollectionMetrics | - | 否 | 统计属性,暂不支持。 | ||
UnprocessedItems | - | 是 | - | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
BatchGetItem | 请求参数 | RequestItems | 是 | 是 | 无 |
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
返回参数 | ConsumedCapacity | - | 否 | 统计属性,暂不支持。 | |
Responses | - | 是 | - | ||
UnprocessedKeys | - | 是 | - | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
Query | 请求参数 | TableName | 是 | 是 | - |
AttributesToGet | 否 | 否 | 遗弃参数,见该接口中ProjectionExpression字段。 | ||
ConditionalOperator | 否 | 否 | 遗弃参数,见该接口中ProjectionExpression字段。 | ||
ConsistentRead | 否 | 否 | 默认强一致性。 | ||
ExclusiveStartKey | 否 | 是 | - | ||
ExpressionAttributeNames | 否 | 是 | - | ||
ExpressionAttributeValues | 否 | 是 | - | ||
FilterExpression | 否 | 是 | - | ||
IndexName | 否 | 是 | - | ||
KeyConditionExpression | 否 | 是 | - | ||
KeyConditions | 否 | 否 | 遗弃参数,见该接口中KeyConditionExpression字段。 | ||
Limit | 否 | 是 | - | ||
ProjectionExpression | 否 | 是 | - | ||
QueryFilter | 否 | 否 | 遗弃参数,见该接口中FilterExpression字段。 | ||
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
ScanIndexForward | 否 | 是 | - | ||
Select | 否 | 是 | 不支持Count。 | ||
返回参数 | ConsumedCapacity | - | 否 | 计费属性,暂不支持。 | |
Count | - | 是 | - | ||
Items | - | 是 | - | ||
LastEvaluatedKey | - | 是 | - | ||
ScannedCount | - | 是 | - | ||
接口名称 | 参数 | 是否必选 | 是否支持 | 备注 | |
|---|---|---|---|---|---|
Scan | 请求参数 | TableName | 是 | 是 | - |
AttributesToGet | 否 | 否 | 遗弃参数,见该接口中ProjectionExpression字段。 | ||
ConditionalOperator | 否 | 否 | 遗弃参数,见该接口中ConditionExpression字段。 | ||
ConsistentRead | 否 | 否 | 默认强一致性。 | ||
ExclusiveStartKey | 否 | 是 | - | ||
ExpressionAttributeNames | 否 | 是 | - | ||
ExpressionAttributeValues | 否 | 是 | - | ||
FilterExpression | 否 | 是 | - | ||
IndexName | 否 | 是 | - | ||
Limit | 否 | 是 | - | ||
ProjectionExpression | 否 | 是 | - | ||
ReturnConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | ||
ScanFilter | 否 | 否 | 遗弃参数,该接口中FilterExpression字段。 | ||
Segment | 否 | 是 | - | ||
Select | 否 | 是 | 不支持Count类型。 | ||
TotalSegments | 否 | 是 | - | ||
返回参数 | ConsumedCapacity | 否 | 否 | 计费属性,暂不支持。 | |
Count | - | 是 | - | ||
Items | - | 是 | - | ||
LastEvaluatedKey | - | 是 | - | ||
ScannedCount | - | 是 | - | ||

