Exemples d’utilisation de l’AWS CLI avec Athena - AWS Command Line Interface

Exemples d’utilisation de l’AWS CLI avec Athena

Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’AWS Command Line Interface avec Athena.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L’exemple de code suivant montre comment utiliser batch-get-named-query.

AWS CLI

Pour renvoyer les informations concernant plusieurs requêtes

L’exemple batch-get-named-query suivant renvoie les informations sur les requêtes nommées ayant les ID spécifiés.

aws athena batch-get-named-query \ --named-query-ids a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 a1b2c3d4-5678-90ab-cdef-EXAMPLE33333

Sortie :

{ "NamedQueries": [ { "Name": "Flights Select Query", "Description": "Sample query to get the top 10 airports with the most number of departures since 2000", "Database": "sampledb", "QueryString": "SELECT origin, count(*) AS total_departures\nFROM\nflights_parquet\nWHERE year >= '2000'\nGROUP BY origin\nORDER BY total_departures DESC\nLIMIT 10;", "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "WorkGroup": "primary" }, { "Name": "Load flights table partitions", "Description": "Sample query to load flights table partitions using MSCK REPAIR TABLE statement", "Database": "sampledb", "QueryString": "MSCK REPAIR TABLE flights_parquet;", "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "WorkGroup": "primary" }, { "Name": "CloudFront Select Query", "Description": "Sample query to view requests per operating system during a particular time frame", "Database": "sampledb", "QueryString": "SELECT os, COUNT(*) count FROM cloudfront_logs WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05' GROUP BY os;", "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "WorkGroup": "primary" } ], "UnprocessedNamedQueryIds": [] }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez BatchGetNamedQuery dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser batch-get-query-execution.

AWS CLI

Pour renvoyer les informations concernant une ou plusieurs exécutions de requête

L’exemple batch-get-query-execution suivant renvoie les informations d’exécution des requêtes ayant les ID spécifiés.

aws athena batch-get-query-execution \ --query-execution-ids a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 a1b2c3d4-5678-90ab-cdef-EXAMPLE22222

Sortie :

{ "QueryExecutions": [ { "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Query": "create database if not exists webdata", "StatementType": "DDL", "ResultConfiguration": { "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.txt" }, "QueryExecutionContext": {}, "Status": { "State": "SUCCEEDED", "SubmissionDateTime": 1593470720.592, "CompletionDateTime": 1593470720.902 }, "Statistics": { "EngineExecutionTimeInMillis": 232, "DataScannedInBytes": 0, "TotalExecutionTimeInMillis": 310, "ResultConfiguration": { "QueryQueueTimeInMillis": 50, "ServiceProcessingTimeInMillis": 28 }, "WorkGroup": "AthenaAdmin" }, { "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Query": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10", "StatementType": "DML", "ResultConfiguration": { "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222.csv" }, "QueryExecutionContext": { "Database": "mydatabase", "Catalog": "awsdatacatalog" }, "Status": { "State": "SUCCEEDED", "SubmissionDateTime": 1593469842.665, "CompletionDateTime": 1593469846.486 }, "Statistics": { "EngineExecutionTimeInMillis": 3600, "DataScannedInBytes": 203089, "TotalExecutionTimeInMillis": 3821, "QueryQueueTimeInMillis": 267, "QueryPlanningTimeInMillis": 1175 }, "WorkGroup": "AthenaAdmin" } ], "UnprocessedQueryExecutionIds": [] }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez BatchGetQueryExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser create-data-catalog.

AWS CLI

Pour créer un catalogue de données

L’exemple create-data-catalog suivant crée le catalogue de données dynamo_db_catalog.

aws athena create-data-catalog \ --name dynamo_db_catalog \ --type LAMBDA \ --description "DynamoDB Catalog" \ --parameters function=arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda

Cette commande ne produit aucune sortie. Pour voir le résultat, utilisez aws athena get-data-catalog --name dynamo_db_catalog.

Pour plus d’informations, consultez Enregistrement d’un catalogue : create-data-catalog dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez CreateDataCatalog dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser create-named-query.

AWS CLI

Pour créer une requête nommée

L’exemple create-named-query suivant crée une requête enregistrée dans le groupe de travail AthenaAdmin qui interroge la table flights_parquet concernant les vols entre Seattle et New York en janvier 2016 dont le départ et l’arrivée ont tous deux été retardés de plus de dix minutes. Les valeurs du code d’aéroport figurant dans la table étant des chaînes comportant des guillemets doubles (par exemple "SEA"), elles sont échappées par des barres obliques inverses et entourées de guillemets simples.

aws athena create-named-query \ --name "SEA to JFK delayed flights Jan 2016" \ --description "Both arrival and departure delayed more than 10 minutes." \ --database sampledb \ --query-string "SELECT flightdate, carrier, flightnum, origin, dest, depdelayminutes, arrdelayminutes FROM sampledb.flights_parquet WHERE yr = 2016 AND month = 1 AND origin = '\"SEA\"' AND dest = '\"JFK\"' AND depdelayminutes > 10 AND arrdelayminutes > 10" \ --work-group AthenaAdmin

Sortie :

{ "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez CreateNamedQuery dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser create-work-group.

AWS CLI

Pour créer un groupe de travail

L’exemple create-work-group suivant crée un groupe de travail appelé Data_Analyst_Group dont l’emplacement de sortie des résultats de la requête est s3://amzn-s3-demo-bucket. La commande crée un groupe de travail qui remplace les paramètres de configuration du client, y compris l’emplacement de sortie des résultats de la requête. La commande active également les métriques CloudWatch et ajoute trois paires de balises clé-valeur au groupe de travail pour le distinguer des autres groupes de travail. Notez que l’argument --configuration ne comporte aucun espace avant les virgules qui séparent ses options.

aws athena create-work-group \ --name Data_Analyst_Group \ --configuration ResultConfiguration={OutputLocation="s3://amzn-s3-demo-bucket"},EnforceWorkGroupConfiguration="true",PublishCloudWatchMetricsEnabled="true" \ --description "Workgroup for data analysts" \ --tags Key=Division,Value=West Key=Location,Value=Seattle Key=Team,Value="Big Data"

Cette commande ne produit aucune sortie. Pour voir les résultats, utilisez aws athena get-work-group --work-group Data_Analyst_Group.

Pour plus d’informations, consultez Gestion des groupes de travail dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez CreateWorkGroup dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-data-catalog.

AWS CLI

Pour supprimer un catalogue de données

L’exemple delete-data-catalog suivant supprime le catalogue de données UnusedDataCatalog.

aws athena delete-data-catalog \ --name UnusedDataCatalog

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Suppression d’un catalogue : delete-data-catalog dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez DeleteDataCatalog dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-named-query.

AWS CLI

Pour supprimer une requête nommée

L’exemple delete-named-query suivant supprime la requête nommée qui possède l’ID spécifié.

aws athena delete-named-query \ --named-query-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez DeleteNamedQuery dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-work-group.

AWS CLI

Pour supprimer un groupe de travail

L’exemple delete-work-group suivant supprime le groupe de travail TeamB.

aws athena delete-work-group \ --work-group TeamB

Cette commande ne produit aucune sortie. Pour confirmer la suppression, utilisez aws athena list-work-groups.

Pour plus d’informations, consultez Gestion des groupes de travail dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez DeleteWorkGroup dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-data-catalog.

AWS CLI

Pour renvoyer les informations sur un catalogue de données

L’exemple get-data-catalog suivant renvoie les informations sur le catalogue de données dynamo_db_catalog.

aws athena get-data-catalog \ --name dynamo_db_catalog

Sortie :

{ "DataCatalog": { "Name": "dynamo_db_catalog", "Description": "DynamoDB Catalog", "Type": "LAMBDA", "Parameters": { "catalog": "dynamo_db_catalog", "metadata-function": "arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda", "record-function": "arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda" } } }

Pour plus d’informations, consultez Afficher les détails du catalogue : get-data-catalog dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetDataCatalog dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-database.

AWS CLI

Pour renvoyer les informations sur une base de données dans un catalogue de données

L’exemple get-database suivant renvoie les informations sur la base de données sampledb du catalogue de données AwsDataCatalog.

aws athena get-database \ --catalog-name AwsDataCatalog \ --database-name sampledb

Sortie :

{ "Database": { "Name": "sampledb", "Description": "Sample database", "Parameters": { "CreatedBy": "Athena", "EXTERNAL": "TRUE" } } }

Pour plus d’informations, consultez Afficher les détails de la base de données : get-database dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetDatabase dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-named-query.

AWS CLI

Pour renvoyer une requête nommée

L’exemple get-named-query suivant renvoie les informations sur la requête ayant l’ID spécifié.

aws athena get-named-query \ --named-query-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Sortie :

{ "NamedQuery": { "Name": "CloudFront Logs - SFO", "Description": "Shows successful GET request data for SFO", "Database": "default", "QueryString": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10", "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "WorkGroup": "AthenaAdmin" } }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetNamedQuery dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-query-execution.

AWS CLI

Pour renvoyer les informations sur l’exécution d’une requête

L’exemple get-query-execution suivant renvoie les informations sur la requête ayant l’ID spécifié.

aws athena get-query-execution \ --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Sortie :

{ "QueryExecution": { "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Query": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET ' and status = 200 and location like 'SFO%' limit 10", "StatementType": "DML", "ResultConfiguration": { "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.csv" }, "QueryExecutionContext": { "Database": "mydatabase", "Catalog": "awsdatacatalog" }, "Status": { "State": "SUCCEEDED", "SubmissionDateTime": 1593469842.665, "CompletionDateTime": 1593469846.486 }, "Statistics": { "EngineExecutionTimeInMillis": 3600, "DataScannedInBytes": 203089, "TotalExecutionTimeInMillis": 3821, "QueryQueueTimeInMillis": 267, "QueryPlanningTimeInMillis": 1175 }, "WorkGroup": "AthenaAdmin" } }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetQueryExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-query-results.

AWS CLI

Pour renvoyer les résultats d’une requête

L’exemple get-query-results suivant renvoie les résultats de la requête ayant l’ID spécifié.

aws athena get-query-results \ --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Sortie :

{ "ResultSet": { "Rows": [ { "Data": [ { "VarCharValue": "date" }, { "VarCharValue": "location" }, { "VarCharValue": "browser" }, { "VarCharValue": "uri" }, { "VarCharValue": "status" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Safari" }, { "VarCharValue": "/test-image-2.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Opera" }, { "VarCharValue": "/test-image-2.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Firefox" }, { "VarCharValue": "/test-image-3.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Lynx" }, { "VarCharValue": "/test-image-3.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "IE" }, { "VarCharValue": "/test-image-2.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Opera" }, { "VarCharValue": "/test-image-1.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Chrome" }, { "VarCharValue": "/test-image-3.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Firefox" }, { "VarCharValue": "/test-image-2.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "Chrome" }, { "VarCharValue": "/test-image-3.jpeg" }, { "VarCharValue": "200" } ] }, { "Data": [ { "VarCharValue": "2014-07-05" }, { "VarCharValue": "SFO4" }, { "VarCharValue": "IE" }, { "VarCharValue": "/test-image-2.jpeg" }, { "VarCharValue": "200" } ] } ], "ResultSetMetadata": { "ColumnInfo": [ { "CatalogName": "hive", "SchemaName": "", "TableName": "", "Name": "date", "Label": "date", "Type": "date", "Precision": 0, "Scale": 0, "Nullable": "UNKNOWN", "CaseSensitive": false }, { "CatalogName": "hive", "SchemaName": "", "TableName": "", "Name": "location", "Label": "location", "Type": "varchar", "Precision": 2147483647, "Data": [ "Scale": 0, "Nullable": "UNKNOWN", "CaseSensitive": true }, { "CatalogName": "hive", "SchemaName": "", "TableName": "", "Name": "browser", "Label": "browser", "Type": "varchar", "Precision": 2147483647, "Scale": 0, "Nullable": "UNKNOWN", "CaseSensitive": true }, { "CatalogName": "hive", "SchemaName": "", "TableName": "", "Name": "uri", "Label": "uri", "Type": "varchar", "Precision": 2147483647, "Scale": 0, "Nullable": "UNKNOWN", "CaseSensitive": true }, { "CatalogName": "hive", "SchemaName": "", "TableName": "", "Name": "status", "Label": "status", "Type": "integer", "Precision": 10, "Scale": 0, "Nullable": "UNKNOWN", "CaseSensitive": false } ] } }, "UpdateCount": 0 }

Pour plus d’informations, consultez Utilisation des résultats de requêtes, des fichiers de sortie et de l’historique des requêtes dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetQueryResults dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-table-metadata.

AWS CLI

Pour renvoyer des informations de métadonnées concernant une table

L’exemple get-table-metadata suivant renvoie les informations de métadonnées relatives à la table counties, notamment les noms de colonnes et leurs types de données, à partir de la base de données sampledb du catalogue de données AwsDataCatalog.

aws athena get-table-metadata \ --catalog-name AwsDataCatalog \ --database-name sampledb \ --table-name counties

Sortie :

{ "TableMetadata": { "Name": "counties", "CreateTime": 1593559968.0, "LastAccessTime": 0.0, "TableType": "EXTERNAL_TABLE", "Columns": [ { "Name": "name", "Type": "string", "Comment": "from deserializer" }, { "Name": "boundaryshape", "Type": "binary", "Comment": "from deserializer" }, { "Name": "motto", "Type": "string", "Comment": "from deserializer" }, { "Name": "population", "Type": "int", "Comment": "from deserializer" } ], "PartitionKeys": [], "Parameters": { "EXTERNAL": "TRUE", "inputformat": "com.esri.json.hadoop.EnclosedJsonInputFormat", "location": "s3://amzn-s3-demo-bucket/json", "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "serde.param.serialization.format": "1", "serde.serialization.lib": "com.esri.hadoop.hive.serde.JsonSerde", "transient_lastDdlTime": "1593559968" } } }

Pour plus d’informations, consultez Afficher les détails de la table : get-table-metadata dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetTableMetadata dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-work-group.

AWS CLI

Pour renvoyer les informations sur un groupe de travail

L’exemple get-work-group suivant renvoie les informations sur le groupe de travail AthenaAdmin.

aws athena get-work-group \ --work-group AthenaAdmin

Sortie :

{ "WorkGroup": { "Name": "AthenaAdmin", "State": "ENABLED", "Configuration": { "ResultConfiguration": { "OutputLocation": "s3://amzn-s3-demo-bucket/" }, "EnforceWorkGroupConfiguration": false, "PublishCloudWatchMetricsEnabled": true, "RequesterPaysEnabled": false }, "Description": "Workgroup for Athena administrators", "CreationTime": 1573677174.105 } }

Pour plus d’informations, consultez Gestion des groupes de travail dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez GetWorkGroup dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-data-catalogs.

AWS CLI

Pour répertorier les catalogues de données enregistrés avec Athena

L’exemple list-data-catalogs suivant répertorie les catalogues de données enregistrés avec Athena.

aws athena list-data-catalogs

Sortie :

{ "DataCatalogsSummary": [ { "CatalogName": "AwsDataCatalog", "Type": "GLUE" }, { "CatalogName": "cw_logs_catalog", "Type": "LAMBDA" }, { "CatalogName": "cw_metrics_catalog", "Type": "LAMBDA" } ] }

Pour plus d’informations, consultez Liste des catalogues enregistrés : list-data-catalogs dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListDataCatalogs dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-databases.

AWS CLI

Pour répertorier les bases de données dans un catalogue de données

L’exemple list-databases suivant répertorie les bases de données dans le catalogue de données AwsDataCatalog.

aws athena list-databases \ --catalog-name AwsDataCatalog

Sortie :

{ "DatabaseList": [ { "Name": "default" }, { "Name": "mydatabase" }, { "Name": "newdb" }, { "Name": "sampledb", "Description": "Sample database", "Parameters": { "CreatedBy": "Athena", "EXTERNAL": "TRUE" } }, { "Name": "webdata" } ] }

Pour plus d’informations, consultez Liste des bases de données dans un catalogue : list-databases dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListDatabases dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-named-queries.

AWS CLI

Pour répertorier les requêtes nommées pour un groupe de travail

L’exemple list-named-queries suivant répertorie les requêtes nommées pour le groupe de travail AthenaAdmin.

aws athena list-named-queries \ --work-group AthenaAdmin

Sortie :

{ "NamedQueryIds": [ "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333" ] }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListNamedQueries dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-query-executions.

AWS CLI

Pour répertorier l’ID des requêtes d’un groupe de travail spécifié

L’exemple list-query-executions suivant répertorie un maximum de 10 ID de requête dans le groupe de travail AthenaAdmin.

aws athena list-query-executions \ --work-group AthenaAdmin \ --max-items 10

Sortie :

{ "QueryExecutionIds": [ "a1b2c3d4-5678-90ab-cdef-EXAMPLE11110", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11114", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11115", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11116", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11117", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11118", "a1b2c3d4-5678-90ab-cdef-EXAMPLE11119" ], "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxMH0=" }

Pour plus d’informations, consultez Utilisation des résultats de requêtes, des fichiers de sortie et de l’historique des requêtes dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListQueryExecutions dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-table-metadata.

AWS CLI

Pour répertorier les métadonnées des tables dans la base de données spécifiée d’un catalogue de données

L’exemple list-table-metadata suivant renvoie les informations de métadonnées pour un maximum de deux tables dans la base de données geography du catalogue de données AwsDataCatalog.

aws athena list-table-metadata \ --catalog-name AwsDataCatalog \ --database-name geography \ --max-items 2

Sortie :

{ "TableMetadataList": [ { "Name": "country_codes", "CreateTime": 1586553454.0, "TableType": "EXTERNAL_TABLE", "Columns": [ { "Name": "country", "Type": "string", "Comment": "geo id" }, { "Name": "alpha-2 code", "Type": "string", "Comment": "geo id2" }, { "Name": "alpha-3 code", "Type": "string", "Comment": "state name" }, { "Name": "numeric code", "Type": "bigint", "Comment": "" }, { "Name": "latitude", "Type": "bigint", "Comment": "location (latitude)" }, { "Name": "longitude", "Type": "bigint", "Comment": "location (longitude)" } ], "Parameters": { "areColumnsQuoted": "false", "classification": "csv", "columnsOrdered": "true", "delimiter": ",", "has_encrypted_data": "false", "inputformat": "org.apache.hadoop.mapred.TextInputFormat", "location": "s3://amzn-s3-demo-bucket/csv/countrycode", "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "serde.param.field.delim": ",", "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "skip.header.line.count": "1", "typeOfData": "file" } }, { "Name": "county_populations", "CreateTime": 1586553446.0, "TableType": "EXTERNAL_TABLE", "Columns": [ { "Name": "id", "Type": "string", "Comment": "geo id" }, { "Name": "country", "Name": "id2", "Type": "string", "Comment": "geo id2" }, { "Name": "county", "Type": "string", "Comment": "county name" }, { "Name": "state", "Type": "string", "Comment": "state name" }, { "Name": "population estimate 2018", "Type": "string", "Comment": "" } ], "Parameters": { "areColumnsQuoted": "false", "classification": "csv", "columnsOrdered": "true", "delimiter": ",", "has_encrypted_data": "false", "inputformat": "org.apache.hadoop.mapred.TextInputFormat", "location": "s3://amzn-s3-demo-bucket/csv/CountyPopulation", "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "serde.param.field.delim": ",", "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "skip.header.line.count": "1", "typeOfData": "file" } } ], "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }

Pour plus d’informations, consultez Affichage des métadonnées pour toutes les tables d’une base de données : list-table-metadata dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListTableMetadata dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-tags-for-resource.

AWS CLI

Exemple 1 : pour répertorier les balises d’un groupe de travail

L’exemple list-tags-for-resource suivant répertorie les balises du groupe de travail Data_Analyst_Group.

aws athena list-tags-for-resource \ --resource-arn arn:aws:athena:us-west-2:111122223333:workgroup/Data_Analyst_Group

Sortie :

{ "Tags": [ { "Key": "Division", "Value": "West" }, { "Key": "Team", "Value": "Big Data" }, { "Key": "Location", "Value": "Seattle" } ] }

Exemple 2 : pour répertorier les balises d’un catalogue de données

L’exemple list-tags-for-resource suivant répertorie les balises du catalogue de données dynamo_db_catalog.

aws athena list-tags-for-resource \ --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog

Sortie :

{ "Tags": [ { "Key": "Division", "Value": "Mountain" }, { "Key": "Organization", "Value": "Retail" }, { "Key": "Product_Line", "Value": "Shoes" }, { "Key": "Location", "Value": "Denver" } ] }

Pour plus d’informations, consultez Liste des identifications d’une ressource : list-tags-for-resource dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListTagsForResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-work-groups.

AWS CLI

Pour répertorier des groupes de travail

L’exemple list-work-groups suivant répertorie les groupes de travail du compte actuel.

aws athena list-work-groups

Sortie :

{ "WorkGroups": [ { "Name": "Data_Analyst_Group", "State": "ENABLED", "Description": "", "CreationTime": 1578006683.016 }, { "Name": "AthenaAdmin", "State": "ENABLED", "Description": "", "CreationTime": 1573677174.105 }, { "Name": "primary", "State": "ENABLED", "Description": "", "CreationTime": 1567465222.723 } ] }

Pour plus d’informations, consultez Gestion des groupes de travail dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez ListWorkGroups dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser start-query-execution.

AWS CLI

Exemple 1 : pour exécuter une requête dans un groupe de travail sur la table spécifiée dans la base de données et le catalogue de données spécifiés

L’exemple start-query-execution suivant utilise le groupe de travail AthenaAdmin pour exécuter une requête sur la table cloudfront_logs dans la base de données cflogsdatabase du catalogue de données AwsDataCatalog.

aws athena start-query-execution \ --query-string "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10" \ --work-group "AthenaAdmin" \ --query-execution-context Database=cflogsdatabase,Catalog=AwsDataCatalog

Sortie :

{ "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

Exemple 2 : pour exécuter une requête utilisant un groupe de travail spécifié afin de créer une base de données dans le catalogue de données spécifié

L’exemple start-query-execution suivant utilise le groupe de travail AthenaAdmin pour créer la base de données newdb dans le catalogue de données AwsDataCatalog par défaut.

aws athena start-query-execution \ --query-string "create database if not exists newdb" \ --work-group "AthenaAdmin"

Sortie :

{ "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11112" }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

Exemple 3 : pour exécuter une requête qui crée une vue sur une table dans la base de données et le catalogue de données spécifiés

L’exemple start-query-execution suivant utilise une instruction SELECT sur la table cloudfront_logs dans la base de données cflogsdatabase afin de créer la vue cf10.

aws athena start-query-execution \ --query-string "CREATE OR REPLACE VIEW cf10 AS SELECT * FROM cloudfront_logs limit 10" \ --query-execution-context Database=cflogsdatabase

Sortie :

{ "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11113" }

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez StartQueryExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser stop-query-execution.

AWS CLI

Pour arrêter une requête en cours d’exécution

L’exemple stop-query-execution suivant arrête la requête qui possède l’ID de requête spécifié.

aws athena stop-query-execution \ --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Exécution de requêtes SQL à l’aide d’Amazon Athena dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez StopQueryExecution dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser tag-resource.

AWS CLI

Ajout d’une balise à une ressource

L’exemple tag-resource suivant ajoute trois balises au catalogue de données dynamo_db_catalog.

aws athena tag-resource \ --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog \ --tags Key=Organization,Value=Retail Key=Division,Value=Mountain Key=Product_Line,Value=Shoes Key=Location,Value=Denver

Cette commande ne produit aucune sortie. Pour voir le résultat, utilisez aws athena list-tags-for-resource --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog.

Pour plus d’informations, consultez Ajout d’identifications à une ressource : tag-resource dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez TagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser untag-resource.

AWS CLI

Pour supprimer une balise d’une ressource

L’exemple untag-resource suivant supprime les clés Specialization et Focus, et leurs valeurs associées, de la ressource de catalogue de données dynamo_db_catalog.

aws athena untag-resource \ --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog \ --tag-keys Specialization Focus

Cette commande ne produit aucune sortie. Pour afficher les résultats, utilisez la commande list-tags-for-resource.

Pour plus d’informations, consultez Suppression d’identifications d’une ressource : untag-resource dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez UntagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser update-data-catalog.

AWS CLI

Pour mettre à jour un catalogue de données

L’exemple update-data-catalog suivant met à jour la fonction Lambda et la description du catalogue de données cw_logs_catalog.

aws athena update-data-catalog \ --name cw_logs_catalog \ --type LAMBDA \ --description "New CloudWatch Logs Catalog" \ --function=arn:aws:lambda:us-west-2:111122223333:function:new_cw_logs_lambda

Cette commande ne produit aucune sortie. Pour voir le résultat, utilisez aws athena get-data-catalog --name cw_logs_catalog.

Pour plus d’informations, consultez Mise à jour d’un catalogue : update-data-catalog dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez UpdateDataCatalog dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser update-work-group.

AWS CLI

Pour mettre à jour un groupe de travail

L’exemple update-work-group suivant désactive le groupe de travail Data_Analyst_Group. Les utilisateurs ne peuvent pas exécuter ni créer de requêtes dans le groupe de travail désactivé, mais ils peuvent toujours consulter les métriques, les contrôles des limites d’utilisation des données, les paramètres du groupe de travail, l’historique des requêtes et les requêtes enregistrées.

aws athena update-work-group \ --work-group Data_Analyst_Group \ --state DISABLED

Cette commande ne produit aucune sortie. Pour vérifier le changement d’état, utilisez aws athena get-work-group --work-group Data_Analyst_Group et vérifiez la propriété State dans la sortie.

Pour plus d’informations, consultez Gestion des groupes de travail dans le Guide de l’utilisateur Amazon Athena.

  • Pour plus de détails sur l’API, consultez UpdateWorkGroup dans la Référence des commandes de l’AWS CLI.