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

쿼리 패턴
쿼리 패턴은 읽어 들일 인덱스입니다.
PRIMARY— 테이블 자체의 / .- 이름이 붙은 또는 — 각자의 키 schema.
선택한 패턴이 어떤 키로 필터링할 수 있는지를 결정합니다. 인덱스 필에서 패턴을 바꾸면 키 필이 그 패턴의 파티션 키와 정렬 키로 갱신됩니다.
Query vs scan
비용과 속도를 가르는 구분은 이것입니다.
- 필터를 설정하면 DynoTable은 정밀한 를 발행합니다 — 일치하는 파티션만 읽습니다. 저렴하고 빠릅니다.
- 그것이 없으면 으로 넘어가 테이블(또는 인덱스) 전체를 페이지 단위로 읽습니다. 액션 버튼이 Scan으로 표시되어 이를 분명히 알려 줍니다.
키 필터
파티션 키 필은 값을 받으며, 값이 설정되는 순간 액션이 Query로 바뀝니다. 정렬 키 필은 그 위에 비교를 얹습니다.
=,<,<=,>,>=— 순서 비교(숫자, 그리고 문자열의 사전식 순서).begins_with— 문자열 또는 이진 값의 접두사 일치.between— 양끝을 포함하는 범위. 필에 두 번째 값 입력란이 생깁니다.
문자열 타입 키는 로컬 인덱스의 값에서 자동 완성을 제공합니다. 인덱스가 어떻게 만들어지고 무엇을 포함하는지는 테이블 통계를 참고하세요. 쓸 만한 제안이 없는 키(예를 들어 무작위 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는 진행 중인 실행을 언제든 중지합니다.








