Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog
UDF de Python escalares
Una UDF de Python escalar incorpora un programa Python que se ejecuta cuando se llama a la función y se obtiene un solo valor. El comando CREATE FUNCTION define los siguientes parámetros:
-
Argumentos de entrada (opcionales). Cada argumento debe tener un nombre y un tipo de datos.
-
Un tipo de datos de retorno.
-
Un programa en Python ejecutable.
Los tipos de datos de entrada y devolución para las UDF de Python pueden ser cualquiera de los siguientes tipos:
SMALLINT
INTEGER
BIGINT
DECIMAL
REAL
DOUBLE PRECISION
BOOLEAN
CHAR
VARCHAR
DATE
TIMESTAMP
ANYELEMENT
Los alias para estos tipos también son válidos. Para obtener una lista completa de tipos de datos y los alias, consulte Tipos de datos.
Cuando las UDF de Python utilizan el tipo de datos ANYELEMENT, Amazon Redshift lo convierte automáticamente en un tipo de datos estándar basado en los argumentos proporcionados en tiempo de ejecución. Para obtener más información, consulte Tipo de datos ANYELEMENT.
Los siguientes pasos se producen durante el tiempo de ejecución cuando una consulta de Amazon Redshift llama a una UDF escalar:
-
La función convierte los argumentos de entrada a tipos de datos de Python.
Para la asignación de los tipos de datos de Amazon Redshift y los tipos de datos de Python, consulte Tipos de datos de UDF de Python.
-
La función ejecuta el programa en Python y pasa los argumentos de entrada convertidos.
-
El código en Python devuelve un valor único. El tipo de dato del valor de retorno debe coincidir con el tipo de dato RETURNS especificado por la definición de la función.
-
La función convierte el valor de retorno en Python al tipo de datos de Amazon Redshift especificado y, luego, devuelve ese valor a la consulta.
nota
Python 3 no está disponible para las UDF de Python. Para obtener compatibilidad con Python 3 para las UDF de Amazon Redshift, utilice UDF de Lambda escalares en su lugar.