데이터 로드 문제 해결을 위한 시스템 테이블 - Amazon Redshift

Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물을 참조하세요.

데이터 로드 문제 해결을 위한 시스템 테이블

다음 Amazon Redshift 시스템 테이블은 데이터 로드 문제 해결에 도움이 될 수 있습니다.

  • 특정 로드 도중 발생한 오류를 발견하려면 STL_LOAD_ERRORS를 쿼리합니다.

  • 특정 파일의 로드 시간을 확인하거나 특정 파일이 읽혔는지 보려면 STL_FILE_SCAN을 쿼리합니다.

  • Amazon S3에서 데이터를 전송하는 중에 발생한 오류의 세부 정보를 찾으려면 STL_S3CLIENT_ERROR를 쿼리합니다.

로드 오류를 찾고 진단하려면
  1. 뷰를 생성하거나 로드 오류에 대한 세부 정보를 반환하는 쿼리를 정의합니다. 다음 예는 STL_LOAD_ERRORS 테이블을 STV_TBL_PERM 테이블에 조인하여 테이블 ID를 실제 테이블 이름과 일치시킵니다.

    create view loadview as (select distinct tbl, trim(name) as table_name, query, starttime, trim(filename) as input, line_number, colname, err_code, trim(err_reason) as reason from stl_load_errors sl, stv_tbl_perm sp where sl.tbl = sp.id);
  2. COPY가 데이터에 관한 유용한 정보를 반환할 수 있도록 COPY 명령에서 MAXERRORS 옵션을 충분히 큰 값으로 설정합니다. COPY에서 오류가 발생하는 경우, STL_LOAD_ERRORS 테이블에서 세부 정보를 참조하라고 오류 메시지에 표시됩니다.

  3. 오류 세부 정보를 보려면 LOADVIEW 뷰를 쿼리합니다. 예:

    select * from loadview where table_name='venue';
    tbl | table_name | query | starttime --------+------------+-------+---------------------------- 100551 | venue | 20974 | 2013-01-29 19:05:58.365391 | input | line_number | colname | err_code | reason +----------------+-------------+---------+----------+-------------------- | venue_pipe.txt | 1 | 0 | 1214 | Delimiter not found
  4. 뷰가 반환하는 정보를 바탕으로 입력 파일이나 로드 스크립트의 문제를 수정합니다. 주의할 몇 가지 일반적인 오류는 다음과 같습니다.

    • 테이블의 데이터 형식과 입력 데이터 필드의 값이 불일치.

    • 테이블의 열 수와 입력 데이터의 필드 수가 불일치.

    • 따옴표의 짝이 맞지 않습니다. Amazon Redshift는 작은따옴표와 큰따옴표를 모두 지원합니다. 그러나 이들 따옴표는 적절히 짝이 맞아야 합니다.

    • 입력 파일의 잘못된 형식의 날짜/시간 데이터.

    • 입력 파일에서 범위를 벗어난 값(숫자 열의 경우).

    • 열의 고유 값 수가 압축 인코딩의 제한을 초과.