ApsaraDB for MongoDB mendukung protokol DynamoDB. Topik ini menjelaskan rincian kompatibilitas instance ApsaraDB for MongoDB yang kompatibel dengan DynamoDB.
Instance kluster terdistribusi yang kompatibel dengan DynamoDB tidak lagi tersedia untuk pembelian. Untuk menggunakan instance kluster terdistribusi, disarankan menggunakan protokol MongoDB. Informasi lebih lanjut dapat ditemukan di [Pemberitahuan] Akhir Penjualan untuk Instance Kluster Terdistribusi yang Kompatibel dengan DynamoDB.
Informasi latar belakang
Amazon DynamoDB adalah layanan database NoSQL yang sepenuhnya dikelola, menawarkan performa cepat dan skalabilitas tanpa batas. ApsaraDB for MongoDB kompatibel dengan protokol DynamoDB, memungkinkan Anda membuat instance ApsaraDB for MongoDB yang kompatibel dengan DynamoDB.
Catatan penggunaan
Protokol DynamoDB hanya didukung pada instance kluster terdistribusi ApsaraDB for MongoDB yang menjalankan MongoDB 4.0.
Tipe protokol dapat diubah menjadi DynamoDB pada instance kluster terdistribusi ApsaraDB for MongoDB yang sudah ada untuk mendukung protokol DynamoDB.
Protokol DynamoDB hanya didukung pada instance kluster terdistribusi ApsaraDB for MongoDB yang menggunakan tipe jaringan VPC. Autentikasi tidak diperlukan.
Rincian kompatibilitas operasi DynamoDB
Operasi | Parameter | Didukung | Keterangan | |
CreateTable | Parameter permintaan | Parameter wajib: AttributeDefinitions | Ya | T/A |
Parameter wajib: KeySchema | Ya | T/A | ||
Parameter wajib: TableName | Ya |
| ||
Parameter opsional: BillingMode | Tidak | T/A | ||
Parameter opsional: GlobalSecondaryIndexes | Ya | T/A | ||
Parameter opsional: LocalSecondaryIndexes | Ya | T/A | ||
Parameter opsional: ProvisionedThroughput | Tidak | T/A | ||
Parameter opsional: SSESpecification | Tidak | T/A | ||
Parameter opsional: StreamSpecification | Ya | Parameter
| ||
Parameter opsional: Tags | Tidak | T/A | ||
Parameter respons | TableDescription | Ya | T/A | |
UpdateTable | Parameter permintaan | Parameter opsional: AttributeDefinitions | Ya | T/A |
Parameter opsional: BillingMode | Tidak | T/A | ||
Parameter wajib: GlobalSecondaryIndexesUpdates | Ya | CREATE dan DELETE didukung. UPDATE tidak didukung. | ||
Parameter opsional: ProvisionedThroughput | Tidak | T/A | ||
Parameter opsional: ReplicaUpdates | Tidak | T/A | ||
Parameter opsional: SSESpecification | Tidak | T/A | ||
Parameter opsional: StreamSpecification | Ya | Parameter
| ||
Parameter wajib: TableName | Ya | T/A | ||
Parameter respons | TableDescription | Ya | Untuk informasi lebih lanjut, lihat TableDescription. | |
DescribeTable | Parameter permintaan | Parameter wajib: TableName | Ya | T/A |
Parameter respons | Table | Ya | Untuk informasi lebih lanjut, lihat TableDescription. | |
ListTables | Parameter permintaan | Parameter opsional: ExclusiveStartTableName | Tidak | Rekaman di halaman yang berbeda tidak didukung. Tidak ada batasan jumlah rekaman yang dikembalikan. |
Parameter opsional: Limit | Tidak | Rekaman di halaman yang berbeda tidak didukung. Tidak ada batasan jumlah rekaman yang dikembalikan. | ||
Parameter respons | LastEvaluatedTableName | Tidak | T/A | |
TableNames | Ya | T/A | ||
DeleteTable | Parameter permintaan | Parameter wajib: TableName | Ya | T/A |
Parameter respons | TableDescription | Ya | Untuk informasi lebih lanjut, lihat TableDescription. | |
PutItem | Parameter permintaan | Parameter wajib: Item | Ya | T/A |
Parameter wajib: TableName | Ya | T/A | ||
Parameter opsional: ConditionalOperator | Tidak | T/A | ||
Parameter opsional: ConditionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: Expected | Tidak | T/A | ||
Parameter opsional: ExpressionAttributeNames | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ExpressionAttributeValues | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter opsional: ReturnItemCollectionMetrics | Tidak | T/A | ||
Parameter opsional: ReturnValues | Ya | T/A | ||
Parameter respons | Attributes | Ya | T/A | |
ConsumedCapacity | Tidak | T/A | ||
ItemCollectionMetrics | Tidak | T/A | ||
UpdateItem | Parameter permintaan | Parameter wajib: Key | Ya | T/A |
Parameter wajib: TableName | Ya | T/A | ||
Parameter opsional: AttributeUpdates | Tidak | T/A | ||
Parameter opsional: ConditionalOperator | Tidak | T/A | ||
Parameter opsional: ConditionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: Expected | Tidak | T/A | ||
Parameter opsional: ExpressionAttributeNames | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ExpressionAttributeValues | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter opsional: ReturnItemCollectionMetrics | Tidak | T/A | ||
Parameter opsional: ReturnValues | Ya | T/A | ||
Parameter opsional: UpdateExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter respons | Attributes | Ya | T/A | |
ConsumedCapacity | Tidak | T/A | ||
ItemCollectionMetrics | Tidak | T/A | ||
GetItem | Parameter permintaan | Parameter wajib: Key | Ya | T/A |
Parameter wajib: TableName | Ya | T/A | ||
Parameter opsional: AttributesToGet | Tidak | T/A | ||
Parameter opsional: ConsistentRead | Tidak | T/A | ||
Parameter opsional: ExpressionAttributeNames | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ProjectionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter respons | ConsumedCapacity | Tidak | T/A | |
Item | Ya | T/A | ||
DeleteItem | Parameter permintaan | Parameter wajib: Key | Ya | T/A |
Parameter wajib: TableName | Ya | T/A | ||
Parameter opsional: ConditionalOperator | Tidak | T/A | ||
Parameter opsional: ConditionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: Expected | Tidak | T/A | ||
Parameter opsional: ExpressionAttributeNames | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ExpressionAttributeValues | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter opsional: ReturnItemCollectionMetrics | Tidak | T/A | ||
Parameter opsional: ReturnValues | Ya | T/A | ||
Parameter respons | Attributes | Ya | T/A | |
ConsumedCapacity | Tidak | T/A | ||
ItemCollectionMetrics | Tidak | T/A | ||
BatchWriteItem | Parameter permintaan | Parameter wajib: RequestItems | Ya | T/A |
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter opsional: ReturnItemCollectionMetrics | Tidak | T/A | ||
Parameter respons | ConsumedCapacity | Tidak | T/A | |
ItemCollectionMetrics | Tidak | T/A | ||
UnprocessedItems | Ya | T/A | ||
BatchGetItem | Parameter permintaan | Parameter wajib: RequestItems | Ya | Item tidak mendukung parameter |
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter respons | ConsumedCapacity | Tidak | T/A | |
Responses | Ya | T/A | ||
UnprocessedKeys | Ya | T/A | ||
Query | Parameter permintaan | Parameter wajib: TableName | Ya | T/A |
Parameter opsional: AttributesToGet | Tidak | T/A | ||
Parameter opsional: ConditionalOperator | Tidak | T/A | ||
Parameter opsional: ConsistentRead | Tidak | T/A | ||
Parameter opsional: ExclusiveStartKey | Ya | T/A | ||
Parameter opsional: ExpressionAttributeNames | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ExpressionAttributeValues | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: FilterExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: IndexName | Ya | T/A | ||
Parameter opsional: KeyConditionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: KeyConditions | Tidak | T/A | ||
Parameter opsional: Limit | Ya | T/A | ||
Parameter opsional: ProjectionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: QueryFilter | Tidak | T/A | ||
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter opsional: ScanIndexForward | Ya | T/A | ||
Parameter opsional: Select | Tidak | T/A | ||
Parameter respons | ConsumedCapacity | Tidak | T/A | |
Count | Ya | T/A | ||
Items | Ya | T/A | ||
LastEvaluatedKey | Ya | T/A | ||
ScannedCount | Ya | T/A | ||
Scan | Parameter permintaan | Parameter wajib: TableName | Ya | T/A |
Parameter opsional: AttributesToGet | Tidak | T/A | ||
Parameter opsional: ConditionalOperator | Tidak | T/A | ||
Parameter opsional: ConsistentRead | Tidak | T/A | ||
Parameter opsional: ExclusiveStartKey | Ya | T/A | ||
Parameter opsional: ExpressionAttributeNames | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ExpressionAttributeValues | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: FilterExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: IndexName | Ya | T/A | ||
Parameter opsional: Limit | Ya | T/A | ||
Parameter opsional: ProjectionExpression | Ya | Untuk informasi lebih lanjut, lihat Rincian kompatibilitas ekspresi. | ||
Parameter opsional: ReturnConsumedCapacity | Tidak | T/A | ||
Parameter opsional: ScanFilter | Tidak | T/A | ||
Parameter opsional: Segment | Ya | T/A | ||
Parameter opsional: Select | Tidak | T/A | ||
Parameter opsional: TotalSegments | Ya | T/A | ||
Parameter respons | ConsumedCapacity | Tidak | T/A | |
Count | Ya | T/A | ||
Items | Ya | T/A | ||
LastEvaluatedKey | Ya | T/A | ||
ScannedCount | Ya | T/A | ||
Rincian kompatibilitas operasi DynamoDB Streams
Operasi | Parameter | Didukung | Keterangan | |
DescribeStream | Parameter permintaan | Parameter wajib: StreamArn | Ya | T/A |
Parameter opsional: Limit | Tidak | T/A | ||
Parameter opsional: ExclusiveStartShardId | Tidak | T/A | ||
Parameter respons | Parameter wajib: StreamDescription | Ya | Nilai parameter respons ini untuk instance ApsaraDB for MongoDB yang kompatibel dengan DynamoDB berbeda dari nilai-nilai untuk instance Amazon DynamoDB dalam aspek-aspek berikut:
| |
ListStreams | Parameter permintaan | Parameter opsional: TableName | Ya | T/A |
Parameter opsional: Limit | Tidak | T/A | ||
Parameter opsional: ExclusiveStartStreamArn | Tidak | T/A | ||
Parameter respons | Parameter wajib: Streams | Ya | Untuk setiap tabel, maksimal satu aliran dapat dikembalikan. | |
GetShardIterator | Parameter permintaan | Parameter wajib: StreamArn | Ya | T/A |
Parameter wajib: ShardId | Ya | Parameter ini tetap | ||
Parameter wajib: ShardIteratorType | Ya | Hanya mendukung | ||
Parameter opsional: SequenceNumber | Ya | Parameter ini valid hanya ketika parameter | ||
Parameter respons | Parameter wajib: ShardIterator | Ya | T/A | |
GetRecords | Parameter permintaan | Parameter wajib: ShardIterator | Ya | T/A |
Parameter opsional: Limit | Ya | Ketika parameter ini tidak ditentukan, setiap halaman berisi 101 entri data, bukan 1 MB data. | ||
Parameter respons | Parameter wajib: Records | Ya | T/A | |
Struktur data operasi DynamoDB
Tipe data | Bidang | Didukung |
TableDescription | ArchivalSummary | Tidak |
AttributeDefinitions | Tidak | |
BillingModeSummary | Tidak | |
CreationDateTime | Tidak | |
GlobalSecondaryIndexes | Ya | |
GlobalTableVersion | Tidak | |
ItemCount | Ya | |
KeySchema | Ya | |
LatestStreamArn | Ya | |
LatestStreamLabel | Ya | |
LocalSecondaryIndexes | Ya | |
ProvisionedThroughput | Tidak | |
Replicas | Tidak | |
RestoreSummary | Tidak | |
SSEDescription | Tidak | |
StreamSpecification | Ya | |
TableArn | Tidak | |
TableId | Tidak | |
TableName | Ya | |
TableSizeBytes | Ya | |
TableStatus | Ya |
Rincian kompatibilitas ekspresi
Nama atribut yang mengandung
.: Nama atribut yang mengandung.menunjukkan atribut skalar atau dokumen bersarang. Di Amazon DynamoDB, jika nama atribut ekspresi dipetakan ke semua elemen dalam jalur dokumen, atribut tersebut diproses sebagai atribut skalar. Jika tidak, atribut tersebut diproses sebagai atribut bersarang.CatatanAtribut skalar yang mengandung
., seperti ekspresi query atau proyeksi, tidak dapat diproses di ApsaraDB for MongoDB.Ekspresi proyeksi: Hanya array satu dimensi yang didukung. Saat ekspresi proyeksi hanya berisi satu elemen array, bidang lainnya akan dikembalikan.
Ekspresi kondisi:
Sintaksis untuk ekspresi kondisi di 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)Dalam
operand1 comparator operand2,operand1harus berupapath, danoperand2harus berupa nilai atribut ekspresi.Dalam
operand1 BETWEEN operand2 AND operand3,operand1harus berupapath, danoperandlainnya harus berupa nilai atribut ekspresi.Dalam
operand1 IN ( operand2 (',' operand3 (, ...) )),operand1harus berupapath, danoperandlainnya harus berupa nilai atribut ekspresi.Untuk fungsi
size(path)dalamfunction, bidangpathharus bertipe STRING (digunakan untuk menentukan panjang) atau bertipeSET atau LIST(digunakan untuk menentukan ukuran). Tidak dapat bertipeBINARYatauMAP.
Ekspresi pembaruan:
Sintaksis untuk ekspresi pembaruan di 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:
Dalam
SET path = operand,operandtidak boleh berupapath.Dalam
SET path = operand1 '+'|'-' operand2,operand1harus berupapath. Ini menunjukkan bahwa hanya penambahan atau pengurangan bidang yang didukung dalam ekspresi ini.Dalam
SET path = if_not_exists (path, value), duapathsharus sama, danvalueharus berupa nilai atribut ekspresi.Dalam
SET path = if_not_exists (path, value), pembaruan sebagian tidak didukung ketika beberapa kondisi ditentukan secara bersamaan. Ini menunjukkan bahwa semua kondisi harus terpenuhi agar ekspresi ini dieksekusi.Dalam
SET path = list_append(list1, list2), salah satu nilailist1danlist2harus sama denganpath, dan yang lainnya harus berupa nilai atribut ekspresi.
remove-action: Saat elemen dalam
listdihapus,nulldigunakan untuk menggantikan elemen yang dihapus. Ukuranlisttetap tidak berubah dan elemen yang tersisa tidak bergeser.
Pemetaan tipe data
Amazon DynamoDB mendukung tipe data yang berbeda dari ApsaraDB for MongoDB. Pemetaan tipe data disediakan antara instance ApsaraDB for MongoDB yang kompatibel dengan DynamoDB dan instance ApsaraDB for MongoDB untuk memastikan kompatibilitas antara kedua set tipe data tersebut.
Tabel berikut mencantumkan pemetaan tipe data.
Tipe data DynamoDB | MongoDB tipe data |
B | Data biner |
BOOL | Boolean |
BS | * |
L | Array |
M | Objek |
N | Double |
NS | * |
NULL | Null |
S | String |
SS | * |
Di Amazon DynamoDB, setiap nilai harus unik dalam binary set (BS), number set (NS), atau string set (SS). Sebagai contoh, saat Anda memasukkan 1,2,2,3 dalam NS, Amazon DynamoDB menghapus duplikat sehingga data yang dimasukkan menjadi 1,2,3. Instance ApsaraDB for MongoDB yang kompatibel dengan DynamoDB tidak mendukung deduplikasi data untuk BS, NS, dan SS. Dalam hal ini, tipe data * pada tabel di atas diproses sebagai array. Pada rilis mendatang dari ApsaraDB for MongoDB, tipe data ini akan dioptimalkan untuk deduplikasi data.