STL_LOAD_ERRORS - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

STL_LOAD_ERRORS

顯示所有 Amazon Redshift 載入錯誤的記錄。

STL_LOAD_ERRORS 包含所有 Amazon Redshift 載入錯誤的歷史記錄。如需可能載入錯誤和說明的完整清單,請參閱載入錯誤參考

在您查詢 STL_LOAD_ERRORS 以尋找有關錯誤的一般資訊之後,STL_LOADERROR_DETAIL查詢其他詳細資訊,例如發生剖析錯誤的確切資料列和資料欄。

STL所有使用者都可看見 _LOAD_ERRORS。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性

注意

STL_LOAD_ERRORS 僅包含主叢集上執行的查詢。但不包含在並行擴縮叢集上執行的查詢。若要存取在主要和並行擴展叢集上執行的查詢,建議您使用SYS監控檢視 SYS_LOAD_ERROR_DETAIL 。SYS 監控檢視中的資料已格式化,以便於使用和理解。

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目的使用者之 ID。
分割 integer 發生錯誤的配量。
tbl integer 表格 ID。
starttime timestamp 載入UTC的開始時間為 。
session integer 執行載入之工作階段的工作階段 ID。
query integer 查詢 ID。查詢欄可用於加入其他系統表格與檢視。
filename character(256) 用於載入之輸入檔案的完整路徑。
line_number bigint 載入檔案中發生錯誤的行號。對於COPY來自 的 JSON,具有 錯誤的JSON物件最後一行的行號。
colname character(127) 發生錯誤的欄位。
type character(10) 欄位的資料類型。
col_length character(10) 資料欄長度 (如適用)。當資料類型具有限制長度時,會填入此欄位。例如,對於資料類型為 "character(3)" 的資料欄,此資料欄將包含值 "3"。
position integer 欄位中錯誤的位置。
raw_line character(1024) 包含錯誤的原始載入資料。載入資料中的多位元組字元會取代為句點。
raw_field_value char(1024) 導致剖析錯誤之欄位 "colname" 的預先剖析值。
err_code integer 錯誤代碼。
err_reason character(100) 錯誤的說明。
is_partial integer 如果 true (1) 表示輸入檔案在COPY操作期間分割為範圍的值。如果此值為 false (0),則輸入檔案不會分割。
start_offset bigint 如果在COPY操作期間分割輸入檔案的值, 會指出分割的偏移值 (以位元組為單位)。如果檔案中的行號不明,則行號為 -1。如果檔案未分割,則此值為 0。
copy_job_id bigint 複製任務識別碼。0 表示沒有任務識別碼。

範例查詢

下列查詢會聯結 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

下列範例使用 STL_LOAD_ERRORS 搭配 STV_TBL_PERM 建立新的檢視,然後使用該檢視來判斷將資料載入EVENT資料表時發生的錯誤:

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);

接下來,下列查詢實際上會傳回載入EVENT資料表時發生的最後一個錯誤:

select table_name, query, line_number, colname, starttime, trim(reason) as error from loadview where table_name ='event' order by line_number limit 1;

查詢會傳回EVENT資料表上次發生的載入錯誤。如果未發生任何載入錯誤,則查詢不會傳回任何資料列。在此範例中,查詢會傳回單一錯誤:

table_name | query | line_number | colname | error | starttime ------+-----+----+----+--------------------------------------------------------+---------------------- event | 309 | 0 | 5 | Error in Timestamp value or format [%Y-%m-%d %H:%M:%S] | 2014-04-22 15:12:44 (1 row)

如果COPY命令自動分割大型、未壓縮、以文字分隔的檔案資料以促進平行處理,則 line_number is_partial start_offset 資料欄會顯示與分割相關的資訊。(如果原始檔案中的行號不可用,則行號可能是未知的。)

--scan ranges information SELECT line_number, POSITION, btrim(raw_line), btrim(raw_field_value), btrim(err_reason), is_partial, start_offset FROM stl_load_errors WHERE query = pg_last_copy_id(); --result -1,51,"1008771|13463413|463414|2|28.00|38520.72|0.06|0.07|NO|1998-08-30|1998-09-25|1998-09-04|TAKE BACK RETURN|RAIL|ans cajole sly","NO","Char length exceeds DDL length",1,67108864