필터 & 쿼리 패턴
모든 테이블 탭은 필터를 지닙니다. DynoTable이 DynamoDB 요청으로 바꾸는 조건자
상태입니다. 각 요소가 query 대 scan으로 어떻게 매핑되는지 익히는 것이 앱을
빠르게, 그리고 청구서를 작게 만드는 핵심입니다.
이 페이지는 비주얼 탭 모드를 다룹니다. SQL 스타일 쿼리를 직접 작성하려면 PartiQL로 전환하세요. 조인과 집계는 Workbench를 여세요.
필터 행
비주얼 모드는 칩 한 줄을 가로로 보여줍니다:
[Index] [hashKey = value] [rangeKey op value] [+ filter] | [Clear] [Query/Scan]- 인덱스 칩 — 읽기에 사용하는 쿼리 패턴.
- 키 칩 — 그 패턴의 파티션(해시) 키와, 있는 경우 정렬(레인지) 키.
- 필터 칩 — 키가 아닌 추가 조건(스캔 필터).
- 액션 버튼은 설정한 내용에 따라 Query 또는 Scan으로 표시되며, 결과가 스트리밍되기 시작하면 Load more로 바뀝니다.
값을 설정하면 DynoTable이 자동으로 실행합니다. 칩을 지우거나 수정하면 필터가 다시 유효해지는 즉시 재실행됩니다.

쿼리 패턴
쿼리 패턴은 읽기에 사용하는 인덱스입니다:
PRIMARY— 테이블 자체의 / .- 이름이 지정된 또는 — 자체 키 스키마.
선택한 패턴이 어떤 키로 필터링할 수 있는지를 결정합니다. 인덱스 칩에서 패턴을 전환하면 키 칩이 그 패턴의 파티션 키와 정렬 키로 갱신됩니다.
Query 대 scan
이것이 비용과 속도에 중요한 구분입니다:
- 필터를 설정하면 DynoTable이 표적 를 실행합니다 — 일치하는 파티션만 읽습니다. 저렴하고 빠릅니다.
- 설정하지 않으면 으로 되돌아가며, 테이블(또는 인덱스) 전체를 페이지 단위로 읽습니다. 액션 버튼이 Scan으로 표시되어 이를 명시합니다.
키 필터
파티션 키 칩은 값을 받으며, 값이 설정되는 순간 액션이 Query로 바뀝니다. 정렬 키 칩은 그 위에 비교를 더합니다:
=,<,<=,>,>=— 순서 비교(숫자, 그리고 문자열은 사전순).begins_with— 문자열이나 바이너리에 대한 접두사 일치.between— 양 끝을 포함하는 범위. 칩에 두 번째 값 입력란이 늘어납니다.
문자열 타입 키는 자동 완성을 제공합니다: DynoTable이 백그라운드에서 테이블을 인덱싱하면서 이미 본 실제 값을 제안합니다. 유용한 제안이 없는 키(무작위 UUID 등)는 일반 입력란으로 되돌아갑니다.
스캔 필터
+ filter 칩은 키가 아닌 조건을 더합니다 — 키뿐 아니라 모든 속성에 대해서요. 각 필터는 열, 연산자, 값으로 이루어집니다:
- 비교:
=,≠,<,<=,>,>=,between. - 멤버십:
in— 목록의 아무 값과 일치(문자열 또는 숫자). - 문자열 / 바이너리:
begins_with,contains. - 존재 여부:
exists,not exists. - 타입:
type equals/type not equals(DynamoDB 타입 코드 —S,N,BOOL, …에 대해), 그리고 컬렉션 타입을 위한size계열.
제공되는 연산자는 속성의 타입에 맞춰 달라집니다 — 순서 비교는 숫자에, begins_with는
문자열에 나타납니다. 스캔 필터는 쿼리나 스캔이 항목을 읽은 뒤에 적용되므로,
결과를 좁히되 스캔을 더 저렴하게 만들지는 않습니다. 읽기를 줄이려면 키 필터를,
돌아오는 결과를 다듬으려면 스캔 필터를 쓰세요.
싱글 테이블 디자인: 복합 키
싱글 테이블 디자인은 여러 엔터티 타입을 키 접두사 뒤에 묶어 하나의 테이블에
담습니다 — USER#123, ORDER#456, TENANT#acme. DynoTable은 설정할 것 없이 이를
스스로 인식합니다:
- 키가 제자리에서 디코딩됩니다. 복합 값 — 대문자 접두사가 나머지와
#,|, 또는~로 이어진 것 — 은 모든 그리드에서 라벨이 붙은 부분으로 렌더링됩니다: 테이블, PartiQL 결과, 그리고 Workbench. 단지 그런 문자 중 하나를 포함할 뿐인 평범한 값(#FF5733같은 16진 색상, 파이프로 구분된 목록)은 그대로 둡니다. - 원클릭으로 엔터티에 필터링. 행을 우클릭하고 **Filter to
USER#**를 고르세요 — 접두사는 그 행의 키에서 바로 읽힙니다. DynoTable은 키에 실제begins_with를 평범한 필터 칩으로 적용하며, 평소처럼(칩의 ✕, 또는 Clear) 지웁니다. 행의 파티션 키 와 정렬 키가 모두 접두사를 가지면, 각각에 대해 하나씩 선택지가 생깁니다.
대화 상자도, 설정도 없고, 저장되는 것도 없습니다 — 눈앞의 키에서 실시간으로 도출됩니다.

정렬과 페이징
정렬 키 칩은 DynamoDB의 ScanIndexForward에 매핑되는 정렬 순서 토글(오름차순 /
내림차순)을 지닙니다. 결과는 한 번에 한 페이지씩 스트리밍됩니다 — Load more가
다음 페이지를 가져오고, 페이지 크기를 바꾸면 첫 페이지부터
다시 불러옵니다.
Run to end
기본적으로 쿼리나 스캔은 큰 테이블이 한꺼번에 로드되지 않도록 몇 페이지 뒤 일시정지합니다 — 액션 버튼에 다음 페이지를 가져오는 Load more가 표시됩니다. 한 번에 전부 끌어오고 싶을 때는 실행 모드를 전환하세요:
- 액션 버튼 옆의 셰브론을 클릭하고 Run to end를 고르세요. 기본 버튼이 Scan all / Query all / Run all로 다시 라벨링됩니다 — 페이지 예산에서 일시정지된 상태에서도 그렇고, 거기서 클릭하면 끝까지 소진합니다.
- 다시 라벨링된 버튼을 클릭하면 DynoTable이 테이블(또는 인덱스) 전체를 읽을 때까지 페이지를 계속 가져옵니다. 이 선택은 세션 동안 탭별로 기억됩니다. 되돌리려면 Paged를 고르세요. 모드를 고르는 것만으로는 실행이 시작되지 않습니다 — 버튼만 다시 라벨링할 뿐이므로, 언제 발사할지는 사용자가 결정합니다.
큰 테이블에서는 Run to end를 장전하면 먼저 테이블의 대략적인 크기와 항목 수가 담긴 확인 프롬프트가 표시되어, 전체 스캔이 우연이 아니라 항상 의도된 선택이 되게 합니다. 진행하려면 확인하고, 페이징 상태를 유지하려면 취소하세요.

키보드에서는:
- ⌘↩는 현재 쿼리를 실행합니다 — 그리고 결과가 페이지 예산에서 일시정지된 상태라면 처음부터 다시 시작하는 대신 다음 페이지로 계속합니다.
- ⌘⇧↩는 항상 단번에 끝까지 실행합니다.
- ⌘. 또는 Esc는 진행 중인 실행을 언제든 멈춥니다.








