純量 Python UDF - Amazon Redshift

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 時,下列步驟會在執行期發生。

  1. 函數會將輸入引數轉換為 Python 資料類型。

    如需將 Amazon Redshift 資料類型映射至 Python 資料類型,請參閱 Python UDF 資料類型

  2. 函數會執行 Python 程式,剖析已轉換的輸入引數。

  3. Python 程式碼會傳回單一值。傳回值的資料類型必須對應至函數定義所指定的 RETURNS 資料類型。

  4. 函數會將 Python 傳回值轉換為指定的 Amazon Redshift 資料類型,然後將該值傳回至佇列。

注意

Python 3 不適用於 Python UDF。若要取得 Amazon Redshift UDF 的 Python 3 支援,請改用 純量 Lambda UDF