Python scalaire UDFs - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Python scalaire UDFs

Une fonction scalaire Python définie par l'utilisateur intègre un programme Python qui s'exécute lorsque la fonction est appelée et renvoie une valeur unique. La commande CREATE FUNCTION définit les paramètres suivants :

  • (Facultatif) Arguments d'entrée. Chaque argument doit disposer d'un nom et d'un type de données.

  • Un type de données de retour.

  • Un programme Python exécutable.

Les types de données entrant et de retour peuvent être SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE ou TIMESTAMP. En outre, Python UDFs peut utiliser le type de données ANYELEMENT, qu'Amazon Redshift convertit automatiquement en un type de données standard en fonction des arguments fournis lors de l'exécution. Pour plus d’informations, consultez Type de données ANYELEMENT.

Lorsqu'une requête Amazon Redshift appelle une fonction UDF scalaire, les étapes suivantes se produisent au moment de l'exécution :

  1. La fonction convertit les arguments d'entrée en types de données Python.

    Pour un mappage des types de données Amazon Redshift avec les types de données Python, consultez Types de données de fonctions Python définies par l'utilisateur.

  2. La fonction exécute le programme Python, en transmettant les arguments d'entrée convertis.

  3. Le code Python renvoie une valeur unique. Le type de données de la valeur de retour doit correspondre au type de données RETURNS spécifié par la définition de fonction.

  4. La fonction convertit la valeur de retour Python dans le type de données Amazon Redshift, puis renvoie cette valeur à la requête.

Note

Python 3 n'est pas disponible pour Python UDFs. Pour obtenir le support de Python 3 pour Amazon Redshift UDFs, utilisez Lambda scalaire UDFs plutôt.