PolarDB for PostgreSQL dan sangat kompatibel dengan API utama Amazon DynamoDB. Sebelum menggunakan fitur ini atau melakukan migrasi data, pastikan Anda memahami cakupan kompatibilitas, keterbatasan, dan perbedaan perilaku yang dijelaskan dalam bagian ini agar layanan Anda dapat berjalan dengan lancar dan andal.
Alat penilaian kompatibilitas
Untuk membantu menilai kompatibilitas proyek dengan PolarDB, PolarDB menyediakan dua alat penilaian. Pilih salah satu berdasarkan lingkungan pengembangan Anda:
-
(Direkomendasikan) Kemampuan penilaian berbasis AI (dynamodb-compat-checker):
-
Paket kemampuan: dynamodb-compat-checker.zip
-
Kemampuan analisis cerdas yang dibangun di atas agen coding berbasis AI. AI secara langsung membaca dan memahami kode sumber proyek Anda untuk menghasilkan laporan penilaian kompatibilitas lengkap beserta rekomendasi migrasi.
-
-
Alat analisis kode statis lokal (polardb_ddb_code_digest):
-
Alat analisis: polardb_ddb_code_digest.tar.gz
-
Alat pemindaian statis tradisional yang mengekstraksi penggunaan API berdasarkan kata kunci dan aturan sintaksis, menghasilkan laporan penggunaan API untuk dievaluasi terhadap dokumen ini.
-
Panduan pemilihan alat
Kami merekomendasikan menggunakan kemampuan penilaian berbasis AI terlebih dahulu. Jika lingkungan pengembangan Anda memiliki asisten coding berbasis AI yang mendukung kemampuan (agent skills), seperti Qoder, Claude Code, atau Codex, gunakan dynamodb-compat-checker secara langsung. Keunggulannya meliputi:
-
Cakupan bahasa tanpa batas: Tidak bergantung pada parser bahasa yang telah ditentukan sebelumnya dan dapat menganalisis proyek dalam bahasa apa pun, termasuk Go, Python, Java, dan JavaScript/TypeScript, serta versi SDK AWS mana pun (termasuk wrapper tingkat tinggi seperti DocumentClient dan Enhanced Client).
-
Pemahaman lebih baik, hasil lebih akurat: AI dapat melacak kelas wrapper, pemanggilan tidak langsung, dan logika konstruksi parameter dalam proyek Anda, mengidentifikasi pola penggunaan yang tidak terdeteksi oleh pencocokan kata kunci statis. Hal ini secara efektif mengurangi false positive dan false negative.
-
Kesimpulan yang langsung dapat ditindaklanjuti: Selain mencantumkan API dan parameter yang digunakan, kemampuan ini secara otomatis melakukan cross-reference terhadap matriks kompatibilitas PolarDB dan memberikan kesimpulan migrasi, item yang memerlukan tindakan, peringatan perbedaan perilaku, serta rekomendasi migrasi. Anda tidak perlu mengevaluasi setiap item secara manual terhadap dokumen ini.
Jika lingkungan Anda tidak memiliki asisten coding berbasis AI, pertimbangkan menggunakan alat analisis kode statis lokal polardb_ddb_code_digest. Perhatikan bahwa alat statis ini memiliki beberapa keterbatasan: cakupan bahasa terbatas (saat ini hanya Go dan Python), serta bergantung pada pencocokan kata kunci statis yang dapat menghasilkan false positive atau false negative untuk pemanggilan yang dibungkus dan semantik dinamis. Output-nya hanya berupa daftar penggunaan API, sehingga Anda tetap perlu mengevaluasinya terhadap daftar keterbatasan dalam dokumen ini.
(Direkomendasikan) Kemampuan penilaian berbasis AI: dynamodb-compat-checker
Cara kerja
-
Pemindaian kode: Setelah kemampuan ini dimuat, asisten coding berbasis AI langsung membaca dan memahami kode sumber proyek Anda, mengidentifikasi pola pembuatan klien DynamoDB serta semua lokasi pemanggilan API—termasuk kelas wrapper dan pemanggilan tidak langsung—tanpa mempertimbangkan bahasa pemrograman atau versi SDK yang digunakan.
-
Perbandingan kompatibilitas: API, parameter, dan field respons yang terdeteksi dibandingkan satu per satu dengan matriks kompatibilitas PolarDB untuk mengidentifikasi item yang tidak didukung, parameter yang sudah usang, serta perbedaan perilaku.
-
Generasi laporan: Laporan penilaian kompatibilitas terstruktur
dynamodb_api_analysis_[project_name].mddihasilkan secara otomatis, berisi kesimpulan migrasi, item yang memerlukan tindakan, peringatan mengenai perbedaan perilaku, dan rekomendasi migrasi. Laporan ini hanya mencatat metadata seperti nama API dan nama parameter, tanpa menyertakan nilai data bisnis apa pun.
Instruksi penggunaan
-
Unduh paket kemampuan penilaian berbasis AI.
-
Ekstrak paket tersebut dan letakkan direktori
dynamodb-compat-checkerke dalam direktori kemampuan asisten coding berbasis AI Anda (jalur pastinya bergantung pada produk, misalnya direktori kemampuan tingkat proyek.qoder/skills/atau.claude/skills/). -
Buka proyek yang akan dinilai di asisten coding berbasis AI Anda dan kirim instruksi, contohnya:
Please scan the DynamoDB API usage in the current project and generate a compatibility assessment report with PolarDB. -
Setelah penilaian selesai, lihat laporan yang dihasilkan
dynamodb_api_analysis_[project_name].mddi direktori root proyek.
Alat analisis kode statis lokal: polardb_ddb_code_digest
Cara kerja
-
Pemindaian kode: Alat ini memindai direktori proyek yang ditentukan secara rekursif untuk mengidentifikasi dan mengurai file sumber. Saat ini mendukung Go dan Python.
-
Analisis API: Berdasarkan spesifikasi resmi AWS SDK, alat ini mengekstraksi semua pemanggilan API DynamoDB, nama parameter, konstanta, dan struktur ekspresi.
-
Generasi laporan: Alat ini membersihkan informasi yang dikumpulkan dengan menghapus semua nilai data bisnis, mengagregasi statistik, dan menghasilkan laporan penggunaan API terstruktur yang mencantumkan secara jelas API dan parameter yang digunakan oleh proyek Anda beserta frekuensi pemanggilannya.
Anda dapat menggunakan laporan ini untuk menilai kompatibilitas proyek Anda terhadap daftar keterbatasan dalam dokumen ini.
Instruksi penggunaan
-
Unduh alat analisis kode statis lokal ke lingkungan aplikasi Anda.
-
Ekstrak paket tersebut, masuk ke direktori hasil ekstraksi, lalu jalankan perintah berikut untuk menginstal dependensi proyek.
-
Pastikan Anda telah menginstal Python 3.9.6 atau versi yang lebih baru.
-
(Opsional) Untuk mengisolasi dependensi proyek dan mencegah konflik dengan paket global, buat dan aktifkan lingkungan virtual.
python3 -m venv venv && source venv/bin/activate -
Instal dependensi proyek.
pip3 install -r requirements.txt
-
-
Pindai file sumber:
-
Untuk direktori file sumber Python:
python3 main.py --dir <path/to/dir> --lang python > scan_output.log -
Untuk direktori file sumber Go:
python3 main.py --dir <path/to/dir> --lang go > scan_output.log
-
Keterbatasan dan perbedaan perilaku
Bagian ini menjelaskan perbedaan utama dalam fungsi dan perilaku antara PolarDB dan DynamoDB asli.
Keterbatasan umum
-
Parameter yang sudah usang: PolarDB mengikuti spesifikasi API terbaru. Parameter yang sudah usang dari versi lama, seperti
AttributeUpdates,Expected, atauAttributesToGet, akan diabaikan atau menghasilkan error. Pastikan aplikasi Anda menggunakan parameter versi terbaru yang sesuai, sepertiUpdateExpression,ConditionExpression, atauProjectionExpression. -
Pesan error: Pesan error untuk beberapa operasi mungkin berbeda dari DynamoDB asli.
-
Parameter statistik dan penagihan: PolarDB menerima parameter permintaan seperti
ReturnConsumedCapacity, tetapi karena PolarDB menggunakan mode penagihan yang berbeda dari DynamoDB, parameter ini secara otomatis diabaikan. FieldConsumedCapacityyang dikembalikan tidak sepenuhnya selaras dengan semantik unit kapasitas DynamoDB AWS. Nilai ini hanya mencerminkan perilaku baca-tulis aktual di sisi PolarDB dan tidak digunakan untuk tujuan penagihan. -
Proyeksi indeks: Saat Anda menentukan atribut yang diproyeksikan (
NonKeyAttributes) untuk indeks sekunder, field yang diproyeksikan tidak boleh mencakup kunci primer tabel (kunci partisi dan kunci pengurutan) atau kunci primer milik indeks tersebut.
Perbedaan perilaku spesifik API
-
UpdateItem-
Saat menggunakan
REMOVE a.buntuk menghapus atribut bersarang yang induknyaatidak ada, DynamoDB asli mengembalikan error. Sebaliknya, PolarDB diam-diam mengabaikan operasi tersebut.
-
-
BatchWriteItem-
Atomisitas: Penulisan batch di PolarDB merupakan operasi atomik. Artinya, semua operasi dalam satu permintaan berhasil atau gagal secara bersamaan. Akibatnya, field
UnprocessedItemsdalam respons selalu kosong. -
Konflik kunci primer: DynamoDB asli tidak mengizinkan operasi
PutItemdanDeleteItempada kunci primer yang sama dalam satu permintaan. Namun, PolarDB saat ini mengizinkan operasi semacam itu.
-
-
BatchGetItem-
Atomisitas: Mirip dengan penulisan batch, pembacaan batch juga merupakan operasi atomik. Akibatnya, field
UnprocessedKeysdalam respons selalu kosong. -
Kunci primer duplikat: DynamoDB asli tidak mengizinkan permintaan mencakup kunci primer duplikat. PolarDB mengizinkan kunci primer duplikat dan mengembalikan satu item untuk setiap kunci tersebut.
-
-
Query/Scan-
Dalam respons,
ScannedCountselalu sama denganCount. PolarDB tidak membedakan jumlah item sebelum dan sesudah penerapan filter (FilterExpression).
-
-
TransactGetItems/TransactWriteItems-
DynamoDB asli tidak mengizinkan beberapa operasi pada kunci primer yang sama dalam satu transaksi. Namun, PolarDB saat ini mengizinkan operasi semacam itu.
-
TransactionCanceledExceptionsaat ini hanya memiliki dua alasan:ConditionalCheckFaileddanTransactionConflict. AlasanItemCollectionSizeLimitExceeded,ProvisionedThroughputExceeded, danThrottlingErrortidak terjadi di PolarDB. Alih-alih menyertakanValidationErrorsebagai alasan dalamTransactionCanceledException, PolarDB melemparkanCommonError.
-
Perintah dan parameter
-
Kolom Didukung:
-
Ya: Parameter ini didukung.
-
Tidak: Parameter ini tidak didukung.
-
-
Kolom Catatan: Memberikan informasi tambahan tentang parameter yang tidak didukung atau memiliki perilaku khusus.
CreateTable
|
API |
Jenis parameter |
Parameter |
Wajib |
Didukung |
Keterangan |
|
CreateTable |
Parameter permintaan |
AttributeDefinitions |
Ya |
Ya |
- |
|
KeySchema |
Ya |
Ya |
- |
||
|
TableName |
Ya |
Ya |
- |
||
|
BillingMode |
Tidak |
Tidak |
Diabaikan jika ditentukan. |
||
|
DeletionProtectionEnabled |
Tidak |
Ya |
- |
||
|
GlobalSecondaryIndexes |
Tidak |
Ya |
- |
||
|
LocalSecondaryIndexes |
Tidak |
Ya |
- |
||
|
OnDemandThroughput |
Tidak |
Tidak |
Diabaikan jika ditentukan. |
||
|
ProvisionedThroughput |
Tidak |
Ya |
- |
||
|
ResourcePolicy |
Tidak |
Tidak |
Diabaikan jika ditentukan. |
||
|
SSESpecification |
Tidak |
Tidak |
Diabaikan jika ditentukan. Catatan
Gunakan Transparent Data Encryption (TDE) untuk enkripsi. |
||
|
StreamSpecification |
Tidak |
Tidak |
Diabaikan jika ditentukan. Catatan
Gunakan manajemen langganan untuk replikasi stream. |
||
|
TableClass |
Tidak |
Tidak |
Diabaikan jika ditentukan. |
||
|
Tags |
Tidak |
Tidak |
Diabaikan jika ditentukan. |
||
|
WarmThroughput |
Tidak |
Tidak |
Diabaikan jika ditentukan. |
||
|
Parameter respons |
TableDescription |
- |
Ya |
- |
DescribeTable
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Catatan |
|
DescribeTable |
Permintaan |
TableName |
Ya |
Ya |
- |
|
Respons |
Table |
- |
Ya |
- |
ListTables
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Catatan |
|
ListTables |
Parameter permintaan |
ExclusiveStartTableName |
Tidak |
Ya |
— |
|
Limit |
Tidak |
Ya |
— |
||
|
Parameter respons |
LastEvaluatedTableName |
— |
Ya |
— |
|
|
TableNames |
— |
Ya |
— |
UpdateTable
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
UpdateTable |
parameter permintaan |
TableName |
Ya |
Ya |
- |
|
AttributeDefinitions |
Tidak |
Ya |
- |
||
|
BillingMode |
Tidak |
Tidak |
Parameter ini diabaikan. |
||
|
DeletionProtectionEnabled |
Tidak |
Ya |
- |
||
|
GlobalSecondaryIndexUpdates |
Tidak |
Ya |
Lakukan operasi ini selama jam sepi. |
||
|
GlobalTableWitnessUpdates |
Tidak |
Tidak |
Menyertakan parameter ini dalam permintaan akan mengembalikan error. |
||
|
MultiRegionConsistency |
Tidak |
Tidak |
Menyertakan parameter ini dalam permintaan akan mengembalikan error. |
||
|
OnDemandThroughput |
Tidak |
Tidak |
Parameter ini diabaikan. |
||
|
ProvisionedThroughput |
Tidak |
Tidak |
Parameter ini diabaikan. |
||
|
ReplicaUpdates |
Tidak |
Tidak |
Menyertakan parameter ini dalam permintaan akan mengembalikan error. |
||
|
SSESpecification |
Tidak |
Tidak |
Parameter ini diabaikan. Catatan
Untuk enkripsi, gunakan Set transparent data encryption (TDE). |
||
|
StreamSpecification |
Tidak |
Tidak |
Parameter ini diabaikan. Catatan
Untuk replikasi stream, gunakan manajemen langganan. |
||
|
TableClass |
Tidak |
Tidak |
Parameter ini diabaikan. |
||
|
WarmThroughput |
Tidak |
Tidak |
Parameter ini diabaikan. |
||
|
parameter respons |
TableDescription |
- |
Ya |
- |
DeleteTable
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Catatan |
|
DeleteTable |
parameter permintaan |
TableName |
Ya |
Ya |
- |
|
parameter respons |
TableDescription |
- |
Ya |
- |
PutItem
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
PutItem |
parameter permintaan |
Item |
Ya |
Ya |
- |
|
TableName |
Ya |
Ya |
- |
||
|
ConditionalOperator |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConditionExpression |
Tidak |
Ya |
- |
||
|
Expected |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
||
|
ExpressionAttributeValues |
Tidak |
Ya |
- |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Diabaikan. |
||
|
ReturnItemCollectionMetrics |
Tidak |
Ya |
- |
||
|
ReturnValues |
Tidak |
Ya |
- |
||
|
ReturnValuesOnConditionCheckFailure |
Tidak |
Ya |
- |
||
|
parameter respons |
Attributes |
- |
Ya |
- |
|
|
ConsumedCapacity |
- |
Tidak |
Tidak dikembalikan. |
||
|
ItemCollectionMetrics |
- |
Ya |
- |
UpdateItem
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
UpdateItem |
Parameter permintaan |
Key |
Ya |
Ya |
- |
|
TableName |
Ya |
Ya |
- |
||
|
AttributeUpdates |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConditionalOperator |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConditionExpression |
Tidak |
Ya |
- |
||
|
Expected |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
||
|
ExpressionAttributeValues |
Tidak |
Ya |
- |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter ini diabaikan. |
||
|
ReturnItemCollectionMetrics |
Tidak |
Ya |
- |
||
|
ReturnValues |
Tidak |
Ya |
- |
||
|
ReturnValuesOnConditionCheckFailure |
Tidak |
Ya |
- |
||
|
UpdateExpression |
Tidak |
Ya |
- |
||
|
Parameter respons |
Attributes |
- |
Ya |
- |
|
|
ConsumedCapacity |
- |
Tidak |
Parameter ini tidak dikembalikan. |
||
|
ItemCollectionMetrics |
- |
Ya |
- |
GetItem
|
API |
Jenis parameter |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
GetItem |
parameter permintaan |
Key |
Ya |
Ya |
- |
|
TableName |
Ya |
Ya |
- |
||
|
AttributesToGet |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConsistentRead |
Tidak |
Ya |
- |
||
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
||
|
ProjectionExpression |
Tidak |
Ya |
- |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Diabaikan. Ini adalah parameter terkait penagihan. |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Tidak dikembalikan. Ini adalah parameter terkait penagihan. |
|
|
Item |
- |
Ya |
- |
DeleteItem
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
DeleteItem |
parameter permintaan |
Key |
Ya |
Ya |
- |
|
TableName |
Ya |
Ya |
- |
||
|
ConditionalOperator |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConditionExpression |
Tidak |
Ya |
- |
||
|
Expected |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
||
|
ExpressionAttributeValues |
Tidak |
Ya |
- |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter terkait penagihan ini diabaikan. |
||
|
ReturnItemCollectionMetrics |
Tidak |
Ya |
- |
||
|
ReturnValues |
Tidak |
Ya |
- |
||
|
ReturnValuesOnConditionCheckFailure |
Tidak |
Ya |
- |
||
|
parameter respons |
Attributes |
- |
Ya |
- |
|
|
ConsumedCapacity |
- |
Tidak |
Parameter terkait penagihan ini tidak dikembalikan. |
||
|
ItemCollectionMetrics |
- |
Ya |
- |
BatchWriteItem
|
Nama API |
Jenis parameter |
Nama parameter |
Wajib |
Didukung |
Deskripsi |
|
BatchWriteItem |
parameter permintaan |
RequestItems |
Ya |
Ya |
- |
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter terkait penagihan diabaikan. |
||
|
ReturnItemCollectionMetrics |
Tidak |
Ya |
- |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Parameter terkait penagihan tidak dikembalikan. |
|
|
ItemCollectionMetrics |
- |
Ya |
- |
||
|
UnprocessedItems |
- |
Ya |
Parameter ini selalu dikembalikan kosong. Lihat keterbatasan yang dijelaskan di atas. |
|
Parameter |
Parameter tingkat kedua |
Parameter tingkat ketiga |
Wajib |
Didukung |
Deskripsi |
|
RequestItems |
DeleteRequest |
Key |
Ya |
Ya |
- |
|
PutRequest |
Item |
Ya |
Ya |
- |
BatchGetItem
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
BatchGetItem |
parameter permintaan |
RequestItems |
Ya |
Ya |
- |
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter ini diabaikan. |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Parameter ini tidak dikembalikan. |
|
|
Responses |
- |
Ya |
- |
||
|
UnprocessedKeys |
- |
Ya |
Perilaku berbeda: parameter ini selalu kosong. Lihat keterbatasan yang dijelaskan di atas untuk detailnya. |
|
Parameter |
Parameter bersarang |
Wajib |
Didukung |
Deskripsi |
|
RequestItems |
ConsistentRead |
Tidak |
Ya |
- |
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
|
|
Keys |
Ya |
Ya |
- |
|
|
ProjectionExpression |
Tidak |
Ya |
- |
|
|
AttributesToGet |
Tidak |
Tidak |
Sudah usang. Gunakan |
Query
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
Query |
parameter permintaan |
TableName |
Ya |
Ya |
- |
|
AttributesToGet |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConditionalOperator |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConsistentRead |
Tidak |
Ya |
- |
||
|
ExclusiveStartKey |
Tidak |
Ya |
- |
||
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
||
|
ExpressionAttributeValues |
Tidak |
Ya |
- |
||
|
FilterExpression |
Tidak |
Ya |
- |
||
|
IndexName |
Tidak |
Ya |
- |
||
|
KeyConditionExpression |
Tidak |
Ya |
- |
||
|
KeyConditions |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
Limit |
Tidak |
Ya |
- |
||
|
ProjectionExpression |
Tidak |
Ya |
- |
||
|
QueryFilter |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter terkait penagihan ini diabaikan. |
||
|
ScanIndexForward |
Tidak |
Ya |
- |
||
|
Select |
Tidak |
Ya |
- |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Parameter terkait penagihan ini tidak dikembalikan. |
|
|
Count |
- |
Ya |
Parameter ini berperilaku berbeda: nilainya selalu sama dengan |
||
|
Items |
- |
Ya |
- |
||
|
LastEvaluatedKey |
- |
Ya |
- |
||
|
ScannedCount |
- |
Ya |
- |
Scan
|
Nama API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
Scan |
parameter permintaan |
TableName |
Ya |
Ya |
- |
|
AttributesToGet |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConditionalOperator |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
ConsistentRead |
Tidak |
Ya |
- |
||
|
ExclusiveStartKey |
Tidak |
Ya |
- |
||
|
ExpressionAttributeNames |
Tidak |
Ya |
- |
||
|
ExpressionAttributeValues |
Tidak |
Ya |
- |
||
|
FilterExpression |
Tidak |
Ya |
- |
||
|
IndexName |
Tidak |
Ya |
- |
||
|
Limit |
Tidak |
Ya |
- |
||
|
ProjectionExpression |
Tidak |
Ya |
- |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter terkait penagihan ini tidak didukung dan diabaikan jika disertakan. |
||
|
ScanFilter |
Tidak |
Tidak |
Sudah usang. Gunakan |
||
|
Segment |
Tidak |
Tidak |
Tidak didukung. Menyertakan parameter ini dalam permintaan menyebabkan error. |
||
|
Select |
Tidak |
Ya |
- |
||
|
TotalSegments |
Tidak |
Tidak |
Tidak didukung. Menyertakan parameter ini dalam permintaan menyebabkan error. |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Parameter terkait penagihan ini tidak didukung dan tidak dikembalikan. |
|
|
Count |
- |
Ya |
Perilaku berbeda: Nilai ini selalu sama dengan |
||
|
Items |
- |
Ya |
- |
||
|
LastEvaluatedKey |
- |
Ya |
- |
||
|
ScannedCount |
- |
Ya |
- |
TransactWriteItems
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Catatan |
|
TransactWriteItems |
parameter permintaan |
TransactItems |
Ya |
Ya |
- |
|
ClientRequestToken |
Tidak |
Ya |
- |
||
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter terkait penagihan ini diabaikan. |
||
|
ReturnItemCollectionMetrics |
Tidak |
Ya |
- |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Parameter terkait penagihan ini tidak dikembalikan. |
|
|
ItemCollectionMetrics |
- |
Ya |
- |
|
Parameter |
Sub-parameter |
Wajib |
Didukung |
Catatan |
|
TransactItems |
ConditionCheck |
Tidak |
Ya |
- |
|
Put |
Tidak |
Ya |
- |
|
|
Update |
Tidak |
Ya |
- |
|
|
Delete |
Tidak |
Ya |
- |
TransactGetItems
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
TransactGetItems |
parameter permintaan |
TransactItems |
Ya |
Ya |
- |
|
ReturnConsumedCapacity |
Tidak |
Ya |
Parameter terkait penagihan ini diabaikan. |
||
|
parameter respons |
ConsumedCapacity |
- |
Tidak |
Parameter terkait penagihan ini tidak dikembalikan. |
|
|
Responses |
- |
Ya |
- |
DescribeTimeToLive
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
DescribeTimeToLive |
Parameter permintaan |
TableName |
Ya |
Ya |
- |
|
Parameter respons |
TimeToLiveDescription |
- |
Ya |
- |
UpdateTimeToLive
|
API |
Jenis parameter |
Parameter |
Wajib |
Didukung |
Catatan |
|
UpdateTimeToLive |
parameter permintaan |
TableName |
Ya |
Ya |
- |
|
parameter permintaan |
TimeToLiveSpecification |
Ya |
Ya |
- |
|
|
parameter respons |
TimeToLiveSpecification |
- |
Ya |
- |
|
Parameter |
Parameter bersarang |
Wajib |
Didukung |
Catatan |
|
TimeToLiveSpecification |
AttributeName |
Ya |
Ya |
- |
|
Enabled |
Ya |
Ya |
- |
TagResource
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
TagResource |
parameter permintaan |
ResourceArn |
Ya |
Ya |
Nilai ini adalah TableArn yang dikembalikan dalam TableDescription. |
|
Tags |
Ya |
Ya |
- |
UntagResource
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
UntagResource |
parameter permintaan |
ResourceArn |
Ya |
Ya |
Nilai ini berasal dari field TableArn dalam TableDescription. |
|
TagKeys |
Ya |
Ya |
- |
ListTagsOfResource
|
API |
Jenis |
Parameter |
Wajib |
Didukung |
Deskripsi |
|
ListTagsOfResource |
Parameter permintaan |
ResourceArn |
Ya |
Ya |
ARN resource, dari field TableArn dalam objek TableDescription. |
|
NextToken |
Tidak |
Ya |
- |
||
|
Parameter respons |
Tags |
- |
Ya |
- |
|
|
NextToken |
- |
Ya |
- |
Perbedaan fitur spesifik
Tabel berikut mencantumkan kategori fitur di mana arsitektur PolarDB berbeda secara signifikan dari DynamoDB. Meskipun DynamoDB mengimplementasikan fitur-fitur ini melalui API proprietary, PolarDB menyediakan solusi ekuivalen menggunakan kemampuan native-nya atau ekosistem PostgreSQL yang lebih luas.
|
Kategori fitur |
API/parameter DynamoDB |
Solusi ekuivalen PolarDB |
|
Penagihan |
|
Karena mode penagihan berbeda dari DynamoDB, parameter terkait tidak berlaku setelah dikonfigurasi dan secara otomatis diabaikan. |
|
Elastisitas |
|
PolarDB menyediakan elastisitas melalui Serverless dan penskalaan tipe instans. |
|
Kueri PartiQL |
|
PolarDB kompatibel dengan API DynamoDB dan SQL PostgreSQL standar. Anda dapat menggunakan SQL secara langsung untuk kueri kompleks. |
|
Pencadangan dan pemulihan |
|
PolarDB mendukung pencadangan otomatis berkala, pencadangan manual sesuai permintaan, dan pemulihan pada titik waktu (PITR). Untuk informasi lebih lanjut, lihat Pencadangan dan pemulihan. |
|
Tabel global |
|
Menggunakan Jaringan Basis Data Global (GDN) untuk menyediakan sinkronisasi data lintas wilayah dan pembacaan lokal. |
|
Enkripsi sisi server |
|
Menyediakan enkripsi data statis melalui Transparent Data Encryption (TDE). |
|
DynamoDB Streams |
|
Fitur ini menggunakan replikasi logis native PostgreSQL untuk mengaktifkan langganan inkremental terhadap perubahan data dan konsumsi downstream. Untuk informasi lebih lanjut, lihat Manajemen Langganan. |
|
Impor dan Ekspor S3 |
|
Memanfaatkan kemampuan HTAP-nya dengan indeks kolom (IMCI) bawaan untuk menjalankan kueri analitik online tanpa ETL ke sistem terpisah. Alternatifnya, Anda dapat mengintegrasikan dengan ekosistem data besar seperti MaxCompute, AnalyticDB, dan E-MapReduce (EMR) menggunakan Data Transmission Service (DTS), tabel eksternal Object Storage Service (OSS), atau replikasi logis. |
|
Kebijakan Resource |
|
Menggunakan Resource Access Management (RAM) untuk menyediakan kontrol akses detail halus bagi Akun Alibaba Cloud. Bidang data menggunakan sistem pengguna dan izin native PostgreSQL. |
|
Integrasi stream Kinesis |
|
Menyediakan integrasi stream melalui Data Transmission Service (DTS) atau replikasi logis native PostgreSQL. |
|
Contributor Insights |
|
Menyediakan fitur seperti SQL Insights, pemantauan kinerja, dan analisis slow SQL melalui Database Autonomy Service (DAS). |
|
Penemuan endpoint |
|
Anda dapat mengkueri endpoint DynamoDB kluster dengan menggunakan operasi OpenAPI DescribeDBClusterEndpoints. |