Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
純量 Python UDF
純量 Python UDF 包含呼叫函數時執行的 Python 程式,並傳回單一值。CREATE FUNCTION 命令定義下列參數:
-
(選用) 輸入引數。每個引數必須具有一個名稱和一個資料類型。
-
一個傳回資料類型。
-
一個可執行的 Python 程式。
Python UDF 的輸入和傳回資料類型可以是下列任一類型:
SMALLINT
INTEGER
BIGINT
DECIMAL
REAL
DOUBLE PRECISION
BOOLEAN
CHAR
VARCHAR
DATE
TIMESTAMP
ANYELEMENT
這些類型的別名也有效。如需資料類型及其別名的完整清單,請參閱 資料類型。
當 Python UDF 使用資料類型 ANYELEMENT 時,Amazon Redshift 會根據執行時期提供的引數,自動將其轉換為標準資料類型。如需更多詳細資訊,請參閱 ANYELEMENT 資料類型。
當 Amazon Redshift 查詢呼叫純量 UDF 時,下列步驟會在執行期發生。
-
函數會將輸入引數轉換為 Python 資料類型。
如需將 Amazon Redshift 資料類型映射至 Python 資料類型,請參閱 Python UDF 資料類型。
-
函數會執行 Python 程式,剖析已轉換的輸入引數。
-
Python 程式碼會傳回單一值。傳回值的資料類型必須對應至函數定義所指定的 RETURNS 資料類型。
-
函數會將 Python 傳回值轉換為指定的 Amazon Redshift 資料類型,然後將該值傳回至佇列。
注意
Python 3 不適用於 Python UDF。若要取得 Amazon Redshift UDF 的 Python 3 支援,請改用 純量 Lambda UDF。