UDF Python scalari - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

UDF Python scalari

Una funzione definita dall'utente Python integra un programma Python che viene eseguito quando la funzione viene chiamata e restituisce un singolo valore. Il comando CREATE FUNCTION definisce i parametri seguenti:

  • Argomenti di input (facoltativi). Ogni argomento deve avere un nome e un tipo di dati.

  • Un tipo di dati restituito.

  • Un programma Python eseguibile.

I tipi di dati di input e restituiti per le UDF Python possono essere i seguenti:

  • SMALLINT

  • INTEGER

  • BIGINT

  • DECIMAL

  • REAL

  • DOUBLE PRECISION

  • BOOLEAN

  • CHAR

  • VARCHAR

  • DATE

  • TIMESTAMP

  • ANYELEMENT

Anche gli alias per questi tipi sono validi. Per un elenco completo dei tipi di dati e dei relativi alias, consulta Tipi di dati.

Quando le UDF Python utilizzano il tipo di dati ANYELEMENT, Amazon Redshift lo converte automaticamente in un tipo di dati standard in base agli argomenti specificati in fase di runtime. Per ulteriori informazioni, consulta Tipo di dati ANYELEMENT.

Quando una query di Amazon Redshift chiama una funzione definita dall'utente scalare, si verifica quanto segue in fase di runtime.

  1. La funzione converte gli argomenti di input in tipi di dati Python.

    Per una mappatura dei tipi di dati di Amazon Redshift a tipi di dati Python, consultare Tipi di dati delle funzioni definite dall'utente Python.

  2. La funzione esegue il programma Python, passando gli argomenti di input convertiti.

  3. Il codice Python restituisce un singolo valore. Il tipo di dati del valore restituito deve corrispondere al tipo di dati RETURNS specificato dalla definizione della funzione.

  4. La funzione converte il valore restituito da Python nel tipo di dati di Amazon Redshift specificato e quindi restituisce il valore alla query.

Nota

Python 3 non è disponibile per le UDF Python. Per ottenere il supporto di Python 3 per le UDF Amazon Redshift, utilizza invece UDF Lambda scalari.