DynamoDB 스트림: TrimmedDataAccessException
TL;DR — DynamoDB Streams는 24시간 동안 기록을 보관합니다. 오래된 레코드는 잘려서 스트림에서 사라집니다. 이 예외는 귀하가 잘린 포지션(보통 다운되거나 뒤처진 소비자로부터 하루 이상 된 체크포인트)을 요청했다는 것을 의미합니다. 스트림에서 해당 레코드를 다시 가져올 수 없습니다. TRIM_HORIZON(가장 오래 살아남은 레코드)에서 재개하고 테이블 자체와의 간격을 조정합니다.
무엇을 의미하는가
TrimmedDataAccessException: The data you are trying to access has been trimmed._위치 핸들_만 오래 된 expired iterator와는 달리, 잘린 데이터는 실제로 제거됩니다. 잘린 SequenceNumber에서 샤드 반복자를 요청하거나 기록이 오래된 샤드를 읽으면 이 오류가 발생합니다. 스트림은 아카이브가 아닌 롤링 24시간 버퍼입니다.
왜 발생하는가
- 소비자는 정전, 일시 중지된 작업자, 잊혀진 비활성화된 트리거 등 24시간 이상 다운되었으며 이제 체크포인트가 잘린 영역을 가리킵니다.
- 처리 지연이 보존을 초과했습니다 — 소비자가 실행되지만 쓰기 속도보다 느리고 하루 이상 뒤쳐졌습니다.
- 오래 저장된 체크포인트 — 몇 주 전에 지속된
SequenceNumber로 이전 소비자를 다시 시작합니다. - 오래된 샤드를 엔드 투 엔드로 읽기 — 수명이 긴 스트림의 샤드 계보를 탐색하고 보존 이전 범위를 요청합니다.
어떻게 해결하는가
사용 가능한 가장 오래된 기록에서 재개하고 공백을 허용합니다.
const {ShardIterator} = await streams.send( new GetShardIteratorCommand({ StreamArn: streamArn, ShardId: shardId, ShardIteratorType: 'TRIM_HORIZON' // oldest untrimmed record }) );새로운 활동만 중요한 경우 대신
LATEST를 사용하세요.정보 소스에서 누락된 창을 조정 — 테이블에는 여전히 모든 항목의 현재 상태가 있습니다. 영향을 받은 키에 대한 제한된
Scan/Query(또는 큰 테이블의 경우 export)는 중간 버전을 제외하고 잘린 레코드에서 알려준 내용을 재구성합니다.소비자 지연에 대한 경고 — 처리 중인 레코드의 기간(또는 Lambda의
IteratorAge지표)을 모니터링하고 24시간이 되기 전에 페이지를 표시합니다.더 긴 보존이 필요합니까? 레코드가 도착하면 내구성 있는 버퍼로 스트리밍합니다(예: Kinesis 어댑터 패턴을 통한 Kinesis Data Streams 또는 처리된 레코드를 직접 유지) — DynamoDB 스트림 자체는 24시간 이상으로 연장할 수 없습니다.
복구 후 체크포인트를 재설정합니다. 소비자가 다시 시작할 때 이전 트림 위치를 재개하지 않도록
TRIM_HORIZON에서 새SequenceNumber를 유지합니다.
DynoTable에서
간격을 조정한 후 테이블에서 현재 항목 상태를 조정합니다. ⌘K로 테이블을 열고 소비자가 놓친 키를 찾아보거나 필터링합니다. DynoTable은 24시간 스트림 창과 관계없이 실시간 테이블 데이터를 표시합니다.
따라잡기 판독값의 크기를 pricing calculator로 지정합니다. 소비자를 다시 시작하기 전에 메타데이터 패널에서 테이블의 LatestStreamArn를 복사하세요. ⌘P로 프로필을 전환합니다. Connect to AWS 및 Install을 참조하세요.
출처
- GetRecords — Amazon DynamoDB Streams API Reference (2026-07-13 인증)
- Change data capture for DynamoDB Streams (2026-07-13 인증)
관련 오류
- ExpiredIteratorException — 복구 가능한 사촌: 위치가 오래되고 데이터가 아직 남아 있습니다.
- Stream not enabled
- Invalid StreamArn
- 학습: DynamoDB Streams
참고 자료
- GetRecords — Amazon DynamoDB Streams API Reference
- GetShardIterator — Amazon DynamoDB Streams API Reference
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.