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.
Exécutez des requêtes Athena avec Step Functions
Vous pouvez intégrer AWS Step Functions Amazon Athena pour démarrer et arrêter l'exécution des requêtes et obtenir les résultats des requêtes avec Step Functions. À l'aide de Step Functions, vous pouvez exécuter des requêtes de données ad hoc ou planifiées et récupérer des résultats ciblant vos lacs de données S3. Athena fonctionne sans serveur ; vous n'avez donc pas d'infrastructure à configurer ni à gérer, et vous ne payez que pour les requêtes que vous exécutez. Cette page répertorie les Athena prises en charge APIs et fournit un exemple d'Task
état pour démarrer une requête Athena.
Pour en savoir plus sur l'intégration aux AWS services dans Step Functions, reportez-vous Intégration des services aux sections etTransmission de paramètres à un service API dans Step Functions.
Principales fonctionnalités de l'intégration optimisée d'Athena
-
Le modèle Exécuter une tâche (.sync) d'intégration est pris en charge.
-
Il n'y a aucune optimisation pour le modèle Réponse à la requête d'intégration.
-
Le modèle Attendre un rappel avec un jeton de tâche d'intégration n'est pas pris en charge.
Pour intégrer AWS Step Functions Amazon Athena, vous utilisez l'intégration du service Athena fournie. APIs
L'intégration des services APIs est la même que celle de l'Athena APIs correspondante. Tous ne sont pas APIs compatibles avec tous les modèles d'intégration, comme le montre le tableau suivant.
API | Réponse à la requête | Exécuter une tâche (.sync) |
---|---|---|
StartQueryExecution |
Pris en charge | Pris en charge |
StopQueryExecution |
Pris en charge | Non pris en charge |
GetQueryExecution |
Pris en charge | Non pris en charge |
GetQueryResults |
Pris en charge | Non pris en charge |
Ce qui suit inclut un état de tâche qui lance une requête Athena.
"Start an Athena query": {
"Type": "Task",
"Resource": "arn:aws:states:::athena:startQueryExecution.sync",
"Parameters": {
"QueryString": "SELECT * FROM \"myDatabase\".\"myTable\" limit 1",
"WorkGroup": "primary",
"ResultConfiguration": {
"OutputLocation": "s3://amzn-s3-demo-bucket"
}
},
"Next": "Get results of the query"
}
Amazon APIs Athena pris en charge :
-
-
Paramètres pris en charge :
-
-
Paramètres pris en charge :
-
-
Paramètres pris en charge :
-
-
Paramètres pris en charge :
Note
Il existe un quota pour la taille maximale des données d'entrée ou de résultat pour une tâche dans Step Functions. Cela vous limite à 256 KiB de données sous forme de chaîne codée en UTF -8 lorsque vous envoyez ou recevez des données d'un autre service. Consultez Quotas liés aux exécutions par les machines de l'État.
IAMpolitiques relatives aux appels à Amazon Athena
Les exemples de modèles suivants montrent comment AWS Step Functions générer des IAM politiques basées sur les ressources de votre définition de machine à états. Pour plus d’informations, consultez Comment Step Functions génère IAM des politiques pour les services intégrés et Découvrez les modèles d'intégration des services dans Step Functions.
StartQueryExecution
Ressources statiques
Ressources dynamiques
StopQueryExecution
Ressources
{
"Version": "2012-10-17",
"Statement":[
{
"Effect": "Allow",
"Action": [
"athena:stopQueryExecution"
],
"Resource": [
"arn:aws:athena:{{region}}:{{accountId}}:workgroup/*"
]
}
]
}
GetQueryExecution
Ressources
{
"Version": "2012-10-17",
"Statement":[
{
"Effect": "Allow",
"Action": [
"athena:getQueryExecution"
],
"Resource": [
"arn:aws:athena:{{region}}:{{accountId}}:workgroup/*"
]
}
]
}
GetQueryResults
Ressources
{
"Version": "2012-10-17",
"Statement":[
{
"Effect": "Allow",
"Action": [
"athena:getQueryResults"
],
"Resource": [
"arn:aws:athena:{{region}}:{{accountId}}:workgroup/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}