使用帶有 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(variable1data_type[,variable2data_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;