Apakah DynamoDB mendukung SQL?

Sebagian. DynamoDB mendukung PartiQL, bahasa kueri yang kompatibel dengan SQL untuk pernyataan SELECT, INSERT, UPDATE, dan DELETE. Ini bukan SQL penuh: tidak ada GABUNG, tidak ada GROUP BY, dan tidak ada agregasi sewenang-wenang, dan kueri yang efisien masih memerlukan penargetan kunci utama atau indeks. Jika Anda menginginkan bagian yang hilang tersebut, Workbench SQL DynoTable menjalankan JOIN, GROUP BY, dan kueri agregat nyata pada tabel DynamoDB Anda dari desktop.

Apa yang PartiQL berikan kepada Anda

Sintaks SQL yang familiar untuk empat operasi data. Anda dapat menulis SELECT * FROM "Orders" WHERE ... alih-alih membuat panggilan API tingkat rendah, yang nyaman dan mudah dibaca.

Apa yang tidak diberikannya kepada Anda

  • Tanpa GABUNG — DynamoDB tidak bersifat relasional; Anda malah melakukan denormalisasi.
  • Tidak ada GROUP BY / agregat — pengelompokan dan penjumlahan terjadi di aplikasi Anda.
  • Tidak ada pemindaian bentuk bebas dengan harga murahSELECT tanpa syarat kunci tetap menjalankan Pemindaian dan biayanya sesuai.

Tempat parser berhenti

Ini bukan fitur yang dapat Anda jangkau dengan sintaks berbeda. Jalankan mereka dan pernyataannya tidak akan pernah sampai pada membaca item:

SELECT "region", SUM("total") FROM "Orders" GROUP BY "region"
  ValidationException: Unsupported clause: GROUP BY

SELECT COUNT(*) FROM "Orders"
  ValidationException: Unexpected path component at 1:8:5

SELECT SUM("total") FROM "Orders"
  ValidationException: Unexpected path component at 1:8:3

SELECT DISTINCT "region" FROM "Orders"
  ValidationException: Unsupported token in expression: DISTINCT

Lihatlah apa yang dikatakan oleh kesalahan agregat. Tidak ada fungsi agregat yang dapat ditolak oleh parser, jadi COUNT(*) dibaca sebagai jalur atribut dan jatuh ke *, di kolom 8. Setipis itulah permukaan SQL.

ORDER BY adalah yang perlu diketahui, karena sepertinya berfungsi:

SELECT * FROM "Orders" WHERE "pk" = 'U#1' ORDER BY "total"
  ValidationException: Variable reference total in ORDER BY clause must be part of the primary key

Anda dapat mengurutkan berdasarkan tombol pengurutan, naik atau turun, dan tidak berdasarkan yang lain. Menyortir berdasarkan atribut lain adalah tugas aplikasi Anda, setelah dibaca.

Model mental

Pikirkan PartiQL sebagai lapisan sintaksis di atas operasi Kueri, Pemindaian, dan penulisan DynamoDB yang ada; aturan pola akses yang sama berlaku di bawahnya.

SQL asli (GABUNG, GROUP BY, agregat) dengan DynoTable

PartiQL berhenti di SELECT tabel tunggal. SQL Workbench DynoTable melangkah lebih jauh: ia menjalankan fungsi JOIN, GROUP BY, dan agregat aktual (COUNT, SUM, AVG, MIN, MAX) pada tabel DynamoDB Anda. Ia membaca item melalui DynamoDB API normal, kemudian mengeksekusi bagian relasional dari kueri di klien: SQL dalam aturan pola akses DynamoDB, karena setiap gabungan masih membaca kunci atau indeks sebenarnya. Jadi tiga hal yang tidak dapat dilakukan PartiQL, Anda menulis sebagai satu pernyataan:

SELECT   c.region, COUNT(*) AS orders, SUM(o.total) AS revenue
FROM     Orders o
JOIN     Customers c ON o.customerId = c.id
GROUP BY c.region

Itu tetap jujur tentang kendala yang mendasarinya (gabungan tak terbatas adalah pembacaan tak terbatas), jadi kueri tercepat adalah kueri yang gabungan atau WHERE-nya mengenai kunci partisi atau indeks. Detail lengkap di SQL untuk DynamoDB dan manual produk di /docs/dynamodb-sql-workbench.

Prototipe sisi PartiQL dari model data yang sama dengan Pembuat kueri DynamoDB — memancarkan cakupan partisi Program Query yang tetap berada di jalur efisien PartiQL SELECT menggunakan kunci kondisi ada.

Pelajari lebih lanjut

Bandingkan keduanya di PartiQL vs SQL, lihat Contoh PartiQL, dan baca SQL untuk DynamoDB. Unduh DynoTable untuk menulis PartiQL, dan JOIN, GROUP BY, dan agregat nyata, pada tabel Anda.

Referensi

Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.

Setiap ValidationException di atas direproduksi pada 28-07-2026 terhadap DynamoDB Lokal 3.3.0 melalui @aws-sdk/client-dynamodb 3.1095.0 dan dikutip kata demi kata, termasuk offset kolom.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.