Trabajar con los resultados de las consultas, las consultas recientes y los archivos de salida - Amazon Athena

Trabajar con los resultados de las consultas, las consultas recientes y los archivos de salida

Amazon Athena almacena de forma automática los resultados y la información de metadatos de cada consulta que se ejecuta en una ubicación de resultados de consulta que puede especificar en Amazon S3. Si es necesario, puede obtener acceso a los archivos de esta ubicación para trabajar con ellos. También puede descargar archivos de resultados de consultas directamente desde la consola de Athena.

Para configurar una ubicación de resultados de consulta de Amazon S3 por primera vez, consulte Especificación de una ubicación de resultados de consulta mediante la consola de Athena.

Los archivos de salida se guardan de forma automática en cada consulta que se realiza. Para acceder a los archivos de salida de consulta y verlos, las entidades principales de IAM (usuarios y roles) necesitan permiso para la acción GetObject de Amazon S3 para la ubicación del resultado de la consulta, así como el permiso para la acción GetQueryResults de Athena. La ubicación del resultado de la consulta puede estar cifrada. Si la ubicación está cifrada, los usuarios deben tener los permisos de clave adecuados para cifrar y descifrar la ubicación del resultado de la consulta.

importante

Las entidades principales de IAM con permiso para la acción GetObject de Amazon S3 para la ubicación del resultado de la consulta pueden recuperar los resultados de la consulta de Amazon S3, incluso si se deniega el permiso para la acción GetQueryResults de Athena.

Especificación de una ubicación de resultados de consulta

La ubicación de los resultados de la consulta que Athena utiliza viene determinada por una combinación de configuración del grupo de trabajo y la configuración del lado del cliente. La configuración del lado del cliente se basa en cómo se ejecuta la consulta.

  • Si ejecuta la consulta con la consola de Athena, la ubicación del resultado de la consulta, ingresada en Settings (Configuración) en la barra de navegación, determina la configuración del lado del cliente.

  • Si ejecuta la consulta con la API de Athena, el parámetro OutputLocation de la acción StartQueryExecution determina la configuración del lado del cliente.

  • Si utiliza los controladores ODBC o JDBC para ejecutar consultas, la propiedad S3OutputLocation especificada en la URL de conexión determina la configuración del lado del cliente.

importante

Cuando se ejecuta una consulta con la API o con el controlador ODBC o JDBC, la configuración de la consola no se aplica.

Cada configuración de grupo de trabajo tiene una opción Override client-side settings (Anular configuración del lado del cliente) que se puede habilitar. Cuando esta opción está habilitada, la configuración del grupo de trabajo prevalece sobre la configuración del lado del cliente aplicable cuando una entidad principal de IAM asociada a ese grupo de trabajo ejecuta la consulta.

Especificación de una ubicación de resultados de consulta mediante la consola de Athena

Antes de poder ejecutar una consulta, se debe especificar una ubicación de bucket de resultado de consulta en Amazon S3 o debe utilizar un grupo de trabajo que tenga especificado un bucket y cuya configuración sobrescriba la configuración del cliente.

Para especificar una ubicación de resultados de consulta de configuración del lado del cliente mediante la consola de Athena

  1. Cambie al grupo de trabajo para el que desea especificar una ubicación de resultados de consulta. El nombre del grupo de trabajo predeterminado es Primary (Principal).

  2. En la barra de navegación, elija Settings (Configuración).

  3. En la barra de navegación, elija Manage (Administrar).

  4. Para Manage settings (Administrar configuraciones), realice una de las siguientes operaciones:

    • En el cuadro de texto Location of query result (Ubicación de los resultados de la consulta), ingrese la ruta de acceso al bucket que creó en Amazon S3 para los resultados de la consulta. Prefije la ruta con s3://.

    • Elija Browse S3 (Navegar S3), elija el bucket de Amazon S3 que creó para su región actual y, a continuación, elija Choose (Elegir).

    
                            Especifique la ubicación en Amazon S3 en la que desea recibir los resultados de la consulta de Athena.
    nota

    Si utiliza un grupo de trabajo que especifica una ubicación del resultado de la consulta para todos los usuarios del grupo de trabajo, la opción de cambiar la ubicación del resultado de la consulta no estará disponible.

