2014-10-16 2 views
3

Amazon의 Redshift에서 stl_load_errors 테이블의 내용을 지우는 방법이 있습니까?Redshift에서 stl_load_errors 테이블을 지우려면 어떻게해야합니까?

나는 Redshift에 COPY의 배치 프로세스를 실행하고 있으며 시간 범위별로 필터링하지 않고도 전체 stl_load_errors를 한 번에 볼 수 있다면 편리 할 것입니다. "허가 거부 : ERROR"나는 TRUNCATE stl_load_errors 할 때

, 내가 얻을 : "시스템 테이블에서 삭제할 수 없습니다 ERROR"나는 DELETE FROM stl_load_errors 할 때

, 내가 얻을 stl_load_errors은 "시스템 카탈로그입니다 "

답변

7

아니요, 해당 테이블에서 삭제할 수 없습니다.

Redshift가 시간이 지남에 따라 자동으로 해당 테이블을 지우는 것, 즉 모두로드 오류를 영원히 남기지 않는다는 점에 유의해야합니다.

+0

해명 해 주셔서 감사합니다. – Mendhak

1

아래의 쿼리를 사용하여 복사 명령의 모든 오류를 가져올 수 있습니다.

SELECT err.userid, 
     err.process, 
     err.recordtime, 
     err.pid, 
     err.errcode, 
     err.file, 
     err.linenum, 
     err.context, 
     err.error 
FROM stl_error err, 
    stv_recents rec 
WHERE rec.pid=err.pid 
    AND rec.status='running' 
    AND rec.query LIKE 'COPY%'; 

위의 쿼리 부분에서 명령에 따라 copy%을 편집하십시오.

2

stl_load_errors에서 삭제할 수 없지만 S3의 COPY 쿼리를 사용하면 filename을 사용하여 stl_load_errors에서 SELECT를 필터링 할 수 있습니다. 예를 들어 : 디스크 공간에 대해 걱정할 필요가 없습니다 select * from stl_load_errors where filename like 's3://BUCKET/PREFIX_OF_PATH%'

stl_load_errors는 이전 데이터 (옛 보통 주)를 삭제합니다.

관련 문제