최상의 배포 스타일 선택 - Amazon Redshift

최상의 배포 스타일 선택

쿼리를 실행하면 쿼리 옵티마이저가 필요에 따라 쿼리 행을 컴퓨팅 노드로 다시 분산시켜 조인 및 집계를 실행합니다. 테이블 배포 스타일을 선택하는 목적은 쿼리 실행 이전에 데이터의 배포 위치를 지정하여 재배포 단계의 영향을 최소화하는 데 있습니다.

참고

자동 테이블 최적화를 사용하는 경우 테이블의 배포 스타일을 선택할 필요가 없습니다. 자세한 내용은 자동 테이블 최적화 단원을 참조하십시오.

가장 좋은 방법에 대한 몇 가지 제안은 다음과 같습니다.

  1. 공통 열을 기준으로 팩트 테이블과 차원 테이블 1개를 분산시킵니다.

    팩트 테이블은 분산 키가 1개로 제한됩니다. 따라서 다른 키로 조인하는 테이블은 팩트 테이블과 함께 배치되지 않습니다. 조인 횟수와 조인 행의 크기를 기준으로 함께 배치할 차원 테이블을 1개 선택합니다. 그런 다음 차원 테이블의 기본 키와 팩트 테이블의 해당 외래 키를 모두 DISTKEY로 지정합니다.

  2. 필터링된 데이터 집합의 크기를 기준으로 가장 큰 차원을 선택합니다.

    조인에 사용되는 행만 분산시켜야 하기 때문에 테이블 크기가 아닌 필터링 이후 데이터 세트의 크기를 고려합니다.

  3. 필터링 된 결과 집합에서 카디널리티가 높은 열을 선택합니다.

    예를 들어 판매 테이블을 날짜 열에 배포하는 경우 대부분의 판매가 계절에 따라 편중되지 않는 한 데이터가 상당히 고르게 배포될 수 있습니다. 하지만 범위 제한 조건자를 공통적으로 사용하여 좁은 날짜 기간 동안 필터링하는 경우에는 필터링되는 행의 대부분이 제한된 조각(slice) 세트에서 발생하므로 쿼리 워크로드가 편향됩니다.

  4. ALL 분산을 사용하도록 일부 차원 테이블을 변경합니다.

    차원 테이블을 팩트 테이블이나 기타 중요한 조인 테이블과 함께 배치할 수 없는 경우에는 전체 테이블을 모든 노드로 분산시켜 쿼리 성능을 크게 높일 수 있습니다. ALL 분산을 사용하면 스토리지 공간 요건이 크게 늘어날 뿐만 아니라 로그 시간 및 유지 관리 작업도 증가합니다. 따라서 ALL 분산을 선택하려면 먼저 모든 인자에 가중치를 반영해야 합니다.

Amazon Redshift에서 적절한 배포 스타일을 선택하도록 하려면 배포 스타일에 AUTO를 지정합니다.

배포 스타일의 선택에 대한 자세한 내용은 쿼리 최적화를 위한 데이터 배포 섹션을 참조하세요.