분산 스타일 지정 - Amazon Redshift

분산 스타일 지정

이번 단원에서 분산 스타일을 지정하는 데 필요한 고려 사항과 권장 사항은 스타 스키마를 예로 사용합니다. 데이터베이스는 스타 스키마, 스타 스키마의 변형 또는 완전히 다른 스키마를 기초로 설계되기도 합니다. Amazon Redshift는 어떤 스키마를 선택하든 효과적으로 호환되도록 설계되었습니다. 이번 단원에서 언급하는 몇 가지 원칙은 어떤 설계 스키마에든 적용될 수 있습니다.

  1. 기본 키와 외래 키를 모든 테이블에 지정하십시오.

    Amazon Redshift는 기본 키 및 외래 키 제약 조건을 강요하지 않지만 쿼리 옵티마이저는 쿼리 계획을 작성할 때 이러한 제약 조건을 사용합니다. 따라서 기본 키와 외래 키를 설정하는 경우에는 애플리케이션이 키의 유효성을 유지해야 합니다.

  2. 공통 열을 기준으로 팩트 테이블과 가장 큰 차원 테이블을 분산시키십시오.

    테이블 크기뿐만 아니라 가장 공통적인 조인에 참여하는 데이터 세트의 크기를 기준으로 가장 큰 차원을 선택합니다. 테이블이 WHERE 절을 사용하여 공통적으로 필터링되는 경우에는 행의 일부분만 조인에 참여합니다. 이러한 테이블은 더 많은 데이터를 제공하는 작은 크기의 테이블보다 재분산에 미치는 영향이 작습니다. 차원 테이블의 기본 키와 팩트 테이블의 해당 외래 키를 모두 DISTKEY로 지정합니다. 다수의 테이블이 동일한 분산 키를 사용하는 경우에는 모두 팩트 테이블과 함께 배치됩니다. 팩트 테이블은 분산 키가 1개로 제한됩니다. 따라서 다른 키로 조인하는 테이블은 팩트 테이블과 함께 배치되지 않습니다.

  3. 나머지 차원 테이블의 분산 키를 지정하십시오.

    다른 테이블과 가장 공통적으로 조인하는 방식에 따라 기본 키 또는 외래 키로 테이블을 분산시킵니다.

  4. ALL 분산 사용을 위한 일부 차원 테이블의 변경 여부를 평가하십시오.

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

  5. 나머지 테이블에 AUTO 분산을 사용합니다.

    테이블이 대부분 비정규화되어 조인에 참여하지 않거나, 혹은 다른 분산 스타일을 명확히 구분하여 선택하지 않는 경우에는 AUTO 분산을 사용합니다.

Amazon Redshift에서 적절한 배포 스타일을 선택하도록 하려면 배포 스타일을 명시적으로 지정하지 않습니다.