更新时间:2024-04-10 GMT+08:00
分享

接口兼容性介绍

本章节介绍GeminiDB DynamoDB支持的接口详情以及注意事项。

使用须知

  • 流量统计以及流量限制,当前版本不支持。
  • Stream功能、事务功能(TransactWriteItems, TransactGetItems) 不支持。
  • 不支持按需备份接口:CreateBackup、DescribeBackup、 DeleteBackup, ListBackups, RestoreTableFromBackup。
  • 在DynamoDB中,哈希键(或分区键)决定项目将存储在DynamoDB内部存储中的位置。DynamoDB使用专有的哈希函数,采用的是Murmur3算法,这种差异会导致Scan操作在DynamoDB和Cassnadra数据返回的顺序不同。
  • DynamoDB应用程序指定一个Endpoint地址,采用客户端的负载均衡,将请求均匀的发送到后端节点。若不使用该插件,则只会连接单个Endponit。详细负载均衡代码包可联系客服提供。
  • 表/索引名称中不能包含.。
  • 由于编码方式的不同,GeminiDB DynamoDB的每行数据大小不会严格400K限制,
  • DDL接口均为同步接口。

负载均衡

DynamoDB应用程序通常连接的一个URL,在其内部会进行请求的分发。我们希望DynamoDB接口的请求均匀的分布在所有的节点,实现这个目标DynamoDB提供了低成本并且小型的库,将它附加到DynamoDB SDK。其基本原理是客户端维护当前DB集群存活的节点列表,在DynamoDB SDK发送请求前拦截器会修改请求头中的目标地址,从而达到负载均衡的目的。下面提供简单的使用示例:

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')

支持的表达式

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只能v占位符,比如':placeholder'。

兼容的接口列表

表2 CreateTable接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

CreateTable

请求参数

AttributeDefinitions

-

KeySchema

-

TableName

Table Name 字符长度3~48,正则表达式([\w-]+)。

BillingMode

计费属性,暂不支持。

GlobalSecondaryIndexes

-

LocalSecondaryIndexes

-

ProvisionedThroughput

-

SSESpecification

当前版本不支持,规划中。

StreamSpecification

当前版本不支持,规划中。

Tags

当前版本不支持,规划中。

返回参数

TableDescription

-

-

表3 UpdateTable接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

UpdateTable

请求参数

AttributeDefinitions

-

BillingMode

计费属性,不予支持。

GlobalSecondaryIndexesUpdates

支持Create和Delete,不支持Update。

ProvisionedThroughput

计费属性,不予支持。

ReplicaUpdates

默认强一致性。

SSESpecification

当前版本不支持,规划中。

StreamSpecification

当前版本不支持,规划中。

TableName

-

返回参数

TableDescription

-

-

表4 DescribeTable接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

DescribeTable

请求参数

TableName

-

返回参数

Table

-

不支持itemCount字段。

表5 ListTables接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

ListTables

请求参数

ExclusiveStartTableName

-

Limit

-

返回参数

LastEvaluatedTableName

-

-

TableNames

-

-

表6 DeleteTable接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

DeleteTable

请求参数

TableName

-

返回参数

TableDescription

-

-

表7 PutItem接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

PutItem

请求参数

Item

-

TableName

-

ConditionalOperator

遗弃参数,见ConditionExpression。

ConditionExpression

-

Expected

遗弃参数,见该接口中ConditionExpression字段。

ExpressionAttributeNames

-

ExpressionAttributeValues

-

ReturnConsumedCapacity

计费属性,暂不支持。

ReturnItemCollectionMetrics

统计属性,暂不支持。

ReturnValues

-

返回参数

Attributes

-

-

ConsumedCapacity

-

计费属性,暂不支持。

ItemCollectionMetrics

-

统计属性,暂不支持。

表8 UpdateItem接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

UpdateItem

请求参数

Key

-

TableName

-

AttributeUpdates

遗弃参数,见该接口中UpdateExpression字段。

ConditionalOperator

遗弃参数,见该接口中UpdateExpression字段。

ConditionExpression

-

Expected

遗弃参数,见该接口中UpdateExpression字段。

ExpressionAttributeNames

-

ExpressionAttributeValues

-

ReturnConsumedCapacity

计费属性,暂不支持。

ReturnItemCollectionMetrics

统计属性,暂不支持。

ReturnValues

-

UpdateExpression

-

返回参数

Attributes

-

-

ConsumedCapacity

-

计费属性,暂不支持。

ItemCollectionMetrics

-

统计属性,暂不支持。

表9 GetItem接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

GetItem

请求参数

Key

-

TableName

-

AttributesToGet

遗弃参数,见该接口中ProjectionExpression字段。

ConsistentRead

默认强一致性。

ExpressionAttributeNames

-

ProjectionExpression

-

ReturnConsumedCapacity

计费属性,暂不支持。

返回参数

ConsumedCapacity

-

计费属性,暂不支持。

Item

-

-

表10 DeleteItem接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

DeleteItem

请求参数

Key

-

TableName

-

ConditionalOperator

遗弃参数,见该接口中ConditionExpression字段。

ConditionExpression

-

Expected

遗弃参数,见该接口中ConditionExpression字段。

ExpressionAttributeNames

-

ExpressionAttributeValues

-

ReturnConsumedCapacity

计费属性,暂不支持。

ReturnItemCollectionMetrics

统计属性,暂不支持。

ReturnValues

-

返回参数

Attributes

-

-

ConsumedCapacity

-

计费属性,暂不支持。

ItemCollectionMetrics

-

统计属性,暂不支持。

表11 BatchWriteItem接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

BatchWriteItem

请求参数

RequestItems

-

ReturnConsumedCapacity

计费属性,暂不支持。

ReturnItemCollectionMetrics

统计属性,暂不支持。

返回参数

ConsumedCapacity

-

计费属性,暂不支持。

ItemCollectionMetrics

-

统计属性,暂不支持。

UnprocessedItems

-

-

表12 BatchGetItem接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

BatchGetItem

请求参数

RequestItems

ReturnConsumedCapacity

计费属性,暂不支持。

返回参数

ConsumedCapacity

-

统计属性,暂不支持。

Responses

-

-

UnprocessedKeys

-

-

表13 Query接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

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

-

-

表14 Scan接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

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

-

-

表15 UpdateTimeToLive接口兼容性介绍

接口名称

参数

是否必选

是否支持

备注

UpdateTimeToLive

请求参数

TableName

-

TimeToLiveSpecification

-

返回参数

TimeToLiveSpecification

-

-

分享:

    相关文档

    相关产品