SQL Workbench
Workbench 是一個 SQL 撰寫分頁,能跨你的 DynamoDB 表格執行真正的 JOIN、
GROUP BY 與聚合查詢 — 也就是 PartiQL 做不到的事。它是
DynamoDB 存取模式規則之內的 SQL:你撰寫單一個 SELECT,一個編譯器會檢查每個
關聯都透過真實的鍵或索引讀取、實體化關聯後的列,然後在其上執行陳述式的其餘部分 —
篩選、聚合、GROUP BY、ORDER BY。
從側邊欄的右鍵選單(新增 Workbench)、⌘⌥B 快捷鍵,或 檔案 → 新增 Workbench 開啟一個。撰寫 SQL,然後按 ⌘↩ 執行。
編輯器會依游標處的 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 的目標端屬性都必須是目標表格上的分割區索引鍵或 分割區索引鍵,
因此每次查找都是真正的 query,絕不是每列隱藏的整個表格 。
如果某個關聯指向非鍵屬性,編輯器會將它劃上底線並解釋原因。編譯器的其他拒絕情形 也會以精確的驗證波浪線呈現。Workbench 不提供快速修正:
RIGHT/FULL OUTER/CROSS關聯與逗號關聯(僅支援INNER/LEFT)。- 子查詢、CTE(
WITH)、UNION/INTERSECT/EXCEPT。 - 視窗函式(
OVER)、多個陳述式,以及任何不是SELECT的東西。
唯讀
Workbench 始終為唯讀。沒有編輯、暫存或批次刪除 — 它是一個 分析介面。執行查詢絕不會寫入你的表格。
識別碼遵循標準 SQL 的大小寫規則:未加引號的名稱以不分大小寫比對
(WHERE PLATFORM 會找到 platform);用引號或反引號包住名稱以進行精確大小寫
比對。
預覽查詢成本
當有查詢計畫可用時,預覽會指出這是 Scan 還是 Query 以及使用的索引;RCU 估計值
只在表格中繼資料支援時才會出現。
這個狀態列出現在 Workbench 與 PartiQL 中,而不是視覺化的篩選列。空白的 SQL、編譯 失敗、DML,或無法解析的 PartiQL 都沒有查詢計畫,因此不會出現成本列。
一般的分割區 Query 會顯示「成本取決於符合的項目」而沒有 RCU。點讀取與已知大小的
Scan 在缺少支援的 DescribeTable 中繼資料時,同樣不會產生 RCU。
點讀取仍會顯示「≈1 個項目」。帶有項目數量的 Scan 可以顯示表格層級的估計值,但
計算它的 RCU 需要以位元組為單位的表格大小。兩個數值都缺少時,Scan 會顯示
「大小未知」。
Scan 的估計使用 DynamoDB 定期重新整理的表格數字,而非即時值。點讀取分支以強一致性
定價;Scan 分支則以最終一致性定價。
Workbench 與 PartiQL 執行的都是最終一致性讀取。因此點讀取的估計值可能是該請求實際 成本的兩倍。請把每個數字都當成執行前的提示,而不是帳單。
執行、範本與歷史
- 執行 — 在編輯器中按 ⌘↩、按 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 是視覺化路徑 — 在畫布上繪製關聯,並像 一般表格那樣瀏覽關聯後的列。


