STL_LOADERROR_DETAIL - Amazon Redshift

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

STL_LOADERROR_DETAIL

顯示使用 COPY命令載入資料表時發生的資料剖析錯誤日誌。若要保留磁碟空間,針對每個載入操作,每個節點配量最多可記錄 20 個錯誤。

將資料列中的欄位載入至資料表時,若 Amazon Redshift 無法剖析該欄位,即會發生剖析錯誤。例如,如果資料表資料欄預期 integer 資料類型,但資料檔案在該欄位中包含一串字母,則其會導致剖析錯誤。

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

STL_LOADERROR_DETAIL 檢視包含所有資料欄,包括發生剖析錯誤的資料欄之前的 和 。使用 VALUE 欄位來查看此欄中實際剖析的資料值,包括正確剖析至錯誤的資料欄。

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

注意

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

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目的使用者之 ID。
分割 integer 發生錯誤的配量。
session integer 執行載入之工作階段的工作階段 ID。
query integer 查詢 ID。查詢欄可用於加入其他系統表格與檢視。
filename character(256) 用於載入之輸入檔案的完整路徑。
line_number bigint 載入檔案中發生錯誤的行號。
field integer 發生錯誤的欄位。
colname character(1024) 資料欄名稱。
value character(1024) 欄位的已剖析資料值。(可能已截斷。) 載入資料中的多位元組字元會取代為句點。
is_null integer 已剖析值是否為 null。
type character(10) 欄位的資料類型。
col_length character(10) 資料欄長度 (如適用)。當資料類型具有限制長度時,會填入此欄位。例如,對於資料類型為 "character(3)" 的資料欄,此資料欄將包含值 "3"。

範例查詢

下列查詢會聯結 STL_LOAD_ERRORS 至 STL_LOADERROR_DETAIL,以檢視載入EVENT資料表時發生剖析錯誤的詳細資訊,資料表 ID 為 100133:

select d.query, d.line_number, d.value, le.raw_line, le.err_reason from stl_loaderror_detail d, stl_load_errors le where d.query = le.query and tbl = 100133;

下列範例輸出會顯示成功載入的資料欄,包括發生錯誤的資料欄。在此範例中,於第三個資料欄中發生剖析錯誤之前已成功載入兩個資料欄,此錯誤是對於預期整數的欄位,卻不正確地剖析字元字串。因為欄位預期整數,所以它將字串 "aaa" (未初始化的資料) 剖析為 null,並產生剖析錯誤。輸出顯示原始值、已剖析值和錯誤原因:

query | line_number | value | raw_line | err_reason -------+-------------+-------+----------+---------------- 4 | 3 | 1201 | 1201 | Invalid digit 4 | 3 | 126 | 126 | Invalid digit 4 | 3 | | aaa | Invalid digit (3 rows)

當查詢加入 STL_LOAD_ERRORS 和 STL_LOADERROR_ 時DETAIL,它會顯示資料列中每個資料欄的錯誤原因,這只是表示該資料列中發生錯誤。結果中的最後一列是發生剖析錯誤的實際資料欄。