DynamoDB 是 NoSQL 資料庫嗎?
是。DynamoDB 是一個 NoSQL 資料庫——一個非關係型、全託管的鍵值與文件儲存。它存放的是無模式的項目,而不是固定模式表裡的行,並且用 SQL 連線和即席查詢換來了可預測的個位數毫秒級效能,以及橫向擴充套件到幾乎任意規模的能力。
是哪一種 NoSQL
DynamoDB 同時支援鍵值和文件兩種資料模型。每個項目都由一個主索引鍵定址,而屬性可以以對映和列表的形式巢狀最多 32 層——這就是模型的文件那一面。
它和 SQL 有什麼不同
- 沒有固定模式——只有主索引鍵需要事先定義;其他屬性可以逐項目而異。
- 沒有連線——你改用非正規化,並圍繞訪問模式來建模。
- 可預測的效能——讀取直接命中一個分割區索引鍵,所以延遲不會隨資料增長而變化。
引擎拿到一條 JOIN 會怎麼做
PartiQL 讓 DynamoDB 看起來像 SQL,所以這條邊界很容易被忽略。AWS 文件化的 SELECT 語法就是全部的語法,而它沒有 JOIN 子句:
SELECT {{expression}} [, ...]
FROM {{table}}[.{{index}}]
[ WHERE {{condition}} ] [ [ORDER BY {{key}} [DESC|ASC] , ...]硬發一條過去,解析器會在第二張表那裡停下:
await client.send(
new ExecuteStatementCommand({
Statement: `SELECT o.pk FROM "orders" o JOIN "customers" c ON o.pk = c.pk`
})
);真實輸出:
ValidationException: Only select from a single table or index is supported.
HTTP 400這個拒絕發生在解析階段,任何資料被讀取之前,所以再怎麼設計索引也換不來一次連線。在 NoSQL 儲存裡,連線是你應用的活兒。
這也劃定了任何用戶端能誠實提供什麼的邊界。DynoTable 的 SQL Workbench 接受 INNER JOIN、LEFT JOIN、GROUP BY 以及 COUNT/SUM/AVG/MIN/MAX。
它會把這些編譯成原生的 Query 和 Scan 呼叫,然後在你的機器上完成連線與聚合。DynamoDB 自始至終看到的仍然只有單表讀取。
什麼時候合適
DynamoDB 是為 OLTP 工作負載打造的:高吞吐、已知的點讀與範圍讀寫。重分析該放在一個由匯出喂資料的獨立列式儲存裡。
深入瞭解
參見什麼時候該用 DynamoDB,以及如何在如何在 DynamoDB 中建模資料裡塑造資料。下載 DynoTable,瀏覽你的 NoSQL 表,並在 DynamoDB 的訪問模式規則之內對它們執行 SQL。
這些限制很重要,因為您無法在查詢時加入擺脫這些限制。您預先圍繞它們進行建模 - 稀疏索引、非正規化屬性和單表鍵 - 然後按分割區讀取。 Query Builder 將過濾器轉換為 Query 或 Scan 請求 DynamoDB 將實際執行。
在DynoTable中:當關系問題合法時,SQLWorkbench將JOIN和GROUP BY編譯為機器上的本機Query和Scan呼叫 - DynamoDB仍然會看到單表讀取。有關支援的語法和誠實限制,請參閱SQL Workbench。
深入了解
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Core components of Amazon DynamoDB — Amazon DynamoDB Developer Guide
- PartiQL select statements for DynamoDB — Amazon DynamoDB Developer Guide
- Fast NoSQL Key-Value Database — Amazon DynamoDB — AWS
最後核實於 2026-07-13,依據上方連結的 AWS 官方文件;PartiQL 的 SELECT 語法已於 2026-07-28 重新核對。
2026-07-28 針對 DynamoDB Local 3.3.0,經由 @aws-sdk/client-dynamodb 3.1095.0、Node v24.18.0 復現。上方的 ValidationException 是原樣的引擎輸出。
深入了解
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Core components of Amazon DynamoDB — Amazon DynamoDB Developer Guide
- PartiQL select statements for DynamoDB — Amazon DynamoDB Developer Guide
- Fast NoSQL Key-Value Database — Amazon DynamoDB — AWS
根據上面連結的官方 AWS 文件最後一次驗證時間為 2026 年 7 月 13 日; PartiQLSELECT語法已重新檢查2026-07-28.
於 2026 年 7 月 28 日在 Node v24.18.0 上透過 @aws-sdk/client-dynamodb 3.1095.0 針對 DynamoDB Local 3.3.0 進行復制。上面的ValidationException是逐字引擎輸出。