Abfrage mit UDF-Abfragesyntax - 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 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. Jede variable data_type gibt eine benannte Variable und den entsprechenden Datentyp an, den die UDF als Eingabe 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 (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_type gibt 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 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 der UDF aufgerufen werden soll.

WÄHLEN SIE [...] UDF_name(expression) [...]

Die SELECT Abfrage, die Werte an die UDF übergibt und ein Ergebnis zurückgibt. UDF_namegibt die zu verwendende UDF an, gefolgt von einer, expression die 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 der USING EXTERNAL FUNCTION-Klausel angegeben sind.

Beispiele

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