ApsaraDB for MongoDBはDynamoDBプロトコルをサポートしています。 このトピックでは、DynamoDB互換のApsaraDB for MongoDBインスタンスの互換性の詳細について説明します。
背景情報
Amazon DynamoDBは、シームレスなスケーラビリティで高速かつ予測可能なパフォーマンスを提供する完全マネージド型NoSQLデータベースサービスです。 ApsaraDB for MongoDBはDynamoDBプロトコルと互換性があります。 DynamoDBプロトコルを選択して、DynamoDB互換のApsaraDB for MongoDBインスタンスを作成できます。 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 | 可 | N/A |
必須パラメーター: KeySchema | 可 | N/A | ||
必須パラメーター: TableName | 可 |
| ||
オプションパラメータ: BillingMode | 任意 | N/A | ||
オプションパラメーター: GlobalSecondaryIndexes | 可 | N/A | ||
オプションパラメーター: LocalSecondaryIndexes | 可 | N/A | ||
オプションパラメーター: ProvisionedThroughput | 任意 | N/A | ||
オプションパラメータ: SSESpecification | 任意 | N/A | ||
オプションパラメーター: StreamSpecification | 可 |
| ||
オプションパラメータ: Tags | 任意 | N/A | ||
レスポンスパラメーター | TableDescription | 可 | N/A | |
UpdateTable | リクエストパラメーター | オプションパラメーター: AttributeDefinitions | 可 | N/A |
オプションパラメータ: BillingMode | 任意 | N/A | ||
必須パラメーター: GlobalSecondaryIndexesUpdates | 可 | CREATEとDELETEがサポートされています。 UPDATEはサポートされていません。 | ||
オプションパラメーター: ProvisionedThroughput | 任意 | N/A | ||
オプションのパラメーター: ReplicaUpdates | 任意 | N/A | ||
オプションパラメータ: SSESpecification | 任意 | N/A | ||
オプションパラメーター: StreamSpecification | 可 |
| ||
必須パラメーター: TableName | 可 | N/A | ||
レスポンスパラメーター | TableDescription | 可 | 詳細については、「TableDescription」をご参照ください。 | |
DescribeTable | リクエストパラメーター | 必須パラメーター: TableName | 可 | N/A |
レスポンスパラメーター | テーブル | 可 | 詳細については、「TableDescription」をご参照ください。 | |
リストテーブル | リクエストパラメーター | オプションパラメーター: ExclusiveStartTableName | 任意 | 異なるページのレコードはサポートされていません。 返されるレコードの数に制限はありません。 |
オプションパラメーター: Limit | 任意 | 異なるページのレコードはサポートされていません。 返されるレコードの数に制限はありません。 | ||
レスポンスパラメーター | LastEvaluatedTableName | 任意 | N/A | |
テーブル名 | 可 | N/A | ||
DeleteTable | リクエストパラメーター | 必須パラメーター: TableName | 可 | N/A |
レスポンスパラメーター | TableDescription | 可 | 詳細については、「TableDescription」をご参照ください。 | |
PutItem | リクエストパラメーター | 必須パラメーター: Item | 可 | N/A |
必須パラメーター: TableName | 可 | N/A | ||
オプションパラメーター: ConditionalOperator | 任意 | N/A | ||
オプションパラメーター: ConditionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: Expected | 任意 | N/A | ||
オプションパラメーター: ExpressionAttributeNames | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
オプションパラメーター: ReturnItemCollectionMetrics | 任意 | N/A | ||
オプションパラメーター: ReturnValues | 可 | N/A | ||
レスポンスパラメーター | Attributes | 可 | N/A | |
消費容量 | 任意 | N/A | ||
ItemCollectionMetrics | 任意 | N/A | ||
UpdateItem | リクエストパラメーター | 必須パラメーター: キー | 可 | N/A |
必須パラメーター: TableName | 可 | N/A | ||
オプションパラメーター: AttributeUpdates | 任意 | N/A | ||
オプションパラメーター: ConditionalOperator | 任意 | N/A | ||
オプションパラメーター: ConditionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: Expected | 任意 | N/A | ||
オプションパラメーター: ExpressionAttributeNames | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
オプションパラメーター: ReturnItemCollectionMetrics | 任意 | N/A | ||
オプションパラメーター: ReturnValues | 可 | N/A | ||
オプションパラメーター: UpdateExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
レスポンスパラメーター | Attributes | 可 | N/A | |
消費容量 | 任意 | N/A | ||
ItemCollectionMetrics | 任意 | N/A | ||
GetItem | リクエストパラメーター | 必須パラメーター: キー | 可 | N/A |
必須パラメーター: TableName | 可 | N/A | ||
オプションパラメーター: AttributesToGet | 任意 | N/A | ||
オプションのパラメーター: ConsistentRead | 任意 | N/A | ||
オプションパラメーター: ExpressionAttributeNames | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ProjectionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
レスポンスパラメーター | 消費容量 | 任意 | N/A | |
項目 | 可 | N/A | ||
DeleteItem | リクエストパラメーター | 必須パラメーター: キー | 可 | N/A |
必須パラメーター: TableName | 可 | N/A | ||
オプションパラメーター: ConditionalOperator | 任意 | N/A | ||
オプションパラメーター: ConditionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: Expected | 任意 | N/A | ||
オプションパラメーター: ExpressionAttributeNames | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
オプションパラメーター: ReturnItemCollectionMetrics | 任意 | N/A | ||
オプションパラメーター: ReturnValues | 可 | N/A | ||
レスポンスパラメーター | Attributes | 可 | N/A | |
消費容量 | 任意 | N/A | ||
ItemCollectionMetrics | 任意 | N/A | ||
BatchWriteItem | リクエストパラメーター | 必須パラメーター: RequestItems | 可 | N/A |
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
オプションパラメーター: ReturnItemCollectionMetrics | 任意 | N/A | ||
レスポンスパラメーター | 消費容量 | 任意 | N/A | |
ItemCollectionMetrics | 任意 | N/A | ||
UnprocessedItems | 可 | N/A | ||
BatchGetItem | リクエストパラメーター | 必須パラメーター: RequestItems | 可 | Itemは、 |
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
レスポンスパラメーター | 消費容量 | 任意 | N/A | |
レスポンス | 可 | N/A | ||
UnprocessedKeys | 可 | N/A | ||
クエリ | リクエストパラメーター | 必須パラメーター: TableName | 可 | N/A |
オプションパラメーター: AttributesToGet | 任意 | N/A | ||
オプションパラメーター: ConditionalOperator | 任意 | N/A | ||
オプションのパラメーター: ConsistentRead | 任意 | N/A | ||
オプションパラメーター: ExclusiveStartKey | 可 | N/A | ||
オプションパラメーター: ExpressionAttributeNames | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: FilterExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: IndexName | 可 | N/A | ||
オプションパラメーター: KeyConditionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: KeyConditions | 任意 | N/A | ||
オプションパラメーター: Limit | 可 | N/A | ||
オプションパラメーター: ProjectionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: QueryFilter | 任意 | N/A | ||
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
オプションパラメーター: ScanIndexForward | 可 | N/A | ||
オプションパラメーター: | 任意 | N/A | ||
レスポンスパラメーター | 消費容量 | 任意 | N/A | |
集計 | 可 | N/A | ||
項目 | 可 | N/A | ||
LastEvaluatedKey | 可 | N/A | ||
ScannedCount | 可 | N/A | ||
Scan | リクエストパラメーター | 必須パラメーター: TableName | 可 | N/A |
オプションパラメーター: AttributesToGet | 任意 | N/A | ||
オプションパラメーター: ConditionalOperator | 任意 | N/A | ||
オプションのパラメーター: ConsistentRead | 任意 | N/A | ||
オプションパラメーター: ExclusiveStartKey | 可 | N/A | ||
オプションパラメーター: ExpressionAttributeNames | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ExpressionAttributeValues | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: FilterExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: IndexName | 可 | N/A | ||
オプションパラメーター: Limit | 可 | N/A | ||
オプションパラメーター: ProjectionExpression | 可 | 詳細については、「式の互換性の詳細」をご参照ください。 | ||
オプションパラメーター: ReturnConsumedCapacity | 任意 | N/A | ||
オプションパラメータ: ScanFilter | 任意 | N/A | ||
オプションパラメータ: Segment | 可 | N/A | ||
オプションパラメーター: | 任意 | N/A | ||
オプションパラメーター: TotalSegments | 可 | N/A | ||
レスポンスパラメーター | 消費容量 | 任意 | N/A | |
集計 | 可 | N/A | ||
項目 | 可 | N/A | ||
LastEvaluatedKey | 可 | N/A | ||
ScannedCount | 可 | N/A |
DynamoDB Streams操作の互換性の詳細
操作 | パラメーター | サポート対象 | 説明 | |
DescribeStream | リクエストパラメーター | 必須パラメーター: StreamArn | 可 | N/A |
オプションパラメーター: Limit | 任意 | N/A | ||
オプションパラメーター: ExclusiveStartShardId | 任意 | N/A | ||
レスポンスパラメーター | 必須パラメーター: StreamDescription | 可 | DynamoDB互換のApsaraDB for MongoDBインスタンスのこのレスポンスパラメーターの値は、次の点でAmazon DynamoDBインスタンスの値とは異なります。
| |
ListStreams | リクエストパラメーター | オプションパラメーター: TableName | 可 | N/A |
オプションパラメーター: Limit | 任意 | N/A | ||
オプションパラメーター: ExclusiveStartStreamArn | 任意 | N/A | ||
レスポンスパラメーター | 必須パラメーター: Streams | 可 | テーブルごとに、最大1つのストリームを返すことができます。 | |
GetShardIterator | リクエストパラメーター | 必須パラメーター: StreamArn | 可 | N/A |
必須パラメーター: ShardId | 可 | dynamodb互換のApsaraDB for MongoDBシャードクラスターインスタンスにはシャードノードが1つしかないため、このパラメーターの値は | ||
必須パラメーター: ShardIteratorType | 可 |
| ||
オプションパラメーター: SequenceNumber | 可 | このパラメーターは、 | ||
レスポンスパラメーター | 必須パラメーター: ShardIterator | 可 | N/A | |
GetRecords | リクエストパラメーター | 必須パラメーター: ShardIterator | 可 | N/A |
オプションパラメーター: Limit | 可 | このパラメーターを指定しない場合、各ページには1 MBのデータではなく101のデータエントリが含まれます。 | ||
レスポンスパラメーター | 必須パラメーター: Records | 可 | N/A |
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の条件式の構文:
条件式: ::= operand comparatorオペランド | operand BETWEENオペランドANDオペランド | operand IN ( operand (',' operand (, ...) ) )) | 関数 | 条件と条件 | 条件または条件 | 条件ではない | (条件) コンパレータ::= = | <> | < | <= |> | >= 関数 :::= attribute_exists (パス) | attribute_not_exists (パス) | attribute_type (パス、タイプ) | begins_with (path, substr) | contains (path, operand) | サイズ (パス)
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] ... ] [削除アクション [、アクション] ...] [ADD action [, action] ... ] [DELETEアクション [、アクション] ...] set-アクション::= パス=値 値 ::= オペランド | operand '+' オペランド | operand '-' オペランド オペランド ::= パス | 関数 関数 :::= if_not_exists (パス、値) | list_append (list1, list2) 削除アクション :::= パス add-action :::= パス値 delete-action :::= パス値
set-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
が使用されます。List
サイズは変更されず、残りの要素はシフトされません。
データ型マッピング
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の後のリリースでは、これらのデータ型はデータ重複排除用に最適化されます。