使用帶有 Athena 的機器學習 (ML) 語法 - Amazon Athena

使用帶有 Athena 的機器學習 (ML) 語法

USING EXTERNAL FUNCTION 子句會指定帶有一或多個 Athena 函數的機器學習 (ML),供查詢中的後續 SELECT 陳述句參考。您定義函數名稱、變數名稱,以及變數和傳回值的資料類型。

概要

下面的語法顯示了 USING EXTERNAL FUNCTION 子句,其會指定帶有 Athena 函數的機器學習 (ML)。

USING EXTERNAL FUNCTION ml_function_name (variable1 data_type[, variable2 data_type][,...]) RETURNS data_type SAGEMAKER 'sagemaker_endpoint' SELECT ml_function_name()

參數

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

ml_function_name 定義函數名稱,供後續查詢子句中使用。每個 variable data_type 指定具名變數及其相應的資料類型,供 SageMaker AI 模型接受作為輸入。指定的資料類型必須是支援的 Athena 資料類型。

RETURNS data_type

data_type 指定 ml_function_name 傳回給查詢的 SQL 資料類型,作為 SageMaker AI 模型的輸出。

SAGEMAKER 'sagemaker_endpoint'

sagemaker_endpoint 指定 SageMaker AI 模型的端點。

SELECT [...] ml_function_name(expression) [...]

將值傳遞給函式變數和 SageMaker AI 模型以傳回結果的 SELECT 查詢。ml_function_name 指定先前在查詢中定義的函式,後面的 expression 會經過評估以傳遞值。傳遞和傳回的值必須符合 USING EXTERNAL FUNCTION 子句中為函數指定的相應資料類型。

範例

下例範例示範一個搭配 Athena 使用機器學習 (ML) 的查詢。

USING EXTERNAL FUNCTION predict_customer_registration(age INTEGER) RETURNS DOUBLE SAGEMAKER 'xgboost-2019-09-20-04-49-29-303' SELECT predict_customer_registration(age) AS probability_of_enrolling, customer_id FROM "sampledb"."ml_test_dataset" WHERE predict_customer_registration(age) < 0.5;