COPY 명령이 .csv 파일을 Amazon Redshift로 로드하지 않는 이유는 무엇입니까?

1분 분량
0

COPY 명령을 사용하여 Amazon Simple Storage Service(Amazon S3)에서 Amazon Redshift로 .csv 파일을 로드하려고 합니다. 파일에는 레코드가 포함되어 있습니다. 하지만 해당 명령이 파일을 로드하거나 오류를 반환하지 않습니다.

해결 방법

.csv 파일이 캐리지 리턴을 줄 종결자로 사용하는 경우 COPY는 Amazon Redshift에 데이터를 로드하지 못합니다. 캐리지 리턴에는 "\\r", "^M" 또는 16진수로 "0x0D"가 포함됩니다.

Amazon Redshift는 캐리지 리턴을 줄 종결자로 인식하지 않기 때문에 Amazon Redshift가 해당 파일을 한 줄로 구문 분석합니다. COPY 명령에서 IGNOREHEADER 파라미터를 0이 아닌 숫자로 설정하면 Amazon Redshift가 첫 줄을 건너뜁니다. 그 결과, Amazon Redshift가 전체 파일을 건너뛰기도 합니다. 기술적으로는 작업이 성공했기 때문에 이 명령은 로드 오류를 반환하지 않습니다.

이 문제를 해결하려면 캐리지 리턴을 CRLF, "\\r\\n", 16진수 "0x0D0A", LF, "\\n" 또는 16진수 "0x0A"로 바꿉니다. 수정된 파일을 S3 버킷에 업로드한 다음, COPY 명령을 다시 실행합니다.

캐리지 리턴을 교체해도 여전히 문제가 발생하면 다음 작업을 수행하십시오.

관련 정보

데이터 소스

COPY 예제

AWS 공식
AWS 공식업데이트됨 3달 전