DynamoDB의 일부 테이블 쿼리에 글로벌 보조 인덱스 쓰기 샤딩 사용
애플리케이션에서는 자주 특정 조건을 충족하는 Amazon DynamoDB 테이블 항목에 있는 작은 하위 집합을 파악해야 합니다. 이들 항목이 여러 테이블 파티션 키에 임으로 배포되는 경우, 테이블 스캔으로 이를 검색해야 합니다. 많은 비용이 발생할 수 있는 옵션이지만, 테이블에 이런 검색 조건을 충족하는 항목의 수가 많을 때 효과적입니다. 하지만 키 공간이 크고 검색 조건이 아주 선택적인 경우, 이런 전략은 불필요한 처리를 많이 발생시킬 수 있습니다.
더 나은 해결책은 데이터를 쿼리하는 것입니다. 전체 키 공간에서 선택적 쿼리를 활성화하기 위해, 글로벌 보조 인덱스 파티션 키에 대해 사용할 모든 항목에 (0-N)
값이 포함된 속성을 추가해 쓰기 샤딩을 사용할 수 있습니다.
다음은 심각한 이벤트(Critical-Event) 워크플로우에 이를 사용하는 스키마에 대한 예입니다.
이 스키마 설계를 사용하여 이벤트 항목을 GSI의 0-N
파티션으로 배포하면, 복합 키에 정렬 조건을 사용하는 산점(Scatter) 읽기로 지정한 기간 동안 특정 상태를 갖고 있는 모든 항목을 검색할 수 있습니다.
이 스키마 패턴은 테이블 스캔 없이 최소한의 비용으로 아주 선택적인 결과 세트를 전달합니다.