데이터 배포 스타일 작업
테이블에 데이터를 로드하면 Amazon Redshift가 테이블의 배포 스타일에 따라 테이블 행을 각 컴퓨팅 노드로 분산시킵니다. 쿼리를 실행하면 쿼리 옵티마이저가 필요에 따라 쿼리 행을 컴퓨팅 노드로 다시 분산시켜 조인 및 집계를 실행합니다. 테이블 배포 스타일을 선택하는 목적은 쿼리 실행 이전에 데이터의 분산 위치를 지정하여 재분산 단계의 영향을 최소화하는 데 있습니다.
참고
이 섹션에서는 Amazon Redshift 데이터베이스의 데이터 배포 원칙을 소개합니다. DISTSTYLE AUTO
로 테이블을 생성하는 것이 좋습니다. 그러면 Amazon Redshift가 자동 테이블 최적화를 사용하여 데이터 배포 스타일을 선택합니다. 자세한 내용은 자동 테이블 최적화 작업 단원을 참조하십시오. 이 섹션의 나머지 부분에서는 배포 스타일에 대한 세부 정보를 제공합니다.
데이터 분산 개념
다음은 Amazon Redshift에 대한 몇 가지 데이터 배포 개념입니다.
노드 및 조각
Amazon Redshift 클러스터는 노드 집합입니다. 클러스터를 구성하는 각 노드는 운영 체제, 전용 메모리 및 전용 디스크 스토리지를 자체적으로 가지고 있습니다. 여기에는 리더 노드라고 하는 노드가 하나 있습니다. 리더 노드는 데이터 및 쿼리 처리 태스크를 컴퓨팅 노드로 분산시킬 수 있도록 관리하는 역할을 합니다. 컴퓨팅 노드는 이러한 태스크를 수행하기 위한 리소스를 제공합니다.
컴퓨팅 노드의 디스크 스토리지는 다수의 조각으로 분할됩니다. 노드당 조각 수는 클러스터의 노드 크기에 따라 달라집니다. 각 노드는 병렬 쿼리 실행에 참여하여 조각에 대한 데이터 분산 작업을 최대한 균일하게 실행합니다. 각 노드 크기의 슬라이스 수에 대한 자세한 내용은 Amazon Redshift 관리 가이드의 클러스터 및 노드 정보 섹션을 참조하세요.
데이터 재분산
테이블에 데이터를 로드하면 Amazon Redshift가 테이블의 배포 스타일에 따라 테이블 행을 각 노드 조각으로 분산시킵니다. 옵티마이저가 쿼리 계획에 따라 최적의 쿼리 실행을 위한 데이터 블록 위치를 결정합니다. 그런 다음 쿼리가 실행되는 동안 데이터가 물리적으로 이동되거나 재배포됩니다. 재분산에는 조인을 위해 특정 행을 노드로 전송하거나, 혹은 전체 테이블을 모든 노드로 브로드캐스팅하는 작업이 포함될 수 있습니다.
데이터 재분산은 쿼리 계획에서 차지하는 비용 부분이 매우 클 뿐만 아니라 여기에서 발생하는 네트워크 트래픽은 다른 데이터베이스 작업에도 영향을 미쳐 전반적인 시스템 성능이 느려질 수도 있습니다. 하지만 초기에 최적의 데이터 저장 위치를 예상하는 범위까지는 데이터 재분산의 영향을 최소화할 수 있습니다.
데이터 분산 목적
데이터를 테이블에 로드할 때는 Amazon Redshift가 테이블 생성 시 선택한 배포 스타일에 따라 테이블의 행을 컴퓨팅 노드 및 조각으로 분산시킵니다. 데이터 분산은 기본적으로 다음과 같은 두 가지 목적이 있습니다.
-
워크로드를 클러스터 노드에 균일하게 분산시킵니다. 불균일 분산, 즉 데이터 분산 스큐는 일부 노드가 상대적으로 더 많은 작업을 하게 되면서 쿼리 성능을 떨어뜨립니다.
-
쿼리 실행 시 데이터 이동을 최소화하려면 조인 또는 집계에 참여하는 행이 다른 테이블의 조인 행과 함께 노드에 공동 배치되어 있는 경우에는 옵티마이저가 쿼리 실행 시 공동 배치되어 있는 만큼 데이터를 재분산시킬 필요가 없습니다.
데이터베이스에 선택하는 분산 전략은 쿼리 성능, 스토리지 요건, 데이터 로딩 및 유지 관리에 미치는 비중이 매우 큽니다. 따라서 각 테이블마다 최적의 분산 스타일을 선택해야만 데이터 분산 밸런스를 맞춰 전체적인 시스템 성능을 크게 높일 수 있습니다.