Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blogbeitrag
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Python-UDF-Datentypen
Python UDFs kann jeden standardmäßigen Amazon Redshift Redshift-Datentyp für die Eingabeargumente und den Rückgabewert der Funktion verwenden. UDFs Unterstützt zusätzlich zu den Standarddatentypen den Datentyp ANYELEMENT, den Amazon Redshift auf der Grundlage der zur Laufzeit bereitgestellten Argumente automatisch in einen Standarddatentyp konvertiert. Scalar UDFs kann den Datentyp ANYELEMENT zurückgeben. Weitere Informationen finden Sie unter Datentyp ANYELEMENT.
Während der Ausführung konvertiert Amazon Redshift die Argumente von Amazon-Redshift-Datentypen zu Python-Datentypen zur Verarbeitung. Anschließend wird der Rückgabewert vom Python-Datentyp in den entsprechenden Amazon-Redshift-Datentyp konvertiert. Weitere Informationen zu Amazon-Redshift-Datentypen finden Sie unter Datentypen.
Die folgende Tabelle enthält eine Zuordnung von Amazon-Redshift-Datentypen und Python-Datentypen.
Amazon-Redshift-Datentyp | Python-Datentyp |
---|---|
smallint integer bigint short long |
int |
decimal oder numeric |
Dezimalwert |
double real |
float |
Boolean |
bool |
char varchar |
string |
timestamp |
datetime |
Datentyp ANYELEMENT
ANYELEMENT ist ein polymorpher Datentyp. Wenn eine Funktion unter Verwendung von ANYELEMENT für den Datentyp eines Arguments deklariert wird, kann die Funktion alle Amazon-Redshift-Standarddatentypen als Eingabe für das betreffende Argument akzeptieren, wenn die Funktion aufgerufen wird. Der ANYELEMENT-Parameter wird auf den übergebenen Datentyp gesetzt, wenn die Funktion aufgerufen wird.
Wenn eine Funktion mehrere ANYELEMENT-Datentypen verwendet, werden sie beim Funktionsaufruf alle in denselben Datentyp aufgelöst. Alle ANYELEMENT-Parameter werden auf den Datentyp gesetzt, in den der erste übergebene ANYELEMENT-Parameter aufgelöst wird. Wenn eine Funktion beispielsweise als f_equal(anyelement, anyelement)
deklariert ist, kann sie zwei beliebige Eingabewerte entgegennehmen, solange diese vom selben Datentyp sind.
Wenn Sie eine Funktion selbst als ANYELEMENT deklarieren, muss mindestens einer der Eingabeparameter vom Typ ANYELEMENT sein. Der tatsächliche Datentyp für den Rückgabewert ist identisch mit dem tatsächlichen Datentyp, der für das ANYELEMENT-Eingabeargument bereitgestellt wird.