Ejemplos de Athena que utilizan la AWS CLI - AWS Command Line Interface

Ejemplos de Athena que utilizan la AWS CLI

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar situaciones comunes usando la AWS Command Line Interface con Athena.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar batch-get-named-query.

AWS CLI

Para obtener información sobre más de una consulta

En el siguiente ejemplo de batch-get-named-query, se ofrece información sobre las consultas con nombre que tienen los ID especificados.

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

Salida:

{ "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": [] }

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte BatchGetNamedQuery en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar batch-get-query-execution.

AWS CLI

Para obtener información sobre una o más ejecuciones de consulta

En el siguiente ejemplo de batch-get-query-execution, se ofrece información de la ejecución de las consultas que tienen los ID de consulta especificados.

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

Salida:

{ "QueryExecutions": [ { "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Query": "create database if not exists webdata", "StatementType": "DDL", "ResultConfiguration": { "OutputLocation": "s3://awsdoc-example-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://awsdoc-example-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": [] }

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte BatchGetQueryExecution en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-data-catalog.

AWS CLI

Creación de un catálogo de datos

En el siguiente ejemplo de create-data-catalog, se crea el catálogo de datos 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

Este comando no genera ninguna salida. Para ver el resultado, utilice aws athena get-data-catalog --name dynamo_db_catalog.

Para obtener más información, consulte Registro de un catálogo: create-data-catalog en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte CreateDataCatalog en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-named-query.

AWS CLI

Creación de una consulta con nombre

En el siguiente ejemplo de create-named-query, se crea una consulta guardada en el grupo de trabajo AthenaAdmin que consulta la tabla flights_parquet sobre los vuelos de Seattle a Nueva York en enero de 2016 cuya salida y llegada se retrasaron más de diez minutos. Como los valores de los códigos de aeropuerto de la tabla son cadenas que incluyen comillas dobles (por ejemplo, SEA), aparecen separados por barras diagonales invertidas y entre comillas 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

Salida:

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

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte CreateNamedQuery en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-work-group.

AWS CLI

Creación de un grupo de trabajo

En el siguiente ejemplo de create-work-group, se crea un grupo de trabajo denominado Data_Analyst_Group que tiene la ubicación de salida de los resultados de la consulta s3://awsdoc-example-bucket. El comando crea un grupo de trabajo que anula los ajustes de configuración del cliente, lo que incluye la ubicación de salida de los resultados de la consulta. El comando también habilita las métricas de CloudWatch y añade tres pares de etiquetas clave-valor al grupo de trabajo para distinguirlo de otros grupos de trabajo. Tenga en cuenta que el argumento --configuration no tiene espacios antes de las comas que separan sus opciones.

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

Este comando no genera ninguna salida. Para ver los resultados, utilice aws athena get-work-group --work-group Data_Analyst_Group.

Para obtener más información, consulte Administración de los grupos de trabajo en la Guía del usuario de Amazon Athena.

  • Para obtener más información sobre la API, consulte CreateWorkGroup en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-data-catalog.

AWS CLI

Eliminación de un catálogo de datos

En el siguiente ejemplo de delete-data-catalog, se elimina el catálogo de datos UnusedDataCatalog.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Eliminación de un catálogo: delete-data-catalog en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte DeleteDataCatalog en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-named-query.

AWS CLI

Eliminación de una consulta con nombre

En el siguiente ejemplo de delete-named-query, se elimina la consulta con nombre que tiene el ID especificado.

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

Este comando no genera ninguna salida.

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte DeleteNamedQuery en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-work-group.

AWS CLI

Eliminación de un grupo de trabajo

En el siguiente ejemplo de delete-work-group, se elimina el grupo de trabajo TeamB.

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

Este comando no genera ninguna salida. Para confirmar la eliminación, utilice aws athena list-work-groups.

Para obtener más información, consulte Administración de los grupos de trabajo en la Guía del usuario de Amazon Athena.

  • Para obtener más información sobre la API, consulte DeleteWorkGroup en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-data-catalog.

AWS CLI

Para obtener información sobre un catálogo de datos

En el siguiente ejemplo de get-data-catalog, se obtiene información sobre el catálogo de datos dynamo_db_catalog.

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

Salida:

{ "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" } } }

Para obtener más información, consulte Visualización de los detalles del catálogo: get-data-catalog en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte GetDataCatalog en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-database.

AWS CLI

Para obtener información sobre una base de datos en un catálogo de datos

El siguiente ejemplo de get-database, se obtiene información sobre la base de datos sampledb del catálogo de datos AwsDataCatalog.

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

Salida:

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

Para obtener más información, consulte Visualización de los detalles del catálogo: get-data-catalog en la Guía del usuario de Amazon Athena.

  • Para obtener más información sobre la API, consulte GetDatabase en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-named-query.

AWS CLI

Devolución de una consulta con nombre

En el siguiente ejemplo de get-named-query, se ofrece información sobre la consulta con el ID especificado.

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

Salida:

{ "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" } }

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte GetNamedQuery en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-query-execution.

