AWS CLI로 DynamoDB의 모든 항목 가져오기

DynamoDB에는 "전체 선택"이 없습니다 — 테이블 전체를 읽는다는 것은 페이지네이션되는 Scan을 의미합니다. 좋은 소식: AWS CLI는 자동 페이지네이션을 수행해, 뒤에서 필요한 만큼 1 MB 서비스 호출을 하고 하나의 결합된 결과를 출력합니다.

Code

aws dynamodb scan --table-name 'Music'

결합된 출력은 테이블의 모든 항목을 담습니다:

{
    "Items": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
    ],
    "Count": 1287,
    "ScannedCount": 1287
}

Explanation

  • 자동 페이지네이션 — SDK와 달리 CLI는 기본적으로 LastEvaluatedKey를 대신 따라갑니다: 명령 하나로 모든 항목. (--no-paginate는 이를 단일 서비스 호출 — 첫 약 1 MB만 — 로 제한합니다.)
  • 큰 테이블을 위한 청크 출력 — 전체 테이블이 출력 전에 메모리에 올라오므로, 큰 테이블은 조각으로 읽으세요: --max-items 1000은 1000개 항목과 NextToken을 출력합니다. --starting-token <token>으로 재개하세요. 청크 간 행 누락/중복을 피하려면 --page-size--max-items와 동일하게 유지하세요.
  • 바이트는 줄지만 청구액은 동일--projection-expression 'Artist, SongTitle'(예약어는 --expression-attribute-names와 함께)은 해당 속성만 반환하지만, 스캔은 여전히 읽은 모든 항목의 모든 바이트를 청구합니다.
  • 큰 테이블에서 더 빠르게: 병렬 스캔--segment i --total-segments N으로 N개의 복사본을 실행하며, 각각 자신의 조각을 자동 페이지네이션합니다. 총비용은 동일하지만 실제 소요 시간은 훨씬 낮습니다.
  • 하는 김에 필터링도 하시나요? --filter-expression은 항목을 읽고(청구한) 이후에 걸러냅니다 — 필터를 사용한 Scan을 참고하세요. jq로 파이핑하시나요? --output json을 추가하고 값이 DynamoDB JSON임을 기억하세요.

Do it visually

테이블을 눈으로 훑어보는 데 DynamoDB JSON으로 가득 찬 터미널이 필요하지는 않습니다: DynoTable을 다운로드해 어떤 테이블이든 페이지네이션된 그리드에서 탐색하세요 — 스캔을 대신 페이지네이션합니다. 그리고 스캔하고 비용을 치르기 전에, DynamoDB 요금 계산기가 테이블 전체 읽기의 실제 비용을 보여줍니다.

References

Last verified 2026-07-13 against the official AWS documentation linked above.

이 요청을 시각적으로 만들기

무료 DynamoDB 쿼리 빌더에서 이 작업을 구성하세요 — 키 조건, 필터, 인덱스, Limit, 정렬 순서, 페이지네이션 루프 — 그리고 실행 가능한 SDK v3, CLI, boto3 프로그램으로 다시 복사하세요.

DynamoDB 쿼리 빌더 열기

Console 없이 DynamoDB 작업하기

DynoTable은 DynamoDB를 위한 빠른 데스크톱 클라이언트입니다 — 테이블을 탐색하고, SQL 스타일 쿼리를 실행하고, 항목을 로컬에서 편집하세요.