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

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

다음 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는 작은따옴표와 큰따옴표를 모두 지원합니다. 그러나 이들 따옴표는 적절히 짝이 맞아야 합니다.

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

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

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