DynamoDB SQL destekler mi?

Kısmen. DynamoDB, SELECT, INSERT, UPDATE ve DELETE ifadeleri için SQL uyumlu bir sorgu dili olan PartiQL'i destekler. Tam SQL değildir: JOIN yoktur, GROUP BY yoktur, keyfi toplamalar yoktur ve verimli sorgular yine de birincil anahtarı ya da bir indeksi hedeflemeyi gerektirir. O eksik parçaları istiyorsanız, DynoTable'ın SQL Workbench'i masaüstünden DynamoDB tablolarınız üzerinde gerçek JOIN, GROUP BY ve toplama sorguları çalıştırır.

PartiQL sana ne verir

Dört veri işlemi için tanıdık bir SQL söz dizimi. Düşük seviyeli API çağrıları kurmak yerine SELECT * FROM "Orders" WHERE ... yazabilirsiniz; bu da kullanışlı ve okunaklıdır.

Sana ne vermez

  • JOIN yok — DynamoDB ilişkisel değildir; onun yerine denormalize edersiniz.
  • GROUP BY / toplama yok — gruplama ve toplama uygulamanızda gerçekleşir.
  • Ucuza serbest biçimli tarama yok — anahtar koşulu olmayan bir SELECT yine bir Scan çalıştırır ve buna göre maliyetlenir.

Ayrıştırıcı nerede durur

Bunlar farklı bir söz dizimiyle ulaşabileceğiniz özellikler değildir. Onları çalıştırın; ifade bir öğe okumaya bile ulaşamaz:

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

Toplama hatalarının ne dediğine bakın. Ayrıştırıcının geri çevireceği bir toplama işlevi yoktur; dolayısıyla COUNT(*) bir öznitelik yolu olarak okunur ve 8. sütunda * üzerinde tökezler. SQL yüzeyi işte bu kadar incedir.

ORDER BY bilinmesi gerekendir, çünkü çalışıyormuş gibi görünür:

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

Sıralama anahtarına göre artan ya da azalan sıralayabilirsiniz, başka hiçbir şeye göre sıralayamazsınız. Başka herhangi bir özniteliğe göre sıralamak, okumadan sonra uygulamanızın işidir.

Zihinsel model

PartiQL'i, DynamoDB'nin mevcut Query, Scan ve yazma işlemlerinin üzerindeki bir söz dizimi katmanı olarak düşünün; altta aynı erişim deseni kuralları geçerlidir.

DynoTable ile gerçek SQL (JOIN, GROUP BY, toplamalar)

PartiQL tek tablolu SELECT'te durur. DynoTable'ın SQL Workbench'i daha ileri gider: DynamoDB tablolarınız üzerinde gerçek JOIN, GROUP BY ve toplama işlevleri (COUNT, SUM, AVG, MIN, MAX) çalıştırır. Öğeleri normal DynamoDB API'si üzerinden okur, sonra sorgunun ilişkisel kısmını istemcide yürütür: DynamoDB'nin erişim deseni kuralları içinde SQL — çünkü her join yine gerçek bir anahtar ya da indeks üzerinden okur. Böylece PartiQL'in yapamadığı üç şeyi tek bir ifade olarak yazarsınız:

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

Alttaki kısıtlar konusunda dürüst kalır (sınırsız bir join sınırsız bir okumadır); dolayısıyla en hızlı sorgular, join'i ya da WHERE'i bir bölüm anahtarına ya da indekse isabet edenlerdir. Tüm ayrıntı DynamoDB için SQL sayfasında ve ürün el kitabındaki /docs/dynamodb-sql-workbench bölümünde.

Aynı veri modelinin PartiQL tarafını DynamoDB sorgu oluşturucusuyla prototipleyin — bir anahtar koşulu varken PartiQL SELECT'in kullandığı verimli yolda kalan, bölüm kapsamlı Query programları yayar.

Daha derine inin

İkisini PartiQL ile SQL sayfasında karşılaştırın, PartiQL örneklerine bakın ve DynamoDB için SQL sayfasını okuyun. Tablolarınıza karşı PartiQL ve gerçek JOIN, GROUP BY ve toplamalar yazmak için DynoTable'ı indirin.

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Yukarıdaki her ValidationException, 2026-07-28 tarihinde @aws-sdk/client-dynamodb 3.1095.0 üzerinden DynamoDB Local 3.3.0'a karşı yeniden üretildi ve sütun ofsetleri dahil birebir alıntılandı.

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.