Amazon Keyspace의 행 다루기 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Keyspace의 행 다루기

이 섹션에서는 Amazon Keyspaces (Apache Cassandra용) 에서 행을 사용하여 Amazon Keyspaces (Apache Cassandra용) 에서 행을 사용하는 방법에 대해 자세히 설명합니다. 테이블은 Amazon Keyspace의 기본 데이터 구조이며 테이블의 데이터는 열과 행으로 구성됩니다.

Amazon Keyspace에서의 행 크기 계산

Amazon Keyspaces는 10밀리초의 읽기 및 쓰기 성능을 제공하고 여러 곳에 데이터를 안정적으로 저장하는 완전관리형 스토리지를 제공합니다.AWS가용 영역. Amazon Keyspace는 모든 행과 기본 키 열에 메타데이터를 연결하여 효율적인 데이터 액세스와 고가용성을 지원합니다.

이 섹션에서는 Amazon Keyspace의 인코딩된 행 크기를 추정하는 방법에 대한 세부 정보를 제공합니다. 인코딩된 행 크기는 청구서 및 할당량 사용량을 계산할 때 사용됩니다. 또한 테이블의 프로비저닝된 처리 용량 요구 사항을 계산할 때는 인코딩된 행 크기를 사용해야 합니다. Amazon Keyspace의 인코딩된 행 크기를 계산하려면 다음 지침을 사용할 수 있습니다.

  • 기본 키가 아닌 일반 열의 경우, 클러스터링 열 또는STATIC열의 경우 데이터 유형에 따라 셀 데이터의 원시 크기를 사용하고 필요한 메타데이터를 추가합니다. Amazon Keyspaces 에서 지원되는 데이터 유형에 대한 자세한 내용은 다음을 참조하십시오.데이터 유형. Amazon Keyspace가 데이터 유형 값과 메타데이터를 저장하는 방식의 몇 가지 주요 차이점은 다음과 같습니다.

  • 각 열 이름에 필요한 공간은 열 식별자를 사용하여 저장되고 열에 저장된 각 데이터 값에 추가됩니다. 열 식별자의 스토리지 값은 테이블의 전체 열 수에 따라 달라집니다.

    • 1—62개 열: 1바이트

    • 63—124개 열: 2바이트

    • 125—186개 열: 3바이트

    62개 열을 추가할 때마다 1바이트를 추가합니다. Amazon Keyspace에서는 한 번에 최대 225개의 일반 열을 수정할 수 있다는 점에 유의하십시오.INSERT또는UPDATE성명서. 자세한 정보는 아마존 키스페이스 서비스 할당량을 참조하세요.

  • 파티션 키에는 최대 2048바이트의 데이터를 포함할 수 있습니다. 파티션 키의 각 키 열에는 최대 3바이트의 메타데이터가 필요합니다. 행 크기를 계산할 때는 각 파티션 키 열이 전체 3바이트의 메타데이터를 사용한다고 가정해야 합니다.

  • 클러스터링 열은 최대 850바이트의 데이터를 저장할 수 있습니다. 데이터 값의 크기 외에도 각 클러스터링 열에는 메타데이터에 대한 데이터 값 크기의 최대 20% 가 필요합니다. 행 크기를 계산할 때는 클러스터링 열 데이터 값 5바이트당 메타데이터 1바이트를 추가해야 합니다.

  • Amazon Keyspaces는 각 파티션 키와 클러스터링 키 열의 데이터 값을 두 번 저장합니다. 추가 오버헤드는 효율적인 쿼리와 내장된 인덱싱에 사용됩니다.

  • 카산드라ASCII,TEXT, 그리고VARCHAR문자열 데이터 유형은 모두 UTF-8 Keyspaces () 에서 저장됩니다. Amazon Keyspace의 문자열 크기는 UTF-8 인코딩된 바이트 수와 같습니다.

  • 카산드라INT,BIGINT,SMALLINT, 그리고TINYINT데이터 유형은 Amazon Keyspace에 가변 길이 (유효 자릿수 최대 38자리) 의 데이터 값으로 저장됩니다. 앞과 끝의 0은 잘립니다. 이러한 데이터 유형의 크기는 유효 숫자 2자리당 약 1바이트+1바이트입니다.

  • ABLOBAmazon에서 Keyspace는 값의 원시 바이트 길이와 함께 저장됩니다.

  • a의 크기Null값 또는 aBoolean값은 1바이트입니다.

  • 다음과 같은 컬렉션 데이터 유형을 저장하는 열LIST또는MAP내용에 관계없이 3바이트의 메타데이터가 필요합니다. a의 크기LIST또는MAPis (열 ID) + 합계 (중첩된 요소의 크기) + (3바이트) 빈 칸의 크기LIST또는MAP는 (열 ID) + (3바이트) 입니다. 각 개인LIST또는MAP요소에는 1바이트의 메타데이터도 필요합니다.

  • STATIC열 데이터는 최대 행 크기인 1MB에 포함되지 않습니다. 정적 열의 데이터 크기를 계산하려면 을 참조하십시오.Amazon 키스페이스의 논리적 파티션당 정적 열 크기 계산.

  • 기능이 켜져 있을 때 각 행의 모든 열에 대해 클라이언트측 타임스탬프가 저장됩니다. 이러한 타임스탬프는 데이터에 따라 약 20~40바이트를 차지하며 행의 스토리지 및 처리량 비용에 영향을 줍니다. 자세한 정보는 Amazon 키스페이스에서 클라이언트측 타임스탬프가 작동하는 방식을 참조하세요.

  • 행 메타데이터의 경우 각 행 크기에 100바이트를 추가합니다.

