Unterstützt DynamoDB SQL?
Teilweise. DynamoDB unterstützt PartiQL, eine SQL-kompatible Abfragesprache für SELECT-, INSERT-, UPDATE- und DELETE-Anweisungen. Vollwertiges SQL ist das nicht: Es gibt keine JOINs, kein GROUP BY und keine beliebigen Aggregationen, und effiziente Abfragen müssen weiterhin den Primärschlüssel oder einen Index treffen. Wenn du genau diese fehlenden Teile brauchst: Die SQL Workbench von DynoTable führt echte JOIN-, GROUP BY- und Aggregat-Abfragen über deinen DynamoDB-Tabellen aus, direkt vom Desktop.
Was PartiQL dir bietet
Eine vertraute SQL-Syntax für die vier Datenoperationen. Du schreibst SELECT * FROM "Orders" WHERE ..., statt Low-Level-API-Aufrufe zusammenzubauen — bequem und gut lesbar.
Was es dir nicht bietet
- Keine JOINs – DynamoDB ist nicht relational; stattdessen denormalisierst du.
- Kein GROUP BY / keine Aggregate – Gruppieren und Summieren passiert in deiner Anwendung.
- Keine billigen Freiform-Scans – ein
SELECTohne Schlüsselbedingung läuft trotzdem als Scan und kostet entsprechend.
Wo der Parser abbricht
Das sind keine Funktionen, an die du mit anderer Syntax herankommst. Führst du sie aus, kommt die Anweisung nie so weit, ein Item überhaupt zu lesen:
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: DISTINCTSchau dir an, was die Aggregat-Fehler sagen. Es gibt gar keine Aggregatfunktion, die der Parser ablehnen könnte, also liest er COUNT(*) als Attributpfad und stolpert über das * in Spalte 8. So dünn ist die SQL-Oberfläche.
ORDER BY solltest du kennen, denn es sieht aus, als würde es funktionieren:
SELECT * FROM "Orders" WHERE "pk" = 'U#1' ORDER BY "total"
ValidationException: Variable reference total in ORDER BY clause must be part of the primary keyDu kannst nach dem Sortierschlüssel sortieren, aufsteigend oder absteigend, und nach sonst nichts. Nach jedem anderen Attribut zu sortieren ist Aufgabe deiner Anwendung, nach dem Lesen.
Das mentale Modell
Denk dir PartiQL als Syntaxschicht über den bestehenden Query-, Scan- und Schreiboperationen von DynamoDB; darunter gelten dieselben Zugriffsmuster-Regeln.
Echtes SQL (JOIN, GROUP BY, Aggregate) mit DynoTable
PartiQL endet beim SELECT über eine einzelne Tabelle. Die SQL Workbench von DynoTable geht weiter: Sie führt echte JOINs, GROUP BY und Aggregatfunktionen (COUNT, SUM, AVG, MIN, MAX) über deinen DynamoDB-Tabellen aus. Sie liest die Items über die normale DynamoDB-API und wertet den relationalen Teil der Abfrage dann im Client aus: SQL innerhalb der Zugriffsmuster-Regeln von DynamoDB, denn jeder Join liest weiterhin über einen echten Schlüssel oder Index. Die drei Dinge, die PartiQL nicht kann, schreibst du also als eine einzige Anweisung:
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.regionDabei bleibt sie ehrlich, was die darunterliegenden Grenzen angeht (ein unbegrenzter Join ist ein unbegrenzter Lesevorgang) — die schnellsten Abfragen sind also die, deren Join oder WHERE einen Partitionsschlüssel oder Index trifft. Alle Details findest du unter SQL für DynamoDB und im Produkthandbuch unter /docs/dynamodb-sql-workbench.
Die PartiQL-Seite desselben Datenmodells kannst du mit dem
DynamoDB Query Builder prototypisieren — er erzeugt partitionsbezogene
Query-Programme, die auf demselben effizienten Pfad bleiben, den auch ein PartiQL-SELECT mit
Schlüsselbedingung nimmt.
Tiefer einsteigen
Vergleiche beide in PartiQL vs. SQL, sieh dir PartiQL-Beispiele an und lies SQL für DynamoDB. Lade DynoTable herunter, um PartiQL — und echte JOINs, GROUP BY und Aggregate — gegen deine Tabellen zu schreiben.
Referenzen
- PartiQL - a SQL-compatible query language for Amazon DynamoDB — Amazon DynamoDB Developer Guide
- PartiQL select statements for DynamoDB — Amazon DynamoDB Developer Guide
- Query data in DynamoDB (SQL to NoSQL) — Amazon DynamoDB Developer Guide
Zuletzt überprüft am 13.07.2026 anhand der oben verlinkten offiziellen AWS-Dokumentation.
Jede ValidationException oben wurde am 28.07.2026 gegen DynamoDB Local 3.3.0 über @aws-sdk/client-dynamodb 3.1095.0 reproduziert und ist wörtlich zitiert, Spaltenoffsets eingeschlossen.