

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Consulta de informes de costos y usos con Amazon Athena
<a name="cur-query-athena"></a>

Amazon Athena es un servicio de consultas sin servidor que puede utilizar para analizar los datos de sus informes de AWS costes y uso (AWS CUR) en Amazon Simple Storage Service (Amazon S3) mediante SQL estándar. Esto le ayuda a evitar tener que crear sus propias soluciones de almacén de datos para consultar AWS los datos de CUR.

Le recomendamos encarecidamente que cree un nuevo bucket de Amazon S3 y un nuevo informe AWS CUR para usarlos con Athena. AWS CUR solo admite el formato de compresión Apache Parquet para Athena y sobrescribe automáticamente los informes anteriores que están almacenados en su bucket de S3.

En esta sección se describe cómo usar Athena con los informes de costos y usos. Para obtener una descripción completa del servicio Athena, consulte la [Guía del usuario de Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/).

**Topics**
+ [Configuración de Athena mediante plantillas CloudFormation](use-athena-cf.md)
+ [Configuración manual de Athena](cur-ate-manual.md)
+ [Ejecución de consultas de Amazon Athena](cur-ate-run.md)
+ [Cargar datos de informes en otros recursos](cur-query-other.md)

Para ver una demostración de cómo realizar consultas con Athena, mire el siguiente vídeo.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/KEeJEZTYE8E/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/KEeJEZTYE8E)


# Configuración de Athena mediante plantillas CloudFormation
<a name="use-athena-cf"></a>

**importante**  
CloudFormation no admite recursos interregionales. Si planea usar una CloudFormation plantilla, debe crear todos los recursos en la misma AWS región. La región debe admitir los siguientes servicios:  
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
AWS Glue
Amazon Athena

Para agilizar y automatizar la integración de sus informes de costes y uso con Athena, AWS proporciona una CloudFormation plantilla con varios recursos clave junto con los informes que ha configurado para la integración de Athena. La CloudFormation plantilla incluye un AWS Glue rastreador, una AWS Glue base de datos y un evento. AWS Lambda 

El proceso de configuración de la integración de Athena que utiliza CloudFormation elimina cualquier evento de Amazon S3 que ya tenga su bucket. Esto puede afectar negativamente a cualquier proceso basado en eventos existente que tenga para un informe AWS CUR existente. Le recomendamos encarecidamente que cree un nuevo bucket de Amazon S3 y un nuevo informe AWS CUR para usarlos con Athena.

