DynamoDB 페이지 매김: 개요, 사용 사례 및 예

Dynamodb Peiji Maegim Gaeyo Sayong Salye Mich Ye



방대한 양의 데이터를 관리하는 것은 주로 쿼리 또는 스캔 결과가 여러 페이지로 실행되는 경우 데이터 관리자에게 어려운 작업이 될 수 있습니다. DynamoDB의 페이지 매김은 데이터베이스가 결과를 관리 가능한 여러 페이지로 나누어 대량의 데이터를 처리할 수 있도록 합니다. 이 글에서는 DynamoDB 페이지 매김에 대해 설명하고 다양한 사용 사례와 예제를 제공합니다. 또한 DynamoDB의 페이지 매김이 다른 데이터베이스의 페이지 매김과 어떻게 다른지 강조합니다.

DynamoDB에서 페이지 매김이란 무엇입니까?

일반적으로 페이지라는 단어에서 파생된 페이지 매김은 데이터 레코드를 여러 청크, 세그먼트 또는 페이지로 분할하기 위해 데이터베이스에서 사용하는 기술입니다. 또한 AWS DynamoDB는 대량의 데이터 저장을 지원하므로 안정적인 페이지 매김 기능을 제공합니다.







DynamoDB 페이지 매김 구성 요소는 스캔 또는 쿼리당 최대 1GB의 데이터만 검색할 수 있도록 합니다. 이것이 기본 설정이지만 쿼리에 제한 매개변수를 추가하여 제한을 지정할 수 있습니다. 각 검색 쿼리의 레코드 수에 대한 제한을 추가로 설정할 수 있습니다.



특히 DynamoDB의 페이지 매김과 일반적인 SQL 데이터베이스의 페이지 매김 사이에는 몇 가지 차이점이 있습니다. 가장 확실한 것은 DynamoDB에서 검색되는 페이지가 매겨진 각 레코드에는 직접적인 비용이 따르기 때문에 DynamoDB에서 페이지를 매길 때 기록되지 않은 규칙이 됩니다. 이 기능은 페이지 매김을 검색된 레코드와 직접 비용을 모두 제한하는 중요한 요소로 만듭니다.



DynamoDB에서 페이지 매김을 사용하는 방법





1. 쿼리 작업 중 페이지 매김

DynamoDB에서 쿼리는 최대 1MB의 결과만 반환합니다. 그러나 결과를 면밀히 조사하여 더 많은 결과가 있는지 효과적으로 확인할 수 있습니다. 특히 하위 수준 쿼리 작업 결과에는 검색해야 하는 쿼리와 관련된 항목이 더 있음을 나타내는 null이 아닌 LastEvaluatedKey 요소가 포함되어 있습니다.

null이 아닌 LastEvaluatedKey 요소가 없는 결과는 쿼리와 일치하는 모든 항목이 1MB 제한 내에 있고 더 이상 검색할 항목이 없음을 의미합니다. 물론 결과당 항목 수에 대한 제한을 설정할 수도 있습니다. 다음 샘플 명령을 참조하십시오.



AWS dynamodb 쿼리 \

--테이블 이름 MyTableName \

--키 조건식 '파티션키 = :pk \

--expression-attribute-values ​​'{'
:pk ':{' 에스 ':' a1234b '}},

--제한 10 \

이전 명령을 사용하여 키 조건 표현식 값이 동일한 항목에 대해 테이블을 쿼리할 수 있습니다. Darry Tech의 order_Ids에 대해 'Orders' 테이블을 검색해 보겠습니다. 또한 페이지당 항목 수를 10개로 제한했습니다. –limit 매개변수의 또 다른 옵션은 같은 목적으로 –page-size 매개변수를 사용하는 것입니다.

페이지 매김은 데이터가 1MB 미만인 항목에 대한 AWS CLI의 자동 작업입니다. 특정 주문에서 쿼리를 시작하려는 경우 명령에 독점 시작 키를 추가할 수 있습니다.

응답은 다음과 같습니다.

제공된 결과는 첫 페이지에 10 Darry Tech를 표시합니다. LastEvaluatedKey 값을 사용하여 검색의 표현식 키 값과 일치하는 추가 주문을 가져와 새 쿼리를 구성할 수 있습니다. 새 쿼리 요청에는 ExclusiveStartKey 매개 변수의 LastEvaluatedKey 값이 포함됩니다.

구문의 예는 다음과 같습니다.

AWS dynamodb 쿼리 \

--table-name 예표 \

--키 조건식 '파티션키 = :pk \

--expression-attribute-values ​​'{'
:pk ':{' 에스 ': 대리 테크 ' \

--제한 10 \

--독점-시작-키 '{'
파티션키 ':{' 에스 ': 대리 테크' }, '정렬키' :{ '에스' : '5356' }} '

이전 명령은 지정된 기본 키가 있는 주문 ID, 즉 {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”:로 시작하여 다음 페이지에서 다음 상쇄 주문을 생성합니다. ”5356-sy”}}.

2. 스캔 작업 중 페이지 매김

스캔 작업에 페이지 매김을 사용할 수도 있습니다. 모든 것이 쿼리 명령과 동일한 방식으로 작동합니다. 그러나 filter-expression 특성을 사용해야 합니다. 명령은 여기에 있는 것과 같습니다.

AWS dynamodb 스캔 \

--테이블 이름 MyTable \

--필터 표현식 '속성 이름 = :value' \

--expression-attribute-values '{':값':{'S':'ABC123'}}' \

--한계 이십 \

--독점 시작 키 '{'PartitionKey':{'S':'ABC123'},'정렬키':{'S':'XYZ987'}}'

이전 명령은 기본 키가 {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}인 항목부터 시작하여 MyTable 테이블에서 페이지당 최대 20개의 항목을 폐기합니다. AttributeName 속성에 'ABC123' 값이 있는 항목만 포함하도록 결과를 필터링합니다.

응답에서, 마지막 평가된 키 필드는 결과 집합의 마지막 항목에 대한 기본 키를 포함합니다. 이 값을 다음과 같이 사용할 수 있습니다. 독점 시작 키 다음에 주사 결과의 다음 페이지를 검색하는 작업입니다.

결론

DynamoDB의 페이지 매김은 데이터의 관리 용이성을 향상시킵니다. 그러나 시스템에 페이지 매김이 도움이 되는지 여부를 아는 것이 중요합니다. 애플리케이션에 긴 항목 목록이 있는 경우 페이지 매김을 사용해야 합니다. 제공된 그림은 AWS CLI 호출에 초점을 맞추고 있지만 Python의 Boto3 또는 원하는 SDK와 같은 AWS SDK에서 페이지 매김을 사용할 수도 있습니다.