데이터 로드 작업 - Amazon Redshift

데이터 로드 작업

문제 해결을 위해, 혹은 로드 시간을 줄일 목적으로 다음 파라미터를 지정하여 로드 작업의 기본 동작을 관리합니다.

파라미터
COMPROWS numrows

압축 분석 시 샘플 크기로 사용할 행의 수를 지정합니다. 분석은 각 데이터 조각의 행에서 실행됩니다. 예를 들어 COMPROWS 1000000(1,000,000)을 지정했을 때 시스템에 총 4개의 조각이 있는 경우에는 조각당 250,000개까지만 행을 읽고 분석합니다.

COMPROWS가 지정되지 않은 경우 샘플 크기는 기본적으로 조각당 100,000개입니다. 기본값인 조각당 100,000개의 행보다 낮은 COMPROWS 값은 자동으로 기본값으로 업그레이드됩니다. 하지만 로드되는 데이터의 크기가 유의적인 샘플을 산출할 정도로 충분하지 않은 경우에는 자동 압축이 일어나지 않습니다.

COMPROWS 숫자가 입력 파일의 행 개수보다 큰 값이면 COPY 명령이 가능한 모든 행에 대한 압축 분석을 계속 진행하고 실행합니다. 이 인수의 허용 범위는 1000과 2147483647(2,147,483,647) 사이의 수입니다.

COMPUPDATE [ PRESET | { ON | TRUE } | { OFF | FALSE } ]

COPY 실행 시 압축 인코딩의 자동 적용 여부를 제어합니다.

COMPUPDATE가 PRESET인 경우 열에 이미 RAW 이외의 다른 인코딩이 있어도 대상 테이블이 비어 있으면 COPY 명령이 각 열에 대한 압축 인코딩을 선택합니다. 현재 지정된 열 인코딩을 바꿀 수 있습니다. 각 열에 대한 인코딩은 열 데이터 형식을 기준으로 합니다. 데이터가 샘플링되지 않습니다. Amazon Redshift가 다음과 같이 압축 인코딩을 자동으로 할당합니다.

  • 정렬 키로 정의된 열은 RAW 압축이 할당됩니다.

  • BOOLEAN, REAL 또는 DOUBLE PRECISION 데이터 형식으로 정의된 열은 RAW 압축이 할당됩니다.

  • SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP 또는 TIMESTAMPTZ로 정의된 열에는 AZ64 압축이 할당됩니다.

  • CHAR 또는 VARCHAR로 정의된 열에는 LZO 압축이 할당됩니다.

COMPUPDATE가 생략된 경우 COPY 명령은 대상 테이블이 비어 있고 임의의 열에 대한 인코딩(RAW 이외)을 지정하지 않은 경우에만 각 열에 대한 압축 인코딩을 선택합니다. 각 열에 대한 인코딩은 Amazon Redshift에 의해 결정됩니다. 데이터가 샘플링되지 않습니다.

COMPUPDATE가 ON(또는 TRUE)이거나 옵션 없이 COMPUPDATE가 지정된 경우 테이블 열에 이미 RAW 외에 다른 인코딩이 있어도 테이블이 비어 있으면 COPY 명령이 자동 압축을 적용합니다. 현재 지정된 열 인코딩을 바꿀 수 있습니다. 각 열에 대한 인코딩은 샘플 데이터 분석을 기반으로 합니다. 자세한 내용은 자동 압축을 사용하여 테이블 로드 단원을 참조하십시오.

COMPUPDATE가 OFF(또는 FALSE)일 때는 자동 압축이 비활성화됩니다. 열 인코딩은 변경되지 않습니다.

압축을 분석하는 시스템 테이블에 대한 자세한 내용은 STL_ANALYZE_COMPRESSION 섹션을 참조하세요.

IGNOREALLERRORS

이 옵션을 지정하여 로드 작업 중에 발생하는 모든 오류를 무시할 수 있습니다.

MAXERROR 옵션을 지정하면 IGNOREALLERRORS 옵션을 지정할 수 없습니다. ORC 및 Parquet를 포함한 열 형식에 대해서는 IGNOREALLERRORS 옵션을 지정할 수 없습니다.

MAXERROR [AS] error_count

데이터 로드 시 error_count를 오류 수 이상으로 반환하면 로드가 중단됩니다. 반환되는 오류 수가 더 적을 때는 로드를 계속하면서 INFO 메시지를 반환하여 로드할 수 없는 행의 수를 알려줍니다. 이 파라미터는 형식 오류 또는 기타 데이터 불일치로 인해 일부 행을 테이블에 로드하지 못할 때 중단 없이 로드를 계속할 수 있도록 지정합니다.

첫 번째 오류 발생 시 바로 로드를 중단하려면 이 값을 0 또는 1로 설정하십시오. AS 키워드는 옵션입니다. MAXERROR 기본 값은 0이며 최대 100000까지 설정할 수 있습니다.

Amazon Redshift의 병렬 특성 때문에 실제로 보고되는 오류 수는 지정한 MAXERROR 값보다 클 수 있습니다. Amazon Redshift 클러스터 노드에서 MAXERROR 값이 초과된 것을 감지하면 각 노드가 발생하는 모든 오류를 보고합니다.

NOLOAD

실제로 데이터를 로드하지 않고 데이터 파일의 유효성을 검사합니다. NOLOAD 파라미터를 사용하면 실제로 데이터를 로드하기 전에 데이터 파일의 로드에 따른 잠재적 오류 여부를 확인할 수 있습니다. COPY를 NOLOAD 파라미터와 함께 실행하면 파일의 구문만 분석하기 때문에 데이터 로드보다 속도가 훨씬 빠릅니다.

STATUPDATE [ { ON | TRUE } | { OFF | FALSE } ]

COPY 명령을 성공적으로 마치면 옵티마이저 통계를 자동 계산하여 업데이트합니다. 기본적으로 처음부터 빈 테이블이라면 STATUPDATE 파라미터를 사용하지 않아도 통계가 자동 업데이트됩니다.

데이터를 비어있지 않은 테이블로 수집하면서 테이블 크기의 변동이 심할 때마다 ANALYZE 명령을 실행하거나, 혹은 STATUPDATE ON 인수를 사용하여 통계를 업데이트하는 것이 좋습니다.

STATUPDATE ON(또는 TRUE)일 때는 테이블이 처음부터 비어있는지 상관없이 통계가 자동 업데이트됩니다. STATUPDATE를 사용할 경우 현재 사용자가 테이블 소유자이거나 수퍼유저이어야 합니다. 하지만 STATUPDATE를 지정하지 않는 경우에는 사용자에게 INSERT 권한만 있으면 됩니다.

STATUPDATE OFF(또는 FALSE)일 때는 통계가 업데이트되지 않습니다.

자세한 내용은 테이블 분석 섹션을 참조하세요.