AWS CLI

Para obtener información sobre una ejecución de consulta

En el siguiente ejemplo de get-query-execution, se ofrece información sobre la consulta con el ID de consulta especificado.

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

Salida:

{ "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://awsdoc-example-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" } }

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte GetQueryExecution en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-query-results.

AWS CLI

Para obtener los resultados de una consulta

En el siguiente ejemplo de get-query-results, se ofrecen los resultados de la consulta con el ID de consulta especificado.

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

Salida:

{ "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 }

Para obtener más información, consulte Trabajo con resultados de la consulta y consultas recientes en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte GetQueryResults en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-table-metadata.

AWS CLI

Para obtener información de metadatos sobre una tabla

En el siguiente ejemplo de get-table-metadata, se obtiene información de metadatos sobre la tabla counties, incluidos los nombres de las columnas y sus tipos de datos, de la base de datos sampledb del catálogo de datos AwsDataCatalog.

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

Salida:

{ "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://awsdoc-example-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" } } }

Para obtener más información, consulte Visualización de los detalles de la tabla: get-table-metadata en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte GetTableMetadata en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-work-group.

AWS CLI

Para obtener información sobre un grupo de trabajo

En el siguiente ejemplo de get-work-group, se obtiene información sobre el grupo de trabajo AthenaAdmin.

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

Salida:

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

Para obtener más información, consulte Administración de los grupos de trabajo en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte GetWorkGroup en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-data-catalogs.

AWS CLI

Generación de una lista de catálogos de datos registrados en Athena

En el siguiente ejemplo de list-data-catalogs, se genera una lista de los catálogos de datos registrados en Athena.

aws athena list-data-catalogs

Salida:

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

Para obtener más información, consulte Enumeración de los catálogos registrados: list-data-catalogs en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte ListDataCatalogs en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-databases.

AWS CLI

Generación de una lista de bases de datos en un catálogo de datos

En el siguiente ejemplo de list-databases, se genera una lista de las bases de datos en el catálogo de datos AwsDataCatalog.

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

Salida:

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

Para obtener más información, consulte Enumeración de las bases de datos de un catálogo: list-databases en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte ListDatabases en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-named-queries.

AWS CLI

Generación de una lista de consultas con nombre de un grupo de trabajo

En el siguiente ejemplo de list-named-queries, se genera una lista de las consultas con nombre del grupo de trabajo AthenaAdmin.

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

Salida:

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

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte ListNamedQueries en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-query-executions.

AWS CLI

Generación de una lista de ID de consulta de las consultas de un grupo de trabajo especificado

En el siguiente ejemplo de list-query-executions, se genera una lista de un máximo de diez ID de consulta en el grupo de trabajo AthenaAdmin.

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

Salida:

{ "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=" }

Para obtener más información, consulte Trabajo con resultados de la consulta y consultas recientes en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte ListQueryExecutions en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-table-metadata.

AWS CLI

Generación de una lista de los metadatos de las tablas de la base de datos especificada de un catálogo de datos

En el siguiente ejemplo de list-table-metadata; se obtiene información de metadatos de un máximo de dos tablas en la base de datos geography del catálogo de datos AwsDataCatalog.

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

Salida:

{ "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://awsdoc-example-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://awsdoc-example-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==" }

Para obtener más información, consulte Visualización de los metadatos de todas las tablas de una base de datos: list-table-metadata en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte ListTableMetadata en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-tags-for-resource.

AWS CLI

Ejemplo 1: cómo generar una lista de las etiquetas de un grupo de trabajo

En el siguiente ejemplo de list-tags-for-resource, se genera una lista de las etiquetas del grupo de trabajo Data_Analyst_Group.

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

Salida:

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

Ejemplo 2: cómo generar una lista de las etiquetas de un catálogo de datos

