使用查詢語法進行UDF查詢 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用查詢語法進行UDF查詢

USING EXTERNAL FUNCTION 子句會指定 UDF或多個 UDFs ,以供查詢中的後續SELECT陳述式參考。您需要 的方法名稱,UDF以及託管 的 Lambda 函數名稱UDF。您可以使用 Lambda 取代 Lambda 函數名稱ARN。在跨帳戶案例中,Lambda ARN是必要的。

概要

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)] [...]

參數

USING EXTERNAL FUNCTION UDF_name(variable1 data_type[, variable2 data_type][,...])

UDF_name 指定 的名稱UDF,其必須對應至參考 Lambda 函數內的 Java 方法。每個 都會variable data_type指定具名變數及其對應的資料類型,讓 UDF接受做為輸入。data_type 必須是下表中列出的其中一個支援的 Athena 資料類型,並對應至對應的 Java 資料類型。

Athena 資料類型 Java 資料類型

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 (請參閱RETURNS備註)

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 指定 UDF傳回為輸出的SQL資料類型。支援上表列出的 Athena 資料類型。對於 DECIMAL資料類型,請使用 語法,RETURNS DECIMAL(precision, scale)其中 precisionscale是整數。

LAMBDA 'lambda_function'

lambda_function 指定執行 時要叫用的 Lambda 函數名稱UDF。

SELECT [...] UDF_name(expression) [...]

將值傳遞至 UDF並傳回結果的SELECT查詢。 UDF_name會指定UDF要使用的 ,後面接著評估為傳遞值expression的 。傳遞和傳回的值必須符合子USING EXTERNAL FUNCTION句UDF中為 指定的對應資料類型。

範例

如需根據 上 AthenaUDFHandler.java 程式碼的查詢範例 GitHub,請參閱 GitHub Amazon Athena UDF 連接器頁面。