

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# 用於對資料載入進行故障診斷的系統資料表
<a name="system-tables-for-troubleshooting-data-loads"></a>

下列 Amazon Redshift 系統資料表在對資料載入問題進行故障診斷時很實用：
+ 查詢 [STL\$1LOAD\$1ERRORS](r_STL_LOAD_ERRORS.md) 以探索特定載入期間發生的錯誤。
+ 查詢 [STL\$1FILE\$1SCAN](r_STL_FILE_SCAN.md) 以檢視特定檔案的載入時間或查看是否甚至讀取特定檔案。
+ 查詢 [STL\$1S3CLIENT\$1ERROR](r_STL_S3CLIENT_ERROR.md) 來尋找從 Amazon S3 傳輸資料時所遇到錯誤的詳細資訊。

**尋找和診斷載入錯誤**

1. 建立檢視或定義可傳回載入錯誤詳細資訊的查詢。下列範例會將 STL\$1LOAD\$1ERRORS 資料表聯結至 STV\$1TBL\$1PERM 資料表，以將資料表 ID 與實際資料表名稱比對。

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

1. 將您的 COPY 命令中的 MAXERRORS 選項設定為足夠大的值，讓 COPY 傳回關於您的資料的實用資訊。如果 COPY 遇到錯誤，錯誤訊息會引導您查詢 STL\$1LOAD\$1ERRORS 資料表以取得詳細資訊。

1. 查詢 LOADVIEW 檢視來查看錯誤詳細資訊。例如：

   ```
   select * from loadview where table_name='venue';
   ```

   ```
     tbl   | table_name | query |         starttime          
   --------+------------+-------+----------------------------
    100551 | venue      | 20974 | 2013-01-29 19:05:58.365391 
   
   |     input      | line_number | colname | err_code |       reason
   +----------------+-------------+---------+----------+--------------------
   | venue_pipe.txt |           1 |       0 |     1214 | Delimiter not found
   ```

1. 在輸入檔案或載入指令碼中修正問題，根據檢視傳回的資訊。要監看的一些一般載入錯誤包括：
   + 資料表中的資料類型和輸入資料欄位中的值不符。
   + 資料表中資料欄的數量與輸入資料中的欄位數量不符。
   + 引號不符。Amazon Redshift 同時支援單引號和雙引號；不過，這些引號必須正確成對。
   + 輸入檔案中日期/時間資料的格式不正確。
   + 輸入檔案中超出範圍的值 (針對數值資料欄)。
   + 超出其壓縮編碼限制的資料欄的獨特值數量。