SQL Workbench
Workbench는 DynamoDB 테이블 전반에 실제 JOIN, GROUP BY, 집계 쿼리를
실행하는 SQL 작성 탭입니다 — PartiQL이 못 하는 것들이죠.
DynamoDB의 접근 패턴 규칙 안의 SQL입니다: 단일 SELECT를 작성하면, 컴파일러가
모든 조인이 실제 키나 인덱스를 통해 읽는지 확인하고, 조인된 행을 구체화한 뒤, 그
위에 전체 SQL을 실행합니다.
사이드바 우클릭 메뉴(New Workbench), ⌘⌥B 단축키, 또는 File → New 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의 to-side 속성은 대상 테이블의 파티션 키나 GSI 파티션
키여야 하므로, 모든 조회가 행마다 숨겨진 전체 테이블 스캔이 아니라 실제 쿼리가
됩니다.
조인이 키가 아닌 속성을 가리키면, 편집기가 밑줄을 긋고 이유를 설명합니다. 컴파일러가 정확한 물결선과 함께 미리 거부하는 다른 구문들:
RIGHT/FULL OUTER/CROSS조인과 콤마 조인(INNER/LEFT만).- 서브쿼리, CTE(
WITH),UNION/INTERSECT/EXCEPT. - 윈도우 함수(
OVER), 다중 문,SELECT가 아닌 모든 것.
읽기 전용
Workbench는 항상 읽기 전용입니다. 편집, 스테이징, 일괄 삭제가 없습니다 — 분석 화면입니다. 쿼리를 실행해도 테이블에 절대 쓰지 않습니다.
식별자는 표준 SQL 대소문자 규칙을 따릅니다: 따옴표 없는 이름은 대소문자를
구분하지 않고 매치되고(WHERE PLATFORM이 platform을 찾음), 정확한 대소문자
매칭을 위해서는 이름을 따옴표나 백틱으로 감싸세요.
실행, 템플릿, 기록
- 실행 — 편집기에서 ⌘↩, Run 버튼, 또는 다시 실행하려면 ⌘R. Workbench 탭은 열릴 때 자동 실행하지 않습니다. 실행은 항상 의도적입니다.
- 끝까지 실행 — ⌘⇧↩, 또는 Run 버튼의 분할 메뉴에서 골라, 한 페이지가 아니라 조인된 결과 전체를 스트리밍합니다. 페이지 상한이 풀리고 쿼리가 소진될 때까지 페이지가 계속 도착합니다. Stop이 유일한 제동 장치입니다. 한 번에 완성하고 싶은 큰 집계에 유용합니다.
- 템플릿 & 저장된 쿼리 — Queries 메뉴에는 시작 템플릿(전체 선택, 키로 필터링, 그룹별 개수, Tab으로 옮겨 다니는 구멍이 있는)과 함께 Save로 보관한 모든 쿼리가 들어 있습니다 — 어느 테이블에서나 재사용할 수 있는 사용자만의 이름 붙인 쿼리입니다. 하나를 고르면 편집기 내용이 그대로 대체되므로, 저장한 그대로 실행됩니다.
- 기록 — 모든 실행이 저장되고(PartiQL의 기록과 분리) 검색 가능하며 복원할 수 있습니다 — 실패한 실행도 포함되므로 고쳐서 다시 시도할 수 있습니다.
Workbench 탭은 저장된 스펙입니다 — 이름을 붙이고, ⌘K에서 다시 열며, 새로 고침을 이겨 냅니다. 조인된 결과를 내보낼 수도 있습니다.
Workbench vs 스마트 테이블
둘 다 같은 조인 엔진을 실행합니다. 같은 것을 작성하는 두 가지 방식입니다:
- Workbench는 SQL 경로 — 쿼리를 입력하면 집계와 해석된 속성을 얻습니다.
- **스마트 테이블은 비주얼 경로** — 캔버스에 조인을 그리고 조인된 행을 일반 테이블처럼 탐색합니다.


