Abfrage mithilfe der Abfragesyntax UDF - Amazon Athena

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_namespezifiziert den Namen vonUDF, der einer Java-Methode innerhalb der referenzierten Lambda-Funktion entsprechen muss. Jede variable data_type gibt eine benannte Variable und den entsprechenden Datentyp an, den sie als Eingabe UDF akzeptiert. Der data_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_typegibt 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 den DECIMAL Datentyp die Syntax, RETURNS DECIMAL(precision, scale) wobei precision und Ganzzahlen scale sind.

LAMBDA 'lambda_function'

lambda_functiongibt 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_namegibt 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 der USING EXTERNAL FUNCTION Klausel für angegeben sind.

Beispiele

Beispiele für Abfragen, die auf dem thenaUDFHandlerA.java-Code auf basieren GitHub, finden Sie auf der GitHub Amazon Athena UDF Athena-Connector-Seite.