Ubicaciones predeterminadas creadas anteriormente

Anteriormente en Athena, si se ejecutaba una consulta sin especificar un valor para la Query result location (Ubicación del resultado de la consulta) y un grupo de trabajo no anulaba la configuración de la ubicación del resultado de la consulta, Athena creaba una ubicación predeterminada. La ubicación predeterminada era aws-athena-query-results-MyAcctID-MyRegion, donde MyAcctID era el ID de cuenta de Amazon Web Services de la entidad principal de IAM que ejecutaba la consulta y MyRegion era la región donde se ejecutaba la consulta (por ejemplo, us-west-1).

Ahora, antes de poder ejecutar una consulta de Athena en una región en la que su cuenta no haya utilizado Athena anteriormente, debe especificar una ubicación de resultado de la consulta o utilizar un grupo de trabajo que anule la configuración de ubicación del resultado de la consulta. Aunque Athena ya no crea una ubicación predeterminada de resultados de consulta, las ubicaciones aws-athena-query-results-MyAcctID-MyRegion predeterminadas creadas anteriormente siguen siendo válidas y puede seguir utilizándolas.

Especificación de una ubicación de resultados de consulta mediante un grupo de trabajo

Puede especificar la ubicación del resultado de la consulta en una configuración de grupo de trabajo mediante la AWS Management Console, la AWS CLI o la API de Athena.

Al utilizar AWS CLI, especifique la ubicación del resultado de la consulta con el parámetro OutputLocation de la opción --configuration cuando ejecute el comando aws athena create-work-group o el aws athena update-work-group.

Para especificar la ubicación del resultado de la consulta para un grupo de trabajo mediante la consola de Athena

  1. Si el panel de navegación no está visible en la consola de Athena, elija el menú de expansión de la izquierda.

    
                            Elija el menú de expansión.
  2. En el panel de navegación, elija Workgroups (Grupos de trabajo).

  3. En la lista de grupos de trabajo, elija el enlace del grupo de trabajo que desea editar.

  4. Elija Edit.

  5. Para Ubicación de resultados de consulta y cifrado, realice una de las siguientes operaciones:

    • En el cuadro Location of query result (Ubicación del resultado de la consulta), ingrese la ruta a un bucket en Amazon S3 para los resultados de su consulta. Prefije la ruta con s3://.

    • Elija Browse S3 (Examinar S3), elija el bucket de Amazon S3 de la región actual que desea utilizar y, a continuación, elija Choose.(Elegir).

  6. Si desea solicitar a todos los usuarios del grupo de trabajo que utilicen la ubicación de los resultados de la consulta especificada, desplácese hacia abajo hasta la sección de Settings (Configuración) y seleccione Override client-side settings (Anular la configuración del lado del cliente).

  7. Elija Save changes.

Descarga de archivos de resultados de consultas mediante la consola de Athena

Puede descargar el archivo CSV de resultados de la consulta desde el panel de consulta inmediatamente después de ejecutar una consulta. También puede descargar resultados de consultas recientes desde la pestaña Recent queries (Consultas recientes).

nota

Los archivos de resultados de la consulta de Athena son archivos de datos que contienen información que los usuarios pueden configurar. Algunos programas que se utilizan para leer y analizar esta información podrían interpretar estos datos como comandos (inyección CSV). Por este motivo, al importar datos de CSV de resultados de consulta a un programa de hoja de cálculo, este programa podría advertirle acerca de problemas de seguridad. Para mantener el sistema seguro, siempre debe optar por desactivar enlaces o macros de los resultados de consulta descargados.

