2014-10-16 44 views
3

有沒有辦法清除Amazon Redshift中stl_load_errors表的內容?如何清除Redshift中的stl_load_errors表?

我正在將批處理過程運行到COPY到Redshift中,如果我可以一次查看整個stl_load_errors而不必按時間範圍進行過濾,那將很方便。

當我嘗試DELETE FROM stl_load_errors,我得到:「:權限被拒絕:ERROR‘

當我嘗試TRUNCATE stl_load_errors,我得到「誤差不能從系統表刪除」 stl_load_errors’是一個系統目錄

回答

7

不,您不能從該表中刪除。

值得注意的是,Redshift會隨着時間的推移自動清除該表格,即它永遠不會持有所有加載錯誤。

+0

感謝您的澄清 – Mendhak 2014-10-16 17:21:56

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查詢,則可以使用文件名過濾來自stl_load_errors的SELECT。 例如: select * from stl_load_errors where filename like 's3://BUCKET/PREFIX_OF_PATH%'

的stl_load_errors將刪除(通常是一個周齡)的舊數據,所以你不必擔心磁盤空間。