DynamoDB-인덱스

DynamoDB는 액세스를 개선하기 위해 기본 키 속성에 인덱스를 사용합니다. 애플리케이션 액세스 및 데이터 검색을 가속화하고 애플리케이션 지연을 줄여 더 나은 성능을 지원합니다.

2 차 색인

보조 인덱스에는 속성 하위 집합과 대체 키가 있습니다. 인덱스를 대상으로하는 쿼리 또는 스캔 작업을 통해 사용합니다.

그 내용에는 투영하거나 복사하는 속성이 포함됩니다. 생성시 색인에 대한 대체 키와 색인에 투영 할 속성을 정의합니다. 그런 다음 DynamoDB는 테이블에서 가져온 기본 키 속성을 포함하여 속성을 인덱스에 복사합니다. 이러한 작업을 수행 한 후에는 테이블에서 수행하는 것처럼 쿼리 / 스캔을 사용하면됩니다.

DynamoDB는 모든 보조 인덱스를 자동으로 유지합니다. 추가 또는 삭제와 같은 항목 작업에서 대상 테이블의 모든 인덱스를 업데이트합니다.

DynamoDB는 두 가지 유형의 보조 인덱스를 제공합니다.

  • Global Secondary Index−이 인덱스에는 파티션 키와 정렬 키가 포함되며 소스 테이블과 다를 수 있습니다. 인덱스에 대한 쿼리 / 스캔 기능으로 인해 모든 테이블 데이터와 모든 파티션에 걸쳐 "글로벌"레이블을 사용합니다.

  • Local Secondary Index−이 인덱스는 테이블과 파티션 키를 공유하지만 다른 정렬 키를 사용합니다. "로컬"특성은 모든 파티션의 범위가 동일한 파티션 키 값을 가진 테이블 파티션으로 지정되기 때문에 발생합니다.

사용하기에 가장 좋은 인덱스 유형은 애플리케이션 요구 사항에 따라 다릅니다. 다음 표에 제시된 두 가지의 차이점을 고려하십시오.

품질 글로벌 2 차 지수 로컬 보조 인덱스
키 스키마 단순 또는 복합 기본 키를 사용합니다. 항상 복합 기본 키를 사용합니다.
주요 속성 인덱스 파티션 키와 정렬 키는 문자열, 숫자 또는 이진 테이블 속성으로 구성 될 수 있습니다. 인덱스의 파티션 키는 테이블 파티션 키와 공유되는 속성입니다. 정렬 키는 문자열, 숫자 또는 2 진 테이블 속성 일 수 있습니다.
파티션 키 값당 크기 제한 크기 제한이 없습니다. 파티션 키 값과 관련된 인덱싱 된 항목의 총 크기에 최대 10GB 제한이 적용됩니다.
온라인 인덱스 작업 테이블 생성시 생성하거나 기존 테이블에 추가하거나 기존 테이블을 삭제할 수 있습니다. 테이블 생성시 생성해야하지만 삭제하거나 기존 테이블에 추가 할 수 없습니다.
쿼리 전체 테이블과 모든 파티션을 포함하는 쿼리를 허용합니다. 쿼리에 제공된 파티션 키 값을 통해 단일 파티션을 처리합니다.
일관성 이러한 인덱스의 쿼리는 최종 일관성 옵션 만 제공합니다. 이러한 쿼리는 최종 일관성 또는 강력한 일관성 옵션을 제공합니다.
처리량 비용 여기에는 읽기 및 쓰기에 대한 처리량 설정이 포함됩니다. 쿼리 / 스캔은 테이블 쓰기 업데이트에도 적용되는 테이블이 아닌 인덱스의 용량을 사용합니다. 쿼리 / 스캔은 테이블 읽기 용량을 사용합니다. 테이블 쓰기는 로컬 인덱스를 업데이트하고 테이블 용량 단위를 사용합니다.
투사 쿼리 / 스캔은 테이블 속성을 검색하지 않고 인덱스에 프로젝션 된 속성 만 요청할 수 있습니다. 쿼리 / 스캔은 예상되지 않은 속성을 요청할 수 있습니다. 또한 자동 가져 오기가 발생합니다.

보조 인덱스가있는 여러 테이블을 생성 할 때는 순차적으로 수행하십시오. 즉, 테이블을 만들고 다른 테이블을 만들기 전에 ACTIVE 상태가 될 때까지 기다렸다가 다시 기다립니다. DynamoDB는 동시 생성을 허용하지 않습니다.

각 보조 인덱스에는 특정 사양이 필요합니다.

  • Type − 로컬 또는 글로벌을 지정합니다.

  • Name − 테이블과 동일한 명명 규칙을 사용합니다.

  • Key Schema − 최상위 문자열, 숫자 또는 이진 유형 만 허용되며 인덱스 유형은 다른 요구 사항을 결정합니다.

  • Attributes for Projection − DynamoDB는이를 자동으로 프로젝션하고 모든 데이터 유형을 허용합니다.

  • Throughput − 글로벌 보조 인덱스에 대한 읽기 / 쓰기 용량을 지정합니다.

인덱스 제한은 테이블 당 5 개의 글로벌 및 5 개의 로컬로 유지됩니다.

인덱스에 대한 자세한 정보에 액세스 할 수 있습니다. DescribeTable. 이름, 크기 및 항목 수를 반환합니다.

Note −이 값은 6 시간마다 업데이트됩니다.

인덱스 데이터에 액세스하는 데 사용되는 쿼리 또는 스캔에서 테이블 및 인덱스 이름, 원하는 결과 속성 및 조건문을 제공합니다. DynamoDB는 결과를 오름차순 또는 내림차순으로 반환하는 옵션을 제공합니다.

Note − 테이블을 삭제하면 모든 인덱스도 삭제됩니다.