Para ejecutar una consulta y descargar los resultados de la consulta

  1. Ingrese la consulta en el editor de consultas y, a continuación, elija Run (Ejecutar).

    Cuando la consulta termina de ejecutarse, el panel Results (Resultados) muestra los resultados de la consulta.

  2. Para descargar un archivo CSV de los resultados de la consulta, elija Download results (Descargar resultados) encima del panel de resultados de la consulta. En función del navegador y su configuración, es posible que tenga que confirmar la descarga.

    
                        Guardar resultados de consulta en un archivo .csv en la consola de Athena.

Para descargar un archivo de resultados de consulta para una consulta anterior

  1. Elija Recent queries (Consultas recientes).

    
                        Elija Recent queries (Consultas recientes) para ver las consultas anteriores.
  2. Utilice el cuadro de búsqueda para encontrar la consulta, seleccione la consulta y, a continuación, elija Download results (Descargar resultados). Las consultas se conservan durante 45 días.

    
                        Elija Recent queries (Consultas recientes) para buscar y descargar los resultados de consultas anteriores.

Vista de consultas recientes

Puede utilizar la consola de Athena para ver qué consultas se han realizado correctamente o cuáles han fallado y ver los detalles de error de las consultas que han fallado. Athena conserva el historial de consultas durante 45 días.

Para ver consultas recientes en la consola de Athena

  1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

  2. Elija Recent queries (Consultas recientes). En la pestaña Recent queries (Consultas recientes) se muestra información sobre cada consulta ejecutada.

  3. Para abrir una instrucción de consulta en el editor de consultas, elija el ID de ejecución de la consulta.

    
                        Elija el ID de ejecución de una consulta para verla en el editor de consultas.
  4. Para ver los detalles de una consulta que ha fallado, seleccione el enlace Failed (Error) para la consulta.

    
                        Elija el enlace Failed (Error) para ver la información sobre el error.
  5. Para configurar las opciones de la pestaña Recent queries (Consultas recientes), como las columnas que se mostrarán y el ajuste del texto, seleccione el botón de opciones (icono de engranaje).

    
                        Elija el botón de opciones para configurar la visualización de las consultas recientes.
  6. En el cuadro Preferences (Preferencias), elija el número de filas por página, el comportamiento de ajuste de líneas y las columnas que desea mostrar.

    
                        Configure la visualización de consultas recientes.
  7. Elija Confirm.

Conservar el historial de consultas durante más de 45 días

Si desea mantener el historial de consultas durante más de 45 días, puede recuperarlo y guardarlo en un almacén de datos como Amazon S3. Para automatizar este proceso, puede usar acciones de la API y comandos de la CLI de Athena y Amazon S3. En el siguiente procedimiento se resumen estos pasos.

Para recuperar y guardar el historial de consultas mediante programación

  1. Utilice la acción de la API de Athena ListQueryExecutions o el comando de la CLI list-query-executions para recuperar los ID de consulta.

  2. Utilice la acción de la API de Athena GetQueryExecution o el comando de la CLI get-query-execution para recuperar información sobre cada consulta en función de su ID.

  3. Utilice la acción de la API de Amazon S3 PutObject o el comando de la CLI put-object para guardar la información en Amazon S3.

Búsqueda de archivos de salida de consulta en Amazon S3

Los archivos de salida de la consulta se almacenan en subcarpetas en Amazon S3 con el siguiente patrón de ruta, a menos que la consulta se produzca en un grupo de trabajo cuya configuración invalida la configuración del lado del cliente. Cuando la configuración del grupo de trabajo invalida la configuración del lado del cliente, la consulta utiliza la ruta de resultados especificada por el grupo de trabajo.

QueryResultsLocationInS3/[QueryName|Unsaved/yyyy/mm/dd/]
  • QueryResultsLocationInS3 es la ubicación del resultado de la consulta especificada por la configuración del grupo de trabajo o la configuración del lado del cliente. Para obtener más información, consulte Especificación de una ubicación de resultados de consulta más adelante en este documento.

  • Las siguientes subcarpetas se crean solo para las consultas ejecutadas desde la consola cuya ruta de resultados no ha sido invalidada por la configuración del grupo de trabajo. Las consultas que se ejecutan desde la AWS CLI o mediante la API de Athena se guardan directamente en QueryResultsLocationInS3.

    • QueryName es el nombre de la consulta cuyos resultados se guardan. Si la consulta se ejecutó pero no se guardó, se utiliza Unsaved.

    • aaaa/mm/dd es la fecha de ejecución de la consulta.

