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 mithilfe der Abfragesyntax UDF
Die USING EXTERNAL FUNCTION
Klausel gibt eine UDF oder mehrere anUDFs, auf 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 das ARN Lambda verwenden. In kontenübergreifenden Szenarien ARN ist Lambda 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
- USING EXTERNAL FUNCTION
UDF_name
(variable1
data_type
[,variable2
data_type
][,...]) -
UDF_name
spezifiziert den Namen vonUDF, der einer Java-Methode innerhalb der referenzierten Lambda-Funktion entsprechen muss. Jedevariable data_type
gibt eine benannte Variable und den entsprechenden Datentyp an, den sie als Eingabe UDF akzeptiert. Derdata_type
muss 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
java.time. LocalDateTime () UTC
DATE
java.time. LocalDate () UTC
TINYINT
java.lang.Byte
SMALLINT
java.lang.Short
REAL
java.lang.Float
DOUBLE
java.lang.Double
DECIMAL(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>
- RETURNS
data_type
-
data_type
gibt den SQL Datentyp an, den der als Ausgabe UDF zurückgibt. Athena Datentypen, die in der obigen Tabelle aufgeführt sind, werden unterstützt. Verwenden Sie für denDECIMAL
Datentyp die Syntax,RETURNS DECIMAL(
wobeiprecision
,scale
)precision
und Ganzzahlenscale
sind. - LAMBDA '
lambda_function
' -
lambda_function
gibt den Namen der Lambda-Funktion an, die beim Ausführen von aufgerufen werden soll. UDF - SELECT [...]
UDF_name
(expression
) [...] -
Die
SELECT
Abfrage, die Werte an die übergibt UDF und ein Ergebnis zurückgibt.UDF_name
gibt die UDF zu verwendende an, gefolgt von einerexpression
, die ausgewertet wird, um Werte zu übergeben. Werte, die übergeben und zurückgegeben werden, müssen den entsprechenden Datentypen entsprechen, die UDF in derUSING EXTERNAL FUNCTION
Klausel für angegeben sind.
Beispiele
Beispiele für Abfragen, die auf dem thenaUDFHandlerA.java-Code