En el ejemplo siguiente de list-tags-for-resource, se genera una lista de las etiquetas del catálogo de datos dynamo_db_catalog.

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

Salida:

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

Para obtener más información, consulte Descripción de las etiquetas de un recurso: list-tags-for-resource en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte ListTagsForResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-work-groups.

AWS CLI

Generación de lista de grupos de trabajo

En el siguiente ejemplo de list-work-groups, se genera una lista de los grupos de trabajo en la cuenta actual.

aws athena list-work-groups

Salida:

{ "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 } ] }

Para obtener más información, consulte Administración de los grupos de trabajo en la Guía del usuario de Amazon Athena.

  • Para obtener detalles de la API, consulte ListWorkGroups en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar start-query-execution.

AWS CLI

Ejemplo 1: cómo ejecutar una consulta en un grupo de trabajo en la tabla especificada de la base de datos y el catálogo de datos especificados

En el siguiente ejemplo de start-query-execution, se utiliza el grupo de trabajo AthenaAdmin para ejecutar una consulta en la tabla cloudfront_logs de la cflogsdatabase del catálogo de datos 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

Salida:

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

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

Ejemplo 2: ejecutar una consulta que utilice el grupo de trabajo especificado para crear una base de datos en el catálogo de datos especificado

En el siguiente ejemplo de start-query-execution, se utiliza el grupo de trabajo AthenaAdmin para crear la base de datos newdb en el catálogo de datos predeterminado AwsDataCatalog.

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

Salida:

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

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

Ejemplo 3: cómo ejecutar una consulta que cree una vista en una tabla de la base de datos y el catálogo de datos especificados

En el siguiente ejemplo de start-query-execution, se utiliza una instrucción SELECT en la tabla cloudfront_logs de la cflogsdatabase para crear la vista 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

Salida:

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

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte StartQueryExecution en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar stop-query-execution.

AWS CLI

Detención de una consulta en curso

En el siguiente ejemplo de stop-query-execution, se detiene la consulta con el ID de consulta especificado.

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

Este comando no genera ninguna salida.

Si desea obtener más información, consulte Ejecución de consultas SQL mediante Amazon Athena en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte StopQueryExecution en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar tag-resource.

AWS CLI

Cómo añadir una etiqueta a un recurso

En el siguiente ejemplo de tag-resource, se agregan tres etiquetas al catálogo de datos 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

Este comando no genera ninguna salida. Para ver el resultado, utilice aws athena list-tags-for-resource --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog.

Para obtener más información, consulte Adición de etiquetas a un recurso: tag-resource en la Guía del usuario de Amazon Athena.

  • Para ver los detalles de la API, consulte TagResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar untag-resource.

AWS CLI

Para eliminar una etiqueta de un recurso

En el ejemplo siguiente de untag-resource, se eliminan las claves Specialization y Focus y sus valores asociados del recurso de catálogo de datos dynamo_db_catalog.

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

Este comando no genera ninguna salida. Para ver los resultados, use el comando list-tags-for-resource.

Para obtener más información, consulte Eliminación de las etiquetas de un recurso: untag-resource: untag-resource en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte UntagResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-data-catalog.

AWS CLI

Actualización de un catálogo de datos

En el siguiente ejemplo de update-data-catalog, se actualiza la función de Lambda y la descripción del catálogo de datos 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

Este comando no genera ninguna salida. Para ver el resultado, utilice aws athena get-data-catalog --name cw_logs_catalog.

Para obtener más información, consulte Actualización de un catálogo: update-data-catalog en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte UpdateDataCatalog en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-work-group.

AWS CLI

Actualización de un grupo de trabajo

En el siguiente ejemplo de update-work-group, se actualiza el grupo de trabajo Data_Analyst_Group. Los usuarios no pueden ejecutar ni crear consultas en el grupo de trabajo deshabilitado, pero sí pueden ver las métricas, los controles de los límites de uso de datos, la configuración del grupo de trabajo, el historial de consultas y las consultas guardadas.

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

Este comando no genera ninguna salida. Para comprobar el cambio de estado, utilice aws athena get-work-group --work-group Data_Analyst_Group y compruebe la propiedad State en la salida.

Para obtener más información, consulte Administración de los grupos de trabajo en la Guía del usuario de Amazon Athena.

  • Para obtener información sobre la API, consulte UpdateWorkGroup en la Referencia de comandos de la AWS CLI.