云服务器内容精选

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