Utilisation du Machine Learning (ML) avec Amazon Athena - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation du Machine Learning (ML) avec Amazon Athena

Le Machine Learning (ML) avec Amazon Athena vous permet d'utiliser Athena pour écrire des instructions SQL qui exécutent l'inférence du Machine Learning (ML) à l'aide d'Amazon. SageMaker Cette fonctionnalité simplifie l'accès aux modèles ML pour l'analyse des données, éliminant ainsi la nécessité d'utiliser des méthodes de programmation complexes pour exécuter l'inférence.

Pour utiliser ML avec Athena, vous définissez une fonction ML avec Athena avec la clause USING EXTERNAL FUNCTION. La fonction pointe vers le point de terminaison du SageMaker modèle que vous souhaitez utiliser et spécifie les noms des variables et les types de données à transmettre au modèle. Les clauses suivantes de la requête font référence à la fonction de transmission des valeurs au modèle. Le modèle exécute l'inférence en fonction des valeurs que la requête transmet, puis renvoie les résultats de l'inférence. Pour plus d'informations sur les SageMaker endpoints SageMaker et leur fonctionnement, consultez le manuel Amazon SageMaker Developer Guide.

Pour un exemple d'utilisation du machine learning avec Athena et de l' SageMaker inférence pour détecter une valeur anormale dans un ensemble de résultats, consultez l'article du blog AWS Big Data sur la détection de valeurs anormales en invoquant la fonction d'inférence d'apprentissage automatique Amazon Athena.

Considérations et restrictions

  • Régions disponibles — La fonctionnalité Athena ML est une fonctionnalité dans laquelle le moteur Régions AWS Athena version 2 ou ultérieure est pris en charge.

  • SageMaker le point de terminaison du modèle doit accepter et renvoyer text/csv — Pour plus d'informations sur les formats de données, consultez la section Formats de données courants pour l'inférence dans le manuel Amazon SageMaker Developer Guide.

  • Athena n'envoie pas d'en-têtes CSV — Si votre SageMaker point de terminaison l'esttext/csv, votre gestionnaire de saisie ne doit pas supposer que la première ligne de l'entrée est un en-tête CSV. Comme Athena n'envoie pas d'en-têtes CSV, la sortie renvoyée à Athena contiendra une ligne de moins que ce qu'Athena attend et générera une erreur.

  • SageMaker dimensionnement du point de terminaison : assurez-vous que le point de terminaison du SageMaker modèle référencé est suffisamment étendu pour les appels d'Athena au point de terminaison. Pour plus d'informations, consultez la section Mise à l'échelle automatique SageMaker des modèles dans le manuel Amazon SageMaker Developer Guide et CreateEndpointConfigdans le Amazon SageMaker API Reference.

  • Autorisations IAM — Pour exécuter une requête qui spécifie un ML avec la fonction Athena, le principal IAM qui exécute la requête doit être autorisé à effectuer l'action pour le point de terminaison sagemaker:InvokeEndpoint du modèle référencé. SageMaker Pour plus d’informations, consultez Autorisation d'accès pour ML avec Athena.

  • Les fonctions ML avec Athena ne peuvent pas être utilisées directement dans les clauses GROUP BY

ML avec syntaxe Athena

La clause USING EXTERNAL FUNCTION spécifie une fonction ML avec Athena ou plusieurs fonctions qui peuvent être référencées par une instruction SELECT ultérieure dans la requête. Vous définissez le nom de la fonction, les noms de variables et les types de données des variables et des valeurs de retour.

Résumé

La syntaxe suivante montre une USING EXTERNAL FUNCTION clause qui spécifie une fonction ML avec Athena.

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

Paramètres

UTILISATION DE LA FONCTION EXTERNE ml_function_nom (variable1 data_type[, variable2 data_type][,...])

ml_function_nom définit le nom de la fonction, qui peut être utilisé dans les clauses de requête suivantes. Chaque variable data_type spécifie une variable nommée et le type de données correspondant que le SageMaker modèle accepte en entrée. Le type de données spécifié doit être un type de données Athena pris en charge.

RETURNS type_données

data_type indique le type de données SQL que ml_function_name renvoie à la requête en sortie du modèle. SageMaker

SAGEMAKER 'sagemaker_endpoint'

sagemaker_endpoint indique le point final du modèle. SageMaker

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

La requête SELECT qui transmet des valeurs aux variables de fonction et au SageMaker modèle pour renvoyer un résultat. ml_function_name indique la fonction définie précédemment dans la requête, suivie d'une expression qui est évaluée pour transmettre des valeurs. Les valeurs transmises et renvoyées doivent correspondre aux types de données correspondants spécifiés pour la fonction dans la clause USING EXTERNAL FUNCTION.

Exemple

L'exemple suivant illustre une requête utilisant ML avec 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;

Exemples d'utilisation par les clients

Les vidéos suivantes, qui utilisent la version préliminaire de Machine Learning (ML) avec Amazon Athena, montrent comment vous pouvez utiliser SageMaker Athena.

Prédiction du taux de désabonnement des clients

La vidéo suivante montre comment associer Athena aux capacités d'apprentissage automatique d'Amazon SageMaker pour prévoir le taux de désabonnement des clients.

Détection des réseaux d'ordinateurs zombies

La vidéo suivante montre comment une entreprise utilise Amazon Athena et Amazon SageMaker pour détecter les botnets.