PG_LAST_COPY_ID - Amazon Redshift

PG_LAST_COPY_ID

현재 세션에서 가장 최근에 완료된 COPY 명령의 쿼리 ID를 반환합니다. 현재 세션에서 COPY 명령이 실행되지 않았다면 PG_LAST_COPY_ID가 -1을 반환합니다.

PG_LAST_COPY_ID 값은 COPY 명령이 로드 프로세스를 시작할 때 업데이트됩니다. 잘못된 로드 데이터로 인해 COPY 명령이 중단되더라도 COPY ID는 업데이트됩니다. 따라서 STL_LOAD_ERRORS 테이블에 대한 쿼리를 실행할 때 PG_LAST_COPY_ID를 사용할 수 있습니다. 단, COPY 트랜잭션이 롤백되면 COPY ID는 업데이트되지 않습니다.

로그 프로세스가 시작되기 전에 구문 오류, 액세스 오류, 잘못된 자격 증명, 부족한 권한 등으로 인한 오류가 발생하여 COPY 명령이 중단되면 COPY ID가 업데이트되지 않습니다. 성공적으로 연결된 후 데이터 로드 이전에 시작되는 압축 분석 단계에서 COPY 명령이 중단되어도 COPY ID가 업데이트되지 않습니다.

구문

pg_last_copy_id()

반환 타입

정수를 반환합니다.

다음은 현재 세션에서 마지막 COPY 명령의 쿼리 ID를 반환하는 쿼리입니다.

select pg_last_copy_id(); pg_last_copy_id --------------- 5437 (1 row)

다음은 STL_LOAD_ERRORS를 STL_LOADERROR_DETAIL로 조인하여 현재 세션에서 가장 최근 로드 도중 발생한 오류 정보를 표시하는 쿼리입니다.

select d.query, substring(d.filename,14,20), d.line_number as line, substring(d.value,1,16) as value, substring(le.err_reason,1,48) as err_reason from stl_loaderror_detail d, stl_load_errors le where d.query = le.query and d.query = pg_last_copy_id(); query | substring | line | value | err_reason -------+-------------------+------+----------+------------------------------------------------- 558| allusers_pipe.txt | 251 | 251 | String contains invalid or unsupported UTF8 code 558| allusers_pipe.txt | 251 | ZRU29FGR | String contains invalid or unsupported UTF8 code 558| allusers_pipe.txt | 251 | Kaitlin | String contains invalid or unsupported UTF8 code 558| allusers_pipe.txt | 251 | Walter | String contains invalid or unsupported UTF8 code