인코딩된 데이터 행의 총 크기는 다음 공식을 기반으로 합니다.

partition key columns + clustering columns + regular columns + row metadata = total encoded size of row
중요

모든 열 메타데이터 (예: 열 ID, 파티션 키 메타데이터, 클러스터링 열 메타데이터, 클라이언트 측 타임스탬프 및 행 메타데이터) 는 최대 행 크기인 1MB에 포함됩니다.

모든 열의 유형이 정수인 다음 테이블을 예로 들어 보겠습니다. 테이블에는 파티션 키 열 2개, 클러스터링 열 2개, 일반 열 1개가 있습니다. 이 테이블에는 5개의 열이 있으므로 열 이름 식별자에 필요한 공간은 1바이트입니다.

CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, primary key((pk_col1, pk_col2),ck_col1, ck_col2));

이 예제에서는 다음 명령문과 같이 테이블에 행을 쓸 때의 데이터 크기를 계산합니다.

INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);

이 쓰기 작업에 필요한 총 바이트를 추정하려면 다음 단계를 사용하면 됩니다.

  1. 열에 저장된 데이터 유형의 바이트와 메타데이터 바이트를 더하여 파티션 키 열의 크기를 계산합니다. 모든 파티션 키 열에 대해 이 과정을 반복합니다.

    1. 파티션 키 (pk_col1) 의 첫 번째 열 크기를 계산합니다.

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    2. 파티션 키 (pk_col2) 의 두 번째 열 크기를 계산합니다.

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    3. 두 열을 모두 더하여 파티션 키 열의 총 예상 크기를 구합니다.

      8 bytes + 8 bytes = 16 bytes for the partition key columns
  2. 열에 저장된 데이터 유형의 바이트와 메타데이터 바이트를 더하여 클러스터링 열의 크기를 계산합니다. 모든 클러스터링 열에 대해 이 과정을 반복합니다.

    1. 클러스터링 열의 첫 번째 열 크기 (ck_col1) 를 계산합니다.

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    2. 클러스터링 열 (ck_col2) 의 두 번째 열 크기를 계산합니다.

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    3. 두 열을 모두 더하면 클러스터링 열의 총 예상 크기를 구할 수 있습니다.

      6 bytes + 6 bytes = 12 bytes for the clustering columns
  3. 일반 열의 크기를 더합니다. 이 예제에서는 한 자리 정수를 저장하는 열이 하나뿐이며, 이 경우 열 ID로 2바이트에 1바이트가 필요합니다.

  4. 마지막으로 인코딩된 행 크기를 구하려면 모든 열의 바이트를 더하고 행 메타데이터용으로 100바이트를 더 추가합니다.

    16 bytes for the partition key columns + 12 bytes for clustering columns + 3 bytes for the regular column + 100 bytes for row metadata = 131 bytes.

Amazon에서 서버리스 리소스를 모니터링하는 방법을 배우려면 CloudWatch, 참조아마존을 통한 아마존 키스페이스 모니터링 CloudWatch.