다른 응답 외에 다음은 스키마 성능을 향상시키기위한 몇 가지 제안 사항입니다.
첫째 : COPY 명령
를 사용하여 자동 압축 인코딩은 COPY 명령을 사용하여 아마존 적색 편이 성능을 향상시킬 수 있습니다. Redshift 데이터베이스에 데이터를 가져옵니다. COPY 명령은 충분히 똑똑합니다. 업로드하는 데이터에 가장 적합한 인코딩 설정을 자동으로 선택합니다. 그것에 대해 생각할 필요가 없습니다. 그러나 첫 번째 데이터를 빈 테이블에 업로드하는 경우에만이를 수행합니다.
따라서 Redshift가 가장 좋은 방법으로 열 인코딩을 설정하기 위해 평가할 수있는 데이터를 처음 업로드하는 동안 중요한 데이터 세트를 사용해야합니다. 몇 줄의 테스트 데이터를 업로드하면 Redshift는 실제 작업 부하를 처리하기 위해 압축을 최적화하는 것이 가장 좋은 방법인지 혼동하게됩니다.
둘째, 사용 제일 배포 스타일과 키
배포 스타일은 데이터 노드에 분산하는 방법을 결정합니다. 테이블 수준에서 배포 스타일을 적용하면 Redshift가 테이블과 키를 배포 할 방법을 알 수 있습니다. 따라서 Redshift를 사용하여 쿼리 성능을 높이려면 배포 스타일을 지정하는 것이 중요합니다. 선택한 스타일이 데이터 저장 및 클러스터 요구 사항에 영향을 미칠 수 있습니다. 또한 COPY 명령을 실행하는 데 걸리는 시간에 영향을줍니다.
더 작은 치수를 가진 모든 테이블에 배포 스타일을 설정하는 것이 좋습니다. 큰 차원의 경우 차원과 연관된 사실을 조인 열에 분산하십시오. 두 번째 큰 차원을 최적화하려면 스토리지 적중을 가져 와서 ALL을 배포하십시오. 사실에 차원 열을 디자인 할 수도 있습니다.
셋째 :
지정한 경우 적색 편이 데이터베이스가 정렬 키 컬럼의 배열로 테이블에 데이터를 유지 키 최고의 정렬을 사용합니다. 각 파티션에서 정렬되기 때문에; 각 클러스터 노드는 사전 정의 된 순서로 파티션을 유지합니다. Redshift 스키마를 디자인하는 동안 예산에 미치는 영향도 고려하십시오. 저장된 데이터 양과 노드 수에 따라 Redshift는 priced입니다.
정렬 키는 Amazon Redshift 성능을 크게 최적화합니다. 당신은 여러면에서 그것을 할 수 있습니다. 먼저 데이터 필터링을 사용하십시오. sort-key-column에 where-clause 필터가 있으면 전체 데이터 블록을 건너 뜁니다. Redshift가 데이터를 블록으로 저장하기 때문입니다. 각 블록 헤더는 최소 W 최대 정렬 키 값을 기록합니다. 해당 범위를 벗어나서 필터링하면 전체 블록을 건너 뛸 수 있습니다.
또는 조인트 키로 정렬 된 두 개의 테이블을 결합 할 때 데이터가 일치하는 순서로 읽혀집니다. 또한 별도의 정렬 단계없이 병합 조인을 수행 할 수 있습니다. 큰 팩트 테이블에 큰 차원을 결합하는 것은 해시 테이블에 맞지 않으므로이 방법으로 쉽게 할 수 있습니다.