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.
Abfrage mit UDF-Abfragesyntax
Die USING EXTERNAL FUNCTION Klausel gibt eine oder mehrere UDFs an, auf UDFs die in einer nachfolgenden SELECT Anweisung in der Abfrage verwiesen werden kann. Sie benötigen den Methodennamen für die UDF und den Namen der Lambda-Funktion, die die UDF hostet. Anstelle des Lambda-Funktionsnamens können Sie den Lambda-ARN verwenden. In kontenübergreifenden Szenarien ist der Lambda-ARN erforderlich.
Syntax
USING EXTERNAL FUNCTION UDF_name(variable1 data_type[, variable2 data_type][,...])
RETURNS data_type
LAMBDA 'lambda_function_name_or_ARN'
[, EXTERNAL FUNCTION UDF_name2(variable1 data_type[, variable2 data_type][,...])
RETURNS data_type
LAMBDA 'lambda_function_name_or_ARN'[,...]]
SELECT [...] UDF_name(expression) [, UDF_name2(expression)] [...]
Parameter
- VERWENDUNG DER EXTERNEN FUNKTION
UDF_name(variable1data_type[,variable2data_type] [,...]) -
UDF_namegibt den Namen der UDF an, der einer Java-Methode innerhalb der referenzierten Lambda-Funktion entsprechen muss. Jedevariable data_typegibt eine benannte Variable und den entsprechenden Datentyp an, den die UDF als Eingabe akzeptiert. Derdata_typemuss einer der unterstützten Athena-Datentypen sein, die in der folgenden Tabelle aufgeführt sind und dem entsprechenden Java-Datentyp zugeordnet sein.Athena-Datentyp Java-Datentyp TIMESTAMP (ZEITSTEMPEL)
java.time. LocalDateTime (UTC)
DATUM
java.time. LocalDate (UTC)
TINYINT
java.lang.Byte
SMALLINT
java.lang.Short
REAL
java.lang.Float
DOUBLE
java.lang.Double
DECIMALE (siehe
RETURNS-Hinweis)java.math. BigDecimal
BIGINT
java.lang.Long
INTEGER
java.lang.Int
VARCHAR
java.lang.String
VARBINARY
byte[]
BOOLEAN
java.lang.Boolean
ARRAY
java.util.List
ROW
java.util.Map<String, Object>
- RÜCKSENDUNGEN
data_type -
data_typegibt den SQL-Datentyp an, den die UDF als Ausgabe zurückgibt. Athena Datentypen, die in der obigen Tabelle aufgeführt sind, werden unterstützt. Verwenden Sie für denDECIMALDatentyp die Syntax,RETURNS DECIMAL(wobeiprecision,scale)precisionund Ganzzahlenscalesind. - LAMBDA ''
lambda_function -
lambda_functiongibt den Namen der Lambda-Funktion an, die beim Ausführen der UDF aufgerufen werden soll. - WÄHLEN SIE [...]
UDF_name(expression) [...] -
Die
SELECTAbfrage, die Werte an die UDF übergibt und ein Ergebnis zurückgibt.UDF_namegibt die zu verwendende UDF an, gefolgt von einer,expressiondie ausgewertet wird, um Werte zu übergeben. Werte, die übergeben und zurückgegeben werden, müssen mit den entsprechenden Datentypen übereinstimmen, die für die UDF in derUSING EXTERNAL FUNCTION-Klausel angegeben sind.
Beispiele
Beispiele für Abfragen, die auf dem UDFHandlerAthena-.java-Code