본문 바로가기
Data/Data Engineering

[PostgreSQL/Redshift] COPY FROM 명령어 사용 중 오류

by 투말치 2023. 12. 6.

목차

    반응형

    COPY FROM 명령어 사용 중 오류

     

    Redshift에서 COPY 명령어를 사용하던 중 오류가 발생했다. 오류 메시지를 확인하려면 sys_load_error_detail 테이블을 확인하라는 메시지가 떠서 아래 명령어를 통해 확인해봤다.

     

    SELECT query_id,
           table_id,
           start_time,
           trim(file_name) AS file_name, 
           trim(column_name) AS column_name, 
           trim(column_type) AS column_type, 
           trim(error_message) AS error_message 
    FROM sys_load_error_detail 
    ORDER BY start_time desc
    LIMIT 10;

     

    확인 결과 총 2가지 종류의 오류 메시지를 확인할 수 있었다.

    Delimiter not found

     

    이 오류는 나중에 값을 추가해야 하는 컬럼(파일에는 존재하지 않음)을 테이블을 만들 때 미리 만들었기 때문에 발생했다. 따라서 파일의 컬럼과 테이블의 컬럼이 동일하게 수정했다.

     

    Overflow for NUMERIC(2,1)

     

    이 오류는 내가 자릿수를 잘못 지정했기 때문에 발생했다. NUMERIC(전체 자릿수, 소수점 이하 자릿수) 형태인데, 전체 자릿수를 소수점 이하 자릿수를 포함하지 않은 경우라고 생각해서 (2,1)로 잘못 지정했다.

    그래서 NUMERIC(3, 1)로 수정했다.

     

     

     

     

    https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/SYS_LOAD_ERROR_DETAIL.html

     

    SYS_LOAD_ERROR_DETAIL - Amazon Redshift

    SYS_LOAD_ERROR_DETAIL SYS_LOAD_ERROR_DETAIL을 사용하여 COPY 명령 오류의 세부 정보를 봅니다. 각 행은 COPY 명령을 나타냅니다. 여기에는 실행 중인 COPY 명령과 완료된 COPY 명령이 모두 포함됩니다. SYS_LOAD_ERR

    docs.aws.amazon.com

     

     

     

    반응형