Antes de poder utilizar una CloudFormation plantilla para automatizar la integración de Athena, asegúrese de hacer lo siguiente:
+ Cree un nuevo bucket de Amazon S3 para sus informes. Para obtener más información, consulte [Creación de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la *Guía del usuario de Amazon S3*. 
+ [Cree un informe](cur-create.md) para usarlo con Athena. Durante el proceso de configuración, en **Integración de datos de informes**, elija **Athena**.
+ Espere a que se envíe el primer informe a su bucket de Amazon S3. La entrega del primer informe puede tardar AWS hasta 24 horas.<a name="use-athena-cf-steps"></a>

**Para usar la plantilla Athena CloudFormation**

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista de grupos, elija el grupo en el que desee recibir su informe AWS CUR.

1. Elija el prefijo de ruta del informe (). *your-report-path-prefix/* A continuación, elija el nombre del informe (*your-report-name/*).

1. Elija el archivo de plantilla `.yml`.

1. Elija **Acciones de objetos** y, después, **Descargar como**.

1. Abre la CloudFormation consola en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Si nunca la ha usado CloudFormation antes, elija **Crear nueva pila**. De lo contrario, seleccione **Crear pila**.

1. En **Preparar plantilla**, elija **TLa plantilla está lista**.

1. En **Origen de plantilla**, elija **Cargar un archivo de plantilla**.

1. Seleccione **Elegir archivo**.

1. Elija la plantilla `.yml` descargada y luego elija **Abrir**.

1. Elija **Siguiente**.

1. En **Nombre de pila**, escriba un nombre para la plantilla y elija **Siguiente**.

1. Elija **Siguiente**.

1. En la parte inferior de la página, selecciona **Acepto que AWS CloudFormation podría crear recursos de IAM**. 

   Esta plantilla crea los siguientes recursos:
   + Tres roles de IAM 
   + Una AWS Glue base de datos
   + ¿Un AWS Glue rastreador
   + Dos funciones Lambda
   + Una notificación de Amazon S3

1. Seleccione **Creación de pila**.

**Para actualizar la plantilla Athena CloudFormation existente**

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista de grupos, elija el grupo en el que desee recibir su informe AWS CUR.

1. Elija el prefijo de ruta del informe (). *your-report-path-prefix/* A continuación, elija el nombre del informe (*your-report-name/*).

1. Elija el archivo de plantilla `.yml`.

1. Elija **Acciones de objetos** y, después, **Descargar como**.

1. Abre la CloudFormation consola en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Seleccione la pila que se creó anteriormente y, a continuación, elija **Actualizar**.

1. En **Preparar plantilla**, elija **Reemplazar la plantilla actual**.

1. En **Origen de plantilla**, elija **Cargar un archivo de plantilla**.

1. Seleccione **Elegir archivo**.

1. Elija la plantilla `.yml` descargada y luego elija **Abrir**.

1. Elija **Siguiente**.

1. En la página **Especificar los detalles de la pila** modifique los detalles y, a continuación, elija **Siguiente**.

1. Elija **Siguiente**.

1. En la parte inferior de la página, selecciona **Acepto que AWS CloudFormation podría crear recursos de IAM**. 

1. Elija **Actualizar pilar**.

# Configuración manual de Athena
<a name="cur-ate-manual"></a>

Le recomendamos encarecidamente que utilice la AWS CloudFormation plantilla para crear la tabla en lugar de crearla usted mismo. La consulta SQL proporcionada crea una tabla que cubre solo un mes de datos, pero la AWS CloudFormation plantilla crea una tabla que puede incluir varios meses y que se actualiza automáticamente. Para obtener más información sobre cómo configurar la AWS CloudFormation plantilla, consulte[Configuración de Athena mediante plantillas CloudFormation](use-athena-cf.md).

Si decides no usar la CloudFormation plantilla para configurar tu mesa Athena, sigue manualmente los pasos que se indican a continuación. Debe crear una tabla antes de poder ejecutar consultas SQL en sus datos de AWS CUR. Deberá realizar este paso al menos una vez al mes y la tabla solo incluirá los datos del AWS CUR actual.

Como parte del proceso de creación de la tabla, AWS transforma los nombres de las columnas del AWS CUR. Para obtener más información acerca del proceso de transformación, consulte [Nombres de columnas](cur-ate-run.md#column-transformations).
+ [Creación de tablas en Athena](create-manual-table.md)
+ [Creación de una tabla de estado de los informes de costos y usos](create-manual-cur-table.md)
+ [Cargar sus particiones de informe](upload-report-partitions.md)

# Creación de tablas en Athena
<a name="create-manual-table"></a>

AWS incluye el código SQL que debe ejecutar para crear esta tabla en su depósito de AWS CUR.<a name="create-manual-table-steps"></a>

**Para crear una tabla de Athena**

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista de buckets, seleccione el bucket en el que ha elegido recibir su informe de costos y usos.

1. Desplácese en la ruta `your-report-prefix-your-report-name-path-to-report`.

   La ruta exacta depende de si su AWS CUR está configurado para sobrescribir las versiones anteriores. Para obtener más información, consulte [Plazo de entrega de informes de costos y usos](understanding-report-versions.md#access-cur-s3-timeline).

1. Abra el archivo `my-report-name-create-table.sql`.

1. Copie el SQL desde el archivo, empezando por `CREATE` y finalizando por `LOCATION 's3://your-report-prefix/your-report-name/the-rest-of-the=path'`. Tome nota de la primera línea, ya que necesita el nombre de la base de datos y de la tabla para crear la base de datos de Athena.

1. Abra la consola Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. En el panel de consultas **Nueva consulta 1**, pegue la SQL siguiente: Para *`<database name>.<table name>`*, utilice la base de datos y el nombre de la tabla de la primera línea de la SQL que ha copiado.

   ```
   CREATE DATABASE <database name>
   ```

1. Elija **Ejecutar consulta**.

1. En el menú desplegable, seleccione la base de datos que acaba de crear.

1. En el panel de consultas **Nueva consulta 1**, pegue el resto de la SQL desde el archivo SQL.

1. Elija **Ejecutar consulta**.

Después de crear la tabla, debe cargar sus particiones antes de poder ejecutar una consulta. Para obtener más información, consulte [Cargar sus particiones de informe](upload-report-partitions.md).

# Creación de una tabla de estado de los informes de costos y usos
<a name="create-manual-cur-table"></a>

AWS actualiza el AWS CUR varias veces al día. Athena no puede saber cuándo AWS está actualizando el informe, lo que puede generar resultados de consulta con una combinación de datos antiguos y nuevos. Para mitigar esta situación, cree una tabla para comprobar si AWS está actualizando sus informes de costes y uso y consulte esa tabla para comprobar si AWS se están actualizando los datos. Debe crear esta tabla solo una vez. Después de eso, AWS mantiene la tabla actualizada.<a name="create-refresh-table"></a>

**Para crear su tabla actualizada**

1. Abra la consola Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. En el panel de consultas **Nueva consulta 1**, pegue la SQL siguiente: 

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS cost_and_usage_data_status(
     status STRING)
   ROW FORMAT SERDE
     'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
   WITH SERDEPROPERTIES (
    'serialization.format' = '1'
   )
   LOCATION 's3://{S3_Bucket_Name}/{Report_Key}/cost_and_usage_data_status/'
   ```

1. Elija **Ejecutar consulta**.

Para comprobar si AWS se están actualizando los datos, utilice la consola de Athena para ejecutar la siguiente consulta SQL.

```
select status from cost_and_usage_data_status 
```

# Cargar sus particiones de informe
<a name="upload-report-partitions"></a>

Para consultar los datos de sus informes de costos y usos, debe cargar los datos en la tabla de Athena. Debe hacerlo para cada nuevo informe de AWS CUR que se AWS le entregue.<a name="upload-partitions"></a>

**Para cargar sus particiones de informe más recientes**

1. Abra la consola Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Elija los tres puntos verticales que se encuentran junto al nombre de la tabla.

1. Elija **Cargar particiones**.

Si no carga sus particiones, Athena no devuelve ningún resultado o devuelve un mensaje de error que indica que faltan datos.

# Ejecución de consultas de Amazon Athena
<a name="cur-ate-run"></a>

Para ejecutar consultas de Athena en sus datos, utilice primero la consola de Athena para comprobar si AWS se están actualizando los datos y, a continuación, ejecute la consulta en la consola de Athena. Cuando ejecute SQL, asegúrese de que la base de datos correcta esté seleccionada en la lista desplegable. Puede utilizar el siguiente SQL para comprobar el estado.

```
select status from cost_and_usage_data_status 
```

Los dos resultados posibles son `READY` y `UPDATING`. Si el estado es `READY`, puede consultar la base de datos de Athena. Si el estado es `UPDATING`, Athena podría devolver resultados incompletos.

Una vez que hayas confirmado que AWS se están actualizando tus datos, puedes ejecutar tus propias consultas. Por ejemplo, la siguiente consulta muestra year-to-date los costos por servicio de cada mes en la base de datos de ejemplo llamada`mycostandusage_parquet`. La siguiente consulta muestra year-to-date los costos de 2018. Actualice el año para ver year-to-date los costos actuales.

```
SELECT line_item_product_code,
sum(line_item_blended_cost) AS cost, month
FROM mycostandusage_parquet
WHERE year='2018'
GROUP BY  line_item_product_code, month
HAVING sum(line_item_blended_cost) > 0
ORDER BY  line_item_product_code;
```

## Nombres de columnas
<a name="column-transformations"></a>

Las restricciones de nombres de columnas de Athena son diferentes de las restricciones de nombres de columnas de los informes de costos y usos. Esto significa que cuando los datos de AWS CUR se cargan en una tabla de Athena, los nombres de las columnas cambian. AWS realiza los siguientes cambios:
+ Se añade un guion bajo delante de letras mayúsculas
+ Las letras mayúsculas se sustituyen por minúsculas 
+ Todos los caracteres no alfanuméricos se sustituyen por un guion bajo
+ Se eliminan los guiones bajos duplicados
+ Cualquier espacio en blanco inicial y final se elimina
+ Si el nombre de la columna es más largo que la longitud de los nombres de columnas, se eliminan los guiones bajos de izquierda a derecha

**nota**  
Tras aplicar estas reglas, algunas de las columnas de etiquetas de recursos tendrán nombres duplicados. AWS fusiona columnas cuando hay más de una columna con el mismo nombre. 

Como ejemplos, el nombre de la columna `ExampleColumnName` pasa a ser `example_column_name` y el nombre de la columna `Example Column Name` pasa a ser `example_column_name`.

# Cargar datos de informes en otros recursos
<a name="cur-query-other"></a>

Puede cargar informes de costes y uso en Amazon Redshift y Amazon Quick para analizar los AWS costes y el uso.

**Topics**
+ [Carga de datos de informes en Amazon Quick](#cur-query-other-qs)
+ [Carga de datos de informes en Amazon Redshift](#cur-query-other-rs)

## Carga de datos de informes en Amazon Quick
<a name="cur-query-other-qs"></a>

Puedes subir tus informes de costes y uso a Amazon Quick.

Para obtener más información sobre la carga en Quick, consulte [Creación de un conjunto de datos mediante archivos de Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html) en la *Guía rápida del usuario*.

## Carga de datos de informes en Amazon Redshift
<a name="cur-query-other-rs"></a>

En esta sección se muestra cómo puede cargar AWS CUR en Amazon Redshift para analizar los costes y el AWS uso.

**importante**  
Las columnas de Amazon Redshift no distinguen entre mayúsculas y minúsculas y tienen limitaciones de caracteres más estrictas que las etiquetas definidas por el usuario. Para evitar conflictos entre Amazon Redshift y las etiquetas definidas por el usuario, AWS sustituya las etiquetas por las etiquetas `userTag0``userTag1`, etc. `userTag2` Tras crear una tabla de Amazon Redshift y cargar el informe en ella, puede crear una tabla de Amazon Redshift que asigne las etiquetas definidas a las etiquetas definidas por AWS el usuario. La tabla de etiquetas le permite buscar sus etiquetas originales.  
Por ejemplo, si tiene las etiquetas `OWNER` y `Owner`, Amazon Redshift no le permite crear una tabla con dos columnas denominada "propietario". En su lugar, se crea una tabla de informe con las columnas `userTag0` y `userTag1` en lugar de `OWNER` y `Owner`, a continuación, cree una tabla con las columnas `remappedUserTag` y `userTag`. La `remappedUserTag` columna almacena las etiquetas AWS definidas `userTag0` y`userTag1`, y la `userTag` columna almacena las etiquetas originales, y `OWNER` `Owner` 

AWS proporciona los comandos para crear la tabla de Amazon Redshift, cargar el informe, crear la tabla de etiquetas e insertar todas las filas de etiquetas en la tabla de etiquetas. Los comandos se proporcionan en el `RedshiftCommands.sql` archivo que se almacena junto con el archivo de manifiesto en S3 y en el ****archivo auxiliar** de archivos Redshift** de la consola Billing and Cost Management. AWS también proporciona un RedshiftManifest archivo que controla qué informe se carga con los comandos que se suben al RedshiftCommand archivo. Al eliminar o eliminar el RedshiftManifest archivo, se interrumpe el comando de copia del RedshiftCommands archivo.

**Para buscar el archivo `RedshiftCommands.sql` en la consola de Administración de facturación y costos**

1. Abra la consola de Administración de facturación y costos en [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. En el panel de navegación, seleccione **Páginas heredadas** y elija **Informes de uso y costo**.

1. Elija el informe que desee cargar en Amazon Redshift.

1. Junto a **You have enabled viewing reports in the following service(s):**, elija **Amazon Redshift**.

1. Copie los comandos del cuadro de diálogo y péguelos en su cliente SQL.

Para el siguiente procedimiento, se da por supuesto que está familiarizado con bases de datos y Amazon Redshift.

**Carga de informes de costos y usos a Amazon Redshift**

1. Cree un clúster de Amazon Redshift.

   Para obtener más información, consulte [Creación de un clúster](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster) en la *Guía de administración de Amazon Redshift*.

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Navegue hasta la ubicación de Amazon S3 en la que almacena su AWS CUR.

1. Abra el archivo `RedshiftCommands.sql`.

   El archivo contiene comandos personalizados para crear una tabla de Amazon Redshift, cargar el AWS CUR desde Amazon S3 y crear una tabla de etiquetas que permita importar etiquetas definidas por el usuario a Amazon Redshift.

1. En el `copy` comando, *<AWS\$1ROLE>* sustitúyalo por el ARN de un rol de IAM que tenga permisos para acceder al bucket de Amazon S3 en el que almacenas tu CUR. AWS 

1. *<S3\$1BUCKET\$1REGION>*Sustitúyalo por la región en la que se encuentra su bucket de Amazon S3. Por ejemplo, `us-east-1`.

1. Utilice un cliente SQL para conectarlo al clúster.

   Para obtener más información, consulte [Acceso a clústeres y bases de datos de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/using-rs-tools.html) en la *Guía de administración de Amazon Redshift*.

1. Copie los comandos SQL desde el archivo `RedshiftCommands.sql` a su cliente SQL en el siguiente orden:
   + create table: este comando crea una tabla de Amazon Redshif con un esquema personalizado para que coincida con su informe.
   + copy: este comando utiliza la función de IAM proporcionada para cargar los archivos AWS CUR de S3 a Amazon Redshift.
   + create tag table: este comando crea una tabla que le permite asignar etiquetas definidas de AWS a sus etiquetas definidas por el usuario.
   + insert: estos comandos insertan etiquetas definidas por el usuario en la tabla de etiquetas.

1. Una vez copiados todos los datos del AWS CUR a Amazon Redshift, puede consultarlos mediante SQL. Para obtener más información sobre la consulta de datos en Amazon Redshift, consulte, [SQL de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift.*

**nota**  
El número de columnas de los informes de costos y usos puede cambiar de un mes a otro, como, por ejemplo, cuando se crea una nueva etiqueta de asignación de costos o un servicio añade un nuevo atributo de producto. Le recomendamos que copie los datos de su AWS CUR en una tabla nueva todos los meses y, a continuación, copie las columnas que le interesen en una tabla independiente. month-by-month