PartiQL
PartiQL은 DynamoDB의 SQL 호환 쿼리 언어입니다. 아무 테이블 탭을 PartiQL
모드(⌘⇧M)로 전환해 필터 칩을 클릭하는 대신 SELECT,
INSERT, UPDATE, DELETE 문을 직접 작성하세요.
탭을 PartiQL 모드로 전환하면 기본 SELECT * FROM "table" 스캔이 자동 실행됩니다 —
비주얼 뷰에서 테이블을 여는 것과 직접적으로 동등합니다. 문을
수정하고 나면, 실행은 사용자에게 달려 있습니다: ⌘↩를 눌러 실행하세요.
결과가 스트리밍되며, Load more가 다음 페이지를 가져옵니다.
SELECT * FROM "my-table" WHERE pk = 'USER#42' AND begins_with(sk, 'ORDER#')
PartiQL은 SQL이 아닙니다
DynamoDB의 PartiQL은 의도적인 부분집합입니다. 편집기는 입력하는 동안 쿼리를 린트해 DynamoDB가 실행하지 않을 구문을 표시합니다 — 보통 원클릭 빠른 수정과 함께요. 흔한 함정들:
IN은 대괄호를 쓰며, 소괄호가 아닙니다 —('a', 'b')이 아니라WHERE id IN ['a', 'b']. 빠른 수정이 다시 써 줍니다. 린터는 리스트가 DynamoDB의 제한(파티션 키 열은 50개, 키가 아닌 열은 100개)을 넘어서면 서버가 거부하기 전에 경고도 합니다.LIMIT절 없음 — 페이지 크기는 SQL이 아니라 탭 컨트롤입니다. Load more를 사용하세요.JOIN,GROUP BY,HAVING, 집계, 서브쿼리,UNION, CTE 없음. 그런 것은 Workbench 탭을 여세요 — 린터가 거기로 안내합니다.LIKE→ 함수 —LIKE '%foo%'는contains(col, 'foo'),'foo%'는begins_with(col, 'foo')가 됩니다. 빠른 수정 제공.IS NULL/IS NOT NULL→attribute_not_exists(col)/attribute_exists(col). 빠른 수정 제공(역방향 매핑에 유의).- 작은따옴표 문자열 리터럴 —
"value"가 아니라'value'. 큰따옴표는 식별자를 뜻합니다.
Run 버튼 옆의 format-help 팝오버가 필요할 때마다 이를 인라인으로 나열합니다.
템플릿 & 저장된 쿼리
Queries 메뉴는 활성 테이블의 실제 키와 샘플링된 값에 맞춰 해석된, 바로 쓸 수
있는 문을 편집기에 떨어뜨립니다 — 그래서 SELECT 템플릿이 플레이스홀더가 아니라
이미 사용자의 파티션 키를 참조한 채 도착합니다. 강조된 구멍을 Tab으로 옮겨 다니며
나머지를 채우세요.
재사용할 문은 Save 버튼으로 보관하세요 — 저장된 쿼리는 템플릿과 같은 메뉴에 나란히 들어 있어, 어느 테이블에서나 바로 실행할 수 있습니다. Workbench와 PartiQL은 서로 다른 쿼리 언어를 쓰므로 각자 별도의 라이브러리를 유지합니다.
쓰기 템플릿
INSERT / UPDATE / DELETE 템플릿은 일부러 합성된 DEMO-* 키를 사용하므로,
하나를 바로 실행해도 실제 행을 실수로 변경하지 않습니다. 순서대로 실행하도록
설계되어 있으며 — 같은 데모 항목을 삽입하고, 수정하고, 삭제 — 키를 편집해 실제
데이터를 대상으로 삼습니다.
기록
실행된 모든 쿼리는 모드별 history에 저장됩니다(Workbench의 것과 분리). history 메뉴를 다시 열어 이전 문을 편집기에 복원하세요 — 실패한 실행도 포함되므로 고쳐서 다시 시도할 수 있습니다.


