Utilizzare ML con sintassi Athena - Amazon Athena

Utilizzare ML con sintassi Athena

La clausola USING EXTERNAL FUNCTION specifica un ML con funzione o più funzioni Athena a cui è possibile fare riferimento da un'istruzione SELECT successiva nella query. Definire il nome della funzione, i nomi delle variabili e i tipi di dati per le variabili e i valori restituiti.

Riepilogo

La seguente sintassi mostra una clausola USING EXTERNAL FUNCTION che specifica un ML con funzione Athena.

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

Parametri

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

ml_function_name definisce il nome della funzione, che può essere utilizzato nelle successive clausole di query. Ogni variabile data_type specifica una variabile denominata e il tipo di dati corrispondente, che il modello SageMaker AI accetta come input. Il tipo di dati specificato deve essere un tipo di dati Athena supportato.

RETURNS data_type

data_type specifica il tipo di dati SQL restituito da ml_function_name alla query come output del modello SageMaker AI.

SAGEMAKER 'sagemaker_endpoint'

sagemaker_endpoint specifica l'endpoint del modello SageMaker AI.

SELEZIONA [...] ml_function_name(expression) [...]

La query SELECT che trasmette valori alle variabili di funzione e il modello SageMaker AI per restituire un risultato. ml_function_name specifica la funzione definita in precedenza nella query, seguita da una espressione che viene valutata per trasmettere i valori. I valori passati e restituiti devono corrispondere ai tipi di dati corrispondenti specificati per la funzione nella clausola USING EXTERNAL FUNCTION.

Esempio

Nell'esempio seguente viene illustrata una query mediante ML con Athena.

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;