ApsaraDB for MongoDBはDynamoDBプロトコルをサポートしています。 このトピックでは、DynamoDB互換のApsaraDB for MongoDBインスタンスの互換性の詳細について説明します。
DynamoDB互換のシャードクラスターインスタンスは購入できなくなりました。 シャードクラスターインスタンスを使用するには、MongoDBプロトコルを使用することを推奨します。 詳細については、「 [お知らせ] DynamoDB互換シャードクラスターインスタンスの販売終了」をご参照ください。
背景情報
Amazon DynamoDBは、シームレスなスケーラビリティで高速かつ予測可能なパフォーマンスを提供する完全マネージド型NoSQLデータベースサービスです。 ApsaraDB for MongoDBはDynamoDBプロトコルと互換性があります。 DynamoDBプロトコルを選択して、DynamoDB互換のApsaraDB for MongoDBインスタンスを作成できます。
使用上の注意
DynamoDBプロトコルは、MongoDB 4.0を実行するApsaraDB for MongoDBシャードクラスターインスタンスでのみサポートされます。
既存のApsaraDB for MongoDBシャードクラスターインスタンスのプロトコルタイプをDynamoDBに変更して、DynamoDBプロトコルと互換性を持たせることができます。
DynamoDBプロトコルは、VPCネットワークタイプを使用するApsaraDB for MongoDBシャードクラスターインスタンスでのみサポートされます。 認証は必要ありません。
DynamoDB操作の互換性の詳細
操作 | パラメーター | 対応 | 補足 | |
CreateTable | リクエストパラメーター | 必須パラメーター: AttributeDefinitions | 対象 | 非該当 |
必須パラメーター: KeySchema | 対象 | 非該当 | ||
必須パラメーター: TableName | 対象 |
| ||
オプションパラメータ: BillingMode | 非対象 | 非該当 | ||
オプションパラメーター: GlobalSecondaryIndexes | 対象 | 非該当 | ||
オプションパラメーター: LocalSecondaryIndexes | 対象 | 非該当 | ||
オプションパラメーター: ProvisionedThroughput | 非対象 | 非該当 | ||
オプションパラメータ: SSESpecification | 非対象 | 非該当 | ||
オプションパラメーター: StreamSpecification | 対象 |
| ||
オプションパラメータ: Tags | 非対象 | 非該当 | ||
レスポンスパラメーター | TableDescription | 対象 | 非該当 | |
UpdateTable | リクエストパラメーター | オプションパラメーター: AttributeDefinitions | 対象 | 非該当 |
オプションパラメータ: BillingMode | 非対象 | 非該当 | ||
必須パラメーター: GlobalSecondaryIndexesUpdates | 対象 | CREATEとDELETEがサポートされています。 UPDATEはサポートされていません。 | ||
オプションパラメーター: ProvisionedThroughput | 非対象 | 非該当 | ||
オプションのパラメーター: ReplicaUpdates | 非対象 | 非該当 | ||
オプションパラメータ: SSESpecification | 非対象 | 非該当 | ||
オプションパラメーター: StreamSpecification | 対象 |
| ||
必須パラメーター: TableName | 対象 | 非該当 | ||
レスポンスパラメーター | TableDescription | 対象 | 詳細については、「TableDescription」をご参照ください。 | |
DescribeTable | リクエストパラメーター | 必須パラメーター: TableName | 対象 | 非該当 |
レスポンスパラメーター | テーブル | 対象 | 詳細については、「TableDescription」をご参照ください。 | |
リストテーブル | リクエストパラメーター | オプションパラメーター: ExclusiveStartTableName | 非対象 | 異なるページのレコードはサポートされていません。 返されるレコードの数に制限はありません。 |
オプションパラメーター: Limit | 非対象 | 異なるページのレコードはサポートされていません。 返されるレコードの数に制限はありません。 | ||
レスポンスパラメーター | LastEvaluatedTableName | 非対象 | 非該当 | |
テーブル名 | 対象 | 非該当 | ||
DeleteTable | リクエストパラメーター | 必須パラメーター: TableName | 対象 | 非該当 |
レスポンスパラメーター | TableDescription | 対象 | 詳細については、「TableDescription」をご参照ください。 | |
PutItem | リクエストパラメーター | 必須パラメーター: Item | 対象 | 非該当 |
必須パラメーター: TableName | 対象 | 非該当 | ||
オプションパラメーター: ConditionalOperator | 非対象 | 非該当 | ||
オプションパラメーター: ConditionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: Expected | 非対象 | 非該当 | ||
オプションパラメーター: ExpressionAttributeNames | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
オプションパラメーター: ReturnItemCollectionMetrics | 非対象 | 非該当 | ||
オプションパラメーター: ReturnValues | 対象 | 非該当 | ||
レスポンスパラメーター | Attributes | 対象 | 非該当 | |
消費容量 | 非対象 | 非該当 | ||
ItemCollectionMetrics | 非対象 | 非該当 | ||
UpdateItem | リクエストパラメーター | 必須パラメーター: キー | 対象 | 非該当 |
必須パラメーター: TableName | 対象 | 非該当 | ||
オプションパラメーター: AttributeUpdates | 非対象 | 非該当 | ||
オプションパラメーター: ConditionalOperator | 非対象 | 非該当 | ||
オプションパラメーター: ConditionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: Expected | 非対象 | 非該当 | ||
オプションパラメーター: ExpressionAttributeNames | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
オプションパラメーター: ReturnItemCollectionMetrics | 非対象 | 非該当 | ||
オプションパラメーター: ReturnValues | 対象 | 非該当 | ||
オプションパラメーター: UpdateExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
レスポンスパラメーター | Attributes | 対象 | 非該当 | |
消費容量 | 非対象 | 非該当 | ||
ItemCollectionMetrics | 非対象 | 非該当 | ||
GetItem | リクエストパラメーター | 必須パラメーター: キー | 対象 | 非該当 |
必須パラメーター: TableName | 対象 | 非該当 | ||
オプションパラメーター: AttributesToGet | 非対象 | 非該当 | ||
オプションのパラメーター: ConsistentRead | 非対象 | 非該当 | ||
オプションパラメーター: ExpressionAttributeNames | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ProjectionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
レスポンスパラメーター | 消費容量 | 非対象 | 非該当 | |
項目 | 対象 | 非該当 | ||
DeleteItem | リクエストパラメーター | 必須パラメーター: キー | 対象 | 非該当 |
必須パラメーター: TableName | 対象 | 非該当 | ||
オプションパラメーター: ConditionalOperator | 非対象 | 非該当 | ||
オプションパラメーター: ConditionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: Expected | 非対象 | 非該当 | ||
オプションパラメーター: ExpressionAttributeNames | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
オプションパラメーター: ReturnItemCollectionMetrics | 非対象 | 非該当 | ||
オプションパラメーター: ReturnValues | 対象 | 非該当 | ||
レスポンスパラメーター | Attributes | 対象 | 非該当 | |
消費容量 | 非対象 | 非該当 | ||
ItemCollectionMetrics | 非対象 | 非該当 | ||
BatchWriteItem | リクエストパラメーター | 必須パラメーター: RequestItems | 対象 | 非該当 |
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
オプションパラメーター: ReturnItemCollectionMetrics | 非対象 | 非該当 | ||
レスポンスパラメーター | 消費容量 | 非対象 | 非該当 | |
ItemCollectionMetrics | 非対象 | 非該当 | ||
UnprocessedItems | 対象 | 非該当 | ||
BatchGetItem | リクエストパラメーター | 必須パラメーター: RequestItems | 対象 | Itemは、 |
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
レスポンスパラメーター | 消費容量 | 非対象 | 非該当 | |
レスポンス | 対象 | 非該当 | ||
UnprocessedKeys | 対象 | 非該当 | ||
クエリ | リクエストパラメーター | 必須パラメーター: TableName | 対象 | 非該当 |
オプションパラメーター: AttributesToGet | 非対象 | 非該当 | ||
オプションパラメーター: ConditionalOperator | 非対象 | 非該当 | ||
オプションのパラメーター: ConsistentRead | 非対象 | 非該当 | ||
オプションパラメーター: ExclusiveStartKey | 対象 | 非該当 | ||
オプションパラメーター: ExpressionAttributeNames | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: FilterExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: IndexName | 対象 | 非該当 | ||
オプションパラメーター: KeyConditionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: KeyConditions | 非対象 | 非該当 | ||
オプションパラメーター: Limit | 対象 | 非該当 | ||
オプションパラメーター: ProjectionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: QueryFilter | 非対象 | 非該当 | ||
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
オプションパラメーター: ScanIndexForward | 対象 | 非該当 | ||
オプションパラメーター: | 非対象 | 非該当 | ||
レスポンスパラメーター | 消費容量 | 非対象 | 非該当 | |
Count | 対象 | 非該当 | ||
項目 | 対象 | 非該当 | ||
LastEvaluatedKey | 対象 | 非該当 | ||
ScannedCount | 対象 | 非該当 | ||
Scan | リクエストパラメーター | 必須パラメーター: TableName | 対象 | 非該当 |
オプションパラメーター: AttributesToGet | 非対象 | 非該当 | ||
オプションパラメーター: ConditionalOperator | 非対象 | 非該当 | ||
オプションのパラメーター: ConsistentRead | 非対象 | 非該当 | ||
オプションパラメーター: ExclusiveStartKey | 対象 | 非該当 | ||
オプションパラメーター: ExpressionAttributeNames | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: FilterExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: IndexName | 対象 | 非該当 | ||
オプションパラメーター: Limit | 対象 | 非該当 | ||
オプションパラメーター: ProjectionExpression | 対象 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 非対象 | 非該当 | ||
オプションパラメータ: ScanFilter | 非対象 | 非該当 | ||
オプションパラメータ: Segment | 対象 | 非該当 | ||
オプションパラメーター: | 非対象 | 非該当 | ||
オプションパラメーター: TotalSegments | 対象 | 非該当 | ||
レスポンスパラメーター | 消費容量 | 非対象 | 非該当 | |
Count | 対象 | 非該当 | ||
項目 | 対象 | 非該当 | ||
LastEvaluatedKey | 対象 | 非該当 | ||
ScannedCount | 対象 | 非該当 | ||
DynamoDB Streams操作の互換性の詳細
操作 | パラメーター | 対応 | 補足 | |
DescribeStream | リクエストパラメーター | 必須パラメーター: StreamArn | 対象 | 非該当 |
オプションパラメーター: Limit | 非対象 | 非該当 | ||
オプションパラメーター: ExclusiveStartShardId | 非対象 | 非該当 | ||
レスポンスパラメーター | 必須パラメーター: StreamDescription | 対象 | DynamoDB互換のApsaraDB for MongoDBインスタンスのこのレスポンスパラメーターの値は、次の点でAmazon DynamoDBインスタンスの値とは異なります。
| |
ListStreams | リクエストパラメーター | オプションパラメーター: TableName | 対象 | 非該当 |
オプションパラメーター: Limit | 非対象 | 非該当 | ||
オプションパラメーター: ExclusiveStartStreamArn | 非対象 | 非該当 | ||
レスポンスパラメーター | 必須パラメーター: Streams | 対象 | テーブルごとに、最大1つのストリームを返すことができます。 | |
GetShardIterator | リクエストパラメーター | 必須パラメーター: StreamArn | 対象 | 非該当 |
必須パラメーター: ShardId | 対象 | dynamodb互換のApsaraDB for MongoDBシャードクラスターインスタンスにはシャードノードが1つしかないため、このパラメーターは | ||
必須パラメーター: ShardIteratorType | 対象 |
| ||
オプションパラメーター: SequenceNumber | 対象 | このパラメーターは、 | ||
レスポンスパラメーター | 必須パラメーター: ShardIterator | 対象 | 非該当 | |
GetRecords | リクエストパラメーター | 必須パラメーター: ShardIterator | 対象 | 非該当 |
オプションパラメーター: Limit | 対象 | このパラメーターを指定しない場合、各ページには1 MBのデータではなく101のデータエントリが含まれます。 | ||
レスポンスパラメーター | 必須パラメーター: Records | 対象 | 非該当 | |
DynamoDB操作のデータ構造
データ型 | 項目 | 対応 |
TableDescription | ArchivalSummary | 非対象 |
属性定義 | 非対象 | |
BillingModeSummary | 非対象 | |
CreationDateTime | 非対象 | |
GlobalSecondaryIndexes | 対象 | |
GlobalTableVersion | 非対象 | |
ItemCount | 対象 | |
KeySchema | 対象 | |
LatestStreamArn | 対象 | |
LatestStreamLabel | 対象 | |
LocalSecondaryIndexes | 対象 | |
ProvisionedThroughput | 非対象 | |
レプリカ | 非対象 | |
RestoreSummary | 非対象 | |
SSEDescription | 非対象 | |
StreamSpecification | 対象 | |
TableArn | 非対象 | |
TableId | 非対象 | |
TableName | 対象 | |
TableSizeBytes | 対象 | |
TableStatus | 対象 |
式の互換性の詳細
含まれる属性名。
: 含まれる属性名。An attribute name that contains.は、スカラー属性またはネストされたドキュメントを示します。 Amazon DynamoDBでは、式属性名がドキュメントパス内のすべての要素にマップされている場合、属性はスカラー属性として処理されます。 それ以外の場合、属性はネストされた属性として処理されます。説明クエリや射影式など、
.を含むスカラー属性は、ApsaraDB for MongoDBでは処理できません。投影式: 1次元配列のみがサポートされます。 射影式に1つの配列要素のみが含まれる場合、他のフィールドが返されます。
条件式:
Amazon DynamoDBの条件式の構文:
condition-expression ::= operand comparator operand | operand BETWEEN operand AND operand | operand IN ( operand (',' operand (, ...) )) | function | condition AND condition | condition OR condition | NOT condition | ( condition ) comparator ::= = | <> | < | <= | > | >= function ::= attribute_exists (path) | attribute_not_exists (path) | attribute_type (path, type) | begins_with (path, substr) | contains (path, operand) | size (path)operand1 comparator operand2では、operand1はパスで、operand2はexpression属性値でなければなりません。operand1 BETWEEN operand2 AND operand3では、operand1はパスで、その他のオペランドは式属性値でなければなりません。operand1 In (operand2 (',' operand3 (, ...) ))では、operand1はパスで、その他のオペランドは式属性値でなければなりません。functionのsize(path)関数の場合、pathフィールドはSTRINGタイプ (長さを決定するために使用) またはSETまたはLISTタイプ (サイズを決定するために使用) である必要があります。BINARYまたはMAPタイプにすることはできません。
式を更新する:
Amazon DynamoDBの更新式の構文:
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 valueset-action:
SET path = operandでは、operandをpathにすることはできません。SET path=operand1' + '|'-'operand2では、operand1はパスでなければなりません。 これは、フィールドのインクリメントまたはデクリメントのみがこの式でサポートされていることを示します。SET path = if_not_exists (path, value)では、2つのpathsが等しく、valueがexpression属性値である必要があります。SET path = if_not_exists (path, value)では、複数の条件が同時に指定されている場合、部分的な更新はサポートされません。 これは、この式を実行するにはすべての条件を満たす必要があることを示します。SET path = list_append(list1, list2)では、list1値とlist2値のいずれかがpathに等しく、もう一方がexpression属性値である必要があります。
remove-action:
list内の要素が削除されると、削除された要素を置き換えるためにnullが使用されます。リストサイズは変更されず、残りの要素はシフトされません。
データ型マッピング
Amazon DynamoDBは、ApsarsDB for MongoDBとは異なるデータタイプをサポートしています。 2つのデータタイプセット間の互換性のために、DynamoDB互換のApsaraDB for MongoDBインスタンスとApsaraDB for MongoDBインスタンスの間でデータタイプマッピングが提供されます。
次の表に、データ型のマッピングを示します。
DynamoDBデータ型 | MongoDBデータ型 |
B | バイナリデータ |
BOOL | Boolean |
BS | * |
L | 配列 |
M | オブジェクト |
N | Double |
NS | * |
NULL | ヌル |
S | String |
SS | * |
Amazon DynamoDBでは、各値はバイナリセット (BS) 、数値セット (NS) 、または文字列セット (SS) 内で一意である必要があります。 たとえば、NSに1,2、2、3を挿入すると、Amazon DynamoDBは重複を削除し、挿入されたデータは1,2、3になります。 DynamoDB互換のApsaraDB for MongoDBインスタンスは、BS、NS、およびSSのデータ重複排除をサポートしていません。 この場合、前の表の * データ型は配列として処理されます。 ApsaraDB for MongoDBの後のリリースでは、これらのデータ型はデータ重複排除用に最適化されます。