SQL Workbench
Workbench 是一個 SQL 撰寫分頁,能跨你的 DynamoDB 表格執行真正的 JOIN、
GROUP BY 與聚合查詢 — 也就是 PartiQL 做不到的事。它是
DynamoDB 存取模式規則之內的 SQL:你撰寫單一個 SELECT,一個編譯器會檢查每個
關聯都透過真實的鍵或索引讀取、實體化關聯後的列,然後在其上執行你的完整 SQL。
從側邊欄的右鍵選單(新增 Workbench)、⌘⌥B 快捷鍵,或 檔案 → 新增 Workbench 開啟一個。撰寫 SQL,然後按 ⌘↩ 執行。
SELECT c.email, COUNT(*) AS orders, SUM(o.total) AS revenue
FROM orders o
JOIN customers c ON o.customerId = c.id
GROUP BY c.email
ORDER BY revenue DESC
它支援什麼
單一個 SELECT 陳述式,可帶有:
JOIN ... ON ...— 跨表格的INNER與LEFT關聯。- 聚合 —
COUNT、SUM、AVG、MIN、MAX,外加GROUP BY與HAVING。 WHERE、DISTINCT、CASE、CAST、ORDER BY。
當聚合查詢仍在串流時,會有一個 partial 標記標示受影響的欄位 — 隨著更多頁面
到達,數字會逐步精確。
存取模式規則
DynamoDB 沒有伺服器端關聯。Workbench 編譯器強制執行 DynamoDB 能 做的事:每個
JOIN 的目標端屬性都必須是目標表格上的 partition key 或 GSI partition key,
因此每次查找都是真正的 query,絕不是每列隱藏的整個表格 scan。
如果某個關聯指向非鍵屬性,編輯器會將它劃上底線並解釋原因。編譯器會預先拒絕的其他 結構,並附上精確的波浪線:
RIGHT/FULL OUTER/CROSS關聯與逗號關聯(僅支援INNER/LEFT)。- 子查詢、CTE(
WITH)、UNION/INTERSECT/EXCEPT。 - 視窗函式(
OVER)、多個陳述式,以及任何不是SELECT的東西。
唯讀
Workbench 始終為唯讀。沒有編輯、暫存或批次刪除 — 它是一個 分析介面。執行查詢絕不會寫入你的表格。
識別碼遵循標準 SQL 的大小寫規則:未加引號的名稱以不分大小寫比對
(WHERE PLATFORM 會找到 platform);用引號或反引號包住名稱以進行精確大小寫
比對。
執行、範本與歷史
- 執行 — 在編輯器中按 ⌘↩、按 Run 按鈕,或按 ⌘R 重新 執行。Workbench 分頁在開啟時絕不自動執行;執行永遠是刻意為之。
- 執行到底 — ⌘⇧↩,或從 Run 按鈕的分割選單挑選它,以串流完整的 關聯結果而非一頁。頁面上限會解除,頁面持續抵達直到查詢耗盡;停止是唯一的煞車。 對你想一次完整跑完的大型聚合很方便。
- 範本與已儲存查詢 — Queries 選單收納起始範本(select-all、filter-by-key、 count-by-group,帶有可用 Tab 移動的空位),外加任何你以 Save 保留下來的查詢 — 你自訂命名的查詢,可在任何表格上重複使用。挑選其中一個會取代編輯器的內容,因此它 會完全照你儲存時的樣子執行。
- 歷史 — 每次執行都會儲存(與 PartiQL 的歷史分開)、可搜尋, 且可還原 — 包括失敗的執行,因此你可以修正後重試。
Workbench 分頁是一份已儲存的規格 — 為它命名、從 ⌘K 重新開啟它,且它 能在重新載入後存留。你也可以匯出它關聯後的結果。
Workbench 與 Smart Table 的比較
兩者都執行同一個關聯引擎;它們是撰寫同一件事的兩種方式:
- Workbench 是 SQL 路徑 — 輸入一個查詢,取得聚合與已解析的屬性。
- **Smart Table 是視覺化路徑** — 在畫布上繪製關聯,並像 一般表格那樣瀏覽關聯後的列。