Los archivos asociados con una consulta CREATE TABLE AS SELECTse almacenan en una subcarpeta tables del patrón anterior.

Identificación de archivos de salida de consultas

Los archivos se guardan en la ubicación de resultados de las consultas de Amazon S3 en función del nombre, el ID y la fecha de ejecución de la consulta. A los archivos de cada consulta se les asigna nombre utilizando el QueryID, que es un identificador único que Athena asigna a cada consulta cuando se ejecuta.

Se guardan los siguientes tipos de archivos:

Tipo de archivo Patrones de nomenclatura de archivos Descripción

Archivos de resultados de consulta

QueryID.csv

QueryID.txt

Los archivos de resultados de consulta DML se guardan en un formato de valores separados por comas (CSV).

Los resultados de la consulta DDL se guardan como archivos de texto sin formato.

Puede descargar los archivos de resultados desde el panel Results (Resultados) de la consola cuando utilice la consola o desde el historial de consultas. Para obtener más información, consulte Descarga de archivos de resultados de consultas mediante la consola de Athena.

Archivos de metadatos de consulta

QueryID.csv.metadata

QueryID.txt.metadata

Los archivos de metadatos de consulta DML y DDL se guardan en formato binario y no son legibles por el usuario. La extensión del archivo corresponde al archivo de resultados de consulta relacionado. Athena utiliza los metadatos al leer los resultados de la consulta mediante la acción GetQueryResults. Aunque estos archivos se pueden eliminar, no lo recomendamos porque se pierde información importante sobre la consulta.

Archivos de manifiesto de datos

QueryID-manifest.csv

Los archivos de manifiesto de datos se generan para realizar un seguimiento de los archivos que Athena crea en las ubicaciones de origen de datos de Amazon S3 cuando se ejecuta una consulta INSERT INTO. Si se produce un error en una consulta, el manifiesto también realiza un seguimiento de los archivos que la consulta pretendía escribir. El manifiesto resulta útil para identificar los archivos que se quedaron huérfanos tras una consulta fallida.

Identificación de la ubicación de salida y los archivos de resultados de la consulta con la AWS CLI

Para utilizar la AWS CLI para identificar la ubicación de salida y los archivos de resultados de la consulta, ejecute el comando aws athena get-query-execution, como se muestra en el ejemplo siguiente. Sustituya abc1234d-5efg-67hi-jklm-89n0op12qr34 por el ID de la consulta.

aws athena get-query-execution --query-execution-id abc1234d-5efg-67hi-jklm-89n0op12qr34

El comando devuelve un resultado similar al siguiente. Para ver una descripción de cada parámetro de salida, consulte get-query-execution en la Referencia de comandos de la AWS CLI.

{ "QueryExecution": { "Status": { "SubmissionDateTime": 1565649050.175, "State": "SUCCEEDED", "CompletionDateTime": 1565649056.6229999 }, "Statistics": { "DataScannedInBytes": 5944497, "DataManifestLocation": "s3://aws-athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34-manifest.csv", "EngineExecutionTimeInMillis": 5209 }, "ResultConfiguration": { "EncryptionConfiguration": { "EncryptionOption": "SSE_S3" }, "OutputLocation": "s3://aws-athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34" }, "QueryExecutionId": "abc1234d-5efg-67hi-jklm-89n0op12qr34", "QueryExecutionContext": {}, "Query": "INSERT INTO mydb.elb_log_backup SELECT * FROM mydb.elb_logs LIMIT 100", "StatementType": "DML", "WorkGroup": "primary" } }