Interrogation avec des fonctions définies par l’utilisateur - Amazon Athena

Interrogation avec des fonctions définies par l’utilisateur

Les fonctions définies par l'utilisateur (UDF) dans Amazon Athena vous permettent de créer des fonctions personnalisées pour traiter des registres ou des groupes de registres. Une UDF accepte les paramètres, effectue le travail, puis renvoie un résultat.

Pour utiliser une UDF dans Athena, vous écrivez une clause USING EXTERNAL FUNCTION avant une instruction SELECT dans une requête SQL. L'instruction SELECT fait référence à l'UDF et définit les variables qui sont transmises à l'UDF lors de l'exécution de la requête. La requête SQL appelle une fonction Lambda en utilisant le moteur d'exécution Java lorsqu'elle invoque l'UDF. Les UDF sont définies dans la fonction Lambda en tant que méthodes dans un package de déploiement Java. Plusieurs UDF peuvent être définies dans le même package de déploiement Java pour une fonction Lambda. Vous spécifiez également le nom de la fonction Lambda dans la clause USING EXTERNAL FUNCTION.

Vous disposez de deux options pour déployer une fonction Lambda pour les UDF Athena. Vous pouvez déployer la fonction directement en utilisant Lambda, ou vous pouvez utiliser le AWS Serverless Application Repository. Pour rechercher les fonctions Lambda existantes pour les UDF, vous pouvez effectuer une recherche dans le référentiel AWS Serverless Application Repository public ou dans votre référentiel privé, puis effectuer le déploiement sur Lambda. Vous pouvez également créer ou modifier le code source Java, le packager dans un fichier JAR et le déployer à l'aide de Lambda ou du AWS Serverless Application Repository. Pour des exemples de code source Java et de packages pour vous aider à démarrer, voir Création et déploiement d’une UDF à l’aide de Lambda. Pour plus d'informations sur Lambda, consultez le Guide du développeur AWS Lambda. Pour plus d'informations sur AWS Serverless Application Repository, consultez le Manuel du développeur AWS Serverless Application Repository.

Pour un exemple qui utilise les UDF avec Athena pour traduire et analyser du texte, consultez l'article du blog AWS Machine Learning intitulé Traduction et analyse de texte à l'aide de fonctions SQL avec Amazon Athena, Amazon Translate et Amazon Comprehend, ou regardez la vidéo video.

Pour un exemple d'utilisation des UDF pour étendre les requêtes géospatiales dans Amazon Athena, consultez Étendre les requêtes géospatiales dans Amazon Athena avec des UDF et AWS Lambda sur le blog AWS Big Data.