UDFs escalares do Python
Uma UDF Python escalar incorpora um programa Python que é executado quando a função é chamada e retorna um valor único. O comando CREATE FUNCTION define os seguintes parâmetros:
-
Argumentos de entrada (opcionais). Cada argumento deve ter um nome e um tipo de dados.
-
Um tipo de dados de retorno.
-
Um programa Python executável.
Os tipos de dados de entrada e retorno podem ser SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE ou TIMESTAMP. Além disso, UDFs Python podem usar o tipo de dados ANYELEMENT, que o Amazon Redshift converte automaticamente em um tipo de dados padrão com base nos argumentos fornecidos no tempo de execução. Para obter mais informações, consulte Tipo de dados ANYELEMENT.
Quando uma consulta do Amazon Redshift chama uma UDF escalar, as seguintes etapas ocorrem no tempo de execução:
-
A função converte os argumentos de entrada para tipos de dados Python.
Para obter um mapeamento de tipos de dados Amazon Redshift para tipos de dados Python, consulte Tipos de dados da UDF Python.
-
A função executa o programa Python, passando os argumentos de entrada convertidos.
-
O código Python retorna um único valor. O tipo de dados do valor de retorno deve corresponder ao tipo de dados de RETURNS especificado pela definição da função.
-
A função converte o valor de retorno do Python no tipo de dados Amazon Redshift especificado e, em seguida, retorna esse valor para a consulta.
nota
O Python 3 não está disponível para UDFs do Python. Para obter suporte ao Python 3 para UDFs do Amazon Redshift, use UDFs escalares do Lambda.