지역 파티셔닝 개요

이 페이지에서는 Spanner에서 지역 파티셔닝이 작동하는 방식을 소개하고 설명합니다.

Spanner는 지리적 위치에 데이터를 복제할 수 있는 리전 및 멀티 리전 인스턴스 구성을 제공합니다. 지역 파티셔닝에서 추가 세분화를 통해 여러 인스턴스 구성의 데이터베이스 테이블에 행을 저장할 수 있습니다.

장점 및 사용 사례

지역 파티셔닝의 이점은 다음과 같습니다.

  • 데이터를 쿼리와 동일한 지리적 위치에 저장하여 쓰기 및 강력한 읽기 지연 시간을 줄입니다.

  • 비대칭 글로벌 워크로드의 비용을 최적화합니다(예: 노드 10개가 있는 us-central1 파티션과 노드 2개가 있는 asia-south1 파티션 사용).

일반적인 사용 사례는 다음과 같습니다.

  • 사용자 관련 데이터: 사용자 관련 데이터를 지역 파티셔닝하여 사용자와 가장 가까운 리전에서 데이터를 처리하고 저장합니다.

  • 현지화된 데이터: 트래픽, 특별 이벤트와 같은 위치별 정보입니다.

지역 파티셔닝 작동 방식

모든 Spanner 인스턴스에는 default 파티션이라는 기본 인스턴스 파티션이 있습니다. 파티션을 추가로 만들지 않으면 모든 데이터베이스 객체가 인스턴스 구성과 동일한 위치에 있는 기본 파티션에 저장됩니다.

데이터베이스에서 데이터를 파티셔닝하려면 인스턴스에 파티션을 추가로 만들어야 합니다. 이러한 사용자가 만든 파티션에는 자체 구성(리전 또는 멀티 리전) 및 노드 수가 있습니다. 평소와 같이 데이터베이스를 만듭니다. 데이터베이스는 동일한 인스턴스에서 생성된 파티션과 상호작용할 수 있습니다. 그런 다음 데이터베이스에서 파티션과 연결된 배치를 만듭니다. 마지막으로 배치 키 속성이 있는 배치 테이블을 만들 수 있습니다. DML 문에 배치 키를 사용하여 행 데이터가 있는 파티션을 지정해야 합니다. 데이터베이스에 배치가 아닌 테이블을 만들면 Spanner는 기본 파티션에 해당 데이터를 저장합니다.

파티션을 사용하는 방법에 관한 안내는 파티션 만들기 및 관리를 참조하세요.

중요 고려사항

파티션, 배치, 배치 테이블을 만들기 전에 다음 사항을 고려하세요.

  • 파티션 위치: 애플리케이션에 가장 많은 이점을 제공하는 파티션 리전을 신중하게 선택합니다.

    리전 인스턴스 구성으로 인스턴스에 파티션을 만들 수 있지만 기본 파티션 위치도 멀티 리전 구성에 있도록 멀티 리전 인스턴스 구성으로 인스턴스에 파티션을 만드는 것이 좋습니다.

    또한 애플리케이션에 필요한 모든 관할권을 포함하는 읽기-쓰기 및 읽기 전용 리전이 있는 멀티 리전 기본 파티션 위치를 선택합니다. 그런 다음 멀티 리전 기본 파티션의 리전과 일치하는 리더 리전이 있는 파티션(리전일 수 있음)을 추가로 만듭니다.

  • 파티션 수: 파티션 수가 너무 많으면 오버헤드가 발생할 수 있고, 너무 적으면 이점을 충분하게 활용하지 못할 수 있습니다. 인스턴스당 최대 10개의 파티션을 만들 수 있습니다.

제한사항

다음 제한사항은 미리보기 버전 출시 기간 동안 적용되며 정식 버전 출시 시 또는 그 이후에 변경되거나 삭제될 수 있습니다.

  • 지역 파티셔닝은 PostgreSQL 언어 데이터베이스를 지원하지 않습니다.
  • 이중 리전 구성을 사용하여 인스턴스 파티션을 만들 수 없습니다.
  • 각 파티션의 컴퓨팅 용량은 노드 1개(처리 단위 1,000개) 이상이어야 합니다.
  • 특정 인스턴스의 경우 동일한 기본 인스턴스 구성을 사용하는 인스턴스 파티션을 두 개 이상 만들 수 없습니다. 예를 들어 test-instance 내에서 모두 us-central1을 파티션 구성으로 사용하는 partition-1partition-2 파티션을 만들 수는 없습니다.
  • 파티션의 모든 노드에 최대 2,000만 개의 게재위치 행을 배치할 수 있습니다. Google Cloud 콘솔의 파티션 페이지에서 각 파티션에 놓인 배치 행 수를 확인할 수 있습니다.
  • Spanner는 대상 인스턴스 파티션의 모든 노드에 대해 초당 약 10개의 배치 행을 이동할 수 있습니다.
  • 무료 체험판 인스턴스 또는 노드 1개(처리 단위 1,000개) 미만의 세분화된 인스턴스에서는 파티션을 만들 수 없습니다.
  • 파티션이 있는 인스턴스의 백업은 만들 수 없습니다.
  • 파티션이 있는 인스턴스에는 고객 관리 암호화 키를 사용할 수 없습니다.
  • 관리형 자동 확장 처리가 사용 설정된 인스턴스에서는 인스턴스 파티션을 만들 수 없습니다.
  • 파티션을 다른 인스턴스 구성으로 이동할 수 없습니다.
  • 파티션이 있는 인스턴스는 이동할 수 없습니다. 인스턴스를 이동할 필요가 없도록 개별 행을 다른 파티션으로 이동할 수 있습니다.
  • 파티션을 사용한다고 해서 규정 준수 및 규제 요구사항이 보장되는 것은 아닙니다.
  • 변경 내역은 파티션된 데이터를 지원하지 않습니다.
  • 지역 파티셔닝을 사용하려면 새 빈 데이터베이스를 만들고 opt_in_dataplacement_preview 옵션을 true로 설정해야 합니다. 자세한 내용은 파티션 만들기 및 관리를 참조하세요.
  • 게재위치 테이블에 INSERT 또는 DELETE DML 문을 사용하는 경우 해당 문이 트랜잭션의 유일한 문여야 합니다.

IAM으로 액세스 제어

파티션을 만들고 관리하려면 spanner.instancePartitions.create, spanner.instancePartitions.update, spanner.instancePartitions.delete 권한이 있어야 합니다. 파티션만 확인해야 하는 경우 spanner.instancePartitions.list 또는 spanner.instancePartitions.get 권한이 있어야 합니다. 자세한 내용은 IAM 개요를 참조하세요.

Spanner IAM 권한을 부여하는 방법은 IAM 권한 적용을 참조하세요.

모니터링

Spanner는 파티션을 모니터링하는 데 도움이 되는 여러 측정항목을 제공합니다. 파티션을 추가로 만들면 Google Cloud 콘솔의 시스템 통계 페이지에 파티션 드롭다운 필터가 추가로 표시됩니다. 기본적으로 모든 파티션의 측정항목이 표시됩니다. 드롭다운을 사용하여 특정 파티션의 측정항목을 필터링할 수 있습니다.

Spanner 리소스 모니터링에 대한 자세한 내용은 Cloud Monitoring으로 인스턴스 모니터링을 참조하세요.

가격 책정

지역 파티셔닝을 사용하는 데 추가 요금은 발생하지 않습니다. 인스턴스에서 사용하는 컴퓨팅 용량과 데이터베이스에서 사용하는 스토리지 양에 표준 Spanner 가격 책정이 적용됩니다.

자세한 내용은 Spanner 가격 책정을 참조하세요.

다음 단계