Uso de Machine Learning (ML) con Amazon Athena
Machine Learning (ML) con Amazon Athena puede escribir instrucciones SQL que ejecutan la inferencia de Machine Learning (ML) mediante Amazon SageMaker. Esta característica simplifica el acceso a los modelos ML para el análisis de datos y elimina la necesidad de utilizar métodos de programación complejos para ejecutar la inferencia.
Para utilizar ML con Athena, defina una función de ML con Athena con la cláusula USING EXTERNAL
FUNCTION
. La función apunta al punto de enlace del modelo SageMaker que desea utilizar y especifica los nombres de variables y los tipos de datos para pasar al modelo. Las cláusulas posteriores de la consulta hacen referencia a la función para pasar valores al modelo. El modelo ejecuta la inferencia basada en los valores que pasa la consulta y, a continuación, devuelve resultados de inferencia. Para obtener más información acerca de SageMaker y cómo funcionan los puntos de enlace de SageMaker, consulte la Guía para desarrolladores de Amazon SageMaker.
Para ver un ejemplo que utiliza ML con la inferencia de Athena y SageMaker para detectar un valor anómalo en un conjunto de resultados, consulte el artículo del blog de big data de AWS Detección de valores anómalos invocando la función de inferencia de machine learning de Amazon Athena
Condiciones y limitaciones
-
Regiones disponibles: la característica de ML de Athena está disponible en las Regiones de AWS en las que se admite la versión 2 o una versión posterior del motor Athena.
-
El punto de conexión del modelo de SageMaker debe aceptar y devolver
text/csv
: para obtener más información sobre los formatos de datos, consulte Formatos de datos comunes para inferencia en la Guía para desarrolladores de Amazon SageMaker. -
Escalado de puntos de enlace de SageMaker: asegúrese de que el punto de enlace del modelo de SageMaker al que se hace referencia esté suficientemente escalado para las llamadas de Athena al punto de enlace. Para obtener más información, consulte Escalado automático de modelos de SageMaker en la Guía para desarrolladores de Amazon SageMaker y CreateEndpointConfig en la Referencia de la API de Amazon SageMaker.
-
Permisos de IAM: para ejecutar una consulta que especifica una función de ML con Athena, la entidad principal de IAM que ejecuta la consulta debe tener permiso para realizar la acción
sagemaker:InvokeEndpoint
para el punto de enlace del modelo de SageMaker al que se hace referencia. Para obtener más información, consulte Permiso de acceso para ML con Athena. -
Las funciones de ML con Athena no pueden utilizarse en las cláusulas
GROUP BY
directamente.
ML con sintaxis de Athena
La cláusula USING EXTERNAL FUNCTION
especifica una función o varias funciones de ML con Athena a las que se puede hacer referencia mediante una instrucción SELECT
posterior en la consulta. Defina el nombre de la función, los nombres de las variables y los tipos de datos para las variables y los valores de devolución.
Sinopsis
La siguiente sintaxis muestra una cláusula USING EXTERNAL FUNCTION
que especifica una función de ML con Athena.
USING EXTERNAL FUNCTION ml_function_name
(variable1
data_type
[, variable2
data_type
][,...])
RETURNS data_type
SAGEMAKER 'sagemaker_endpoint
'
SELECT ml_function_name
()
Parámetros
- USING EXTERNAL FUNCTION
ml_function_name
(variable1
data_type
[,variable2
data_type
][,...]) -
ML_Function_name
define el nombre de la función, que se puede utilizar en las cláusulas de consulta posteriores. Cadavariable data_type
especifica una variable con nombre con su tipo de datos correspondiente, que el modelo de SageMaker puede aceptar como entrada. El tipo de datos especificado debe ser un tipo de datos de Athena admitido. - RETURNS
data_type
-
data_type
especifica el tipo de datos SQL queml_function_name
devuelve a la consulta como salida del modelo de SageMaker. - SAGEMAKER '
sagemaker_endpoint
' -
sagemaker_endpoint
especifica el punto de enlace del modelo de SageMaker. - SELECT [...]
ml_function_name
(expression
) [...] -
La consulta SELECT que pasa valores a variables de función y al modelo de SageMaker para devolver un resultado.
ml_function_name
especifica la función definida anteriormente en la consulta, seguida de unaexpresión
que se evalúa para pasar valores. Los valores que se pasan y se devuelven deben coincidir con los tipos de datos correspondientes especificados para la función en la cláusulaUSING EXTERNAL FUNCTION
.
Ejemplo
En el ejemplo siguiente se muestra una consulta 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;
Ejemplos de usos de clientes
En los siguientes videos, que utilizan la versión preliminar de Machine Learning (ML) con Amazon Athena, se muestran formas en las que puede utilizar SageMaker con Athena.
Predicción del abandono de clientes
En el siguiente video se muestra cómo combinar Athena con las capacidades de machine learning de Amazon SageMaker para predecir el abandono del cliente.
Detección de botnets
En el siguiente video se muestra cómo una empresa utiliza Amazon Athena y Amazon SageMaker para detectar botnets.