

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Consultation des rapports de coûts et d'utilisation à l'aide d'Amazon Athena
<a name="cur-query-athena"></a>

Amazon Athena est un service de requête sans serveur que vous pouvez utiliser pour analyser les données de vos rapports de AWS coûts et d'utilisation (AWS CUR) dans Amazon Simple Storage Service (Amazon S3) à l'aide du SQL standard. Cela vous permet d'éviter d'avoir à créer vos propres solutions d'entrepôt de données pour interroger les données AWS CUR.

Nous vous recommandons vivement de créer à la fois un nouveau compartiment Amazon S3 et un nouveau rapport AWS CUR à utiliser avec Athena. AWS CUR prend uniquement en charge le format de compression Apache Parquet pour Athena et remplace automatiquement les rapports précédents stockés dans votre compartiment S3.

Cette section explique comment utiliser Athena avec les rapports sur les coûts et l'utilisation. Pour une description complète du service Athena, consultez le guide de l'utilisateur d'[Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/).

**Topics**
+ [Configuration d'Athena à l'aide de modèles CloudFormation](use-athena-cf.md)
+ [Configuration manuelle d'Athena](cur-ate-manual.md)
+ [Exécution de requêtes Amazon Athena](cur-ate-run.md)
+ [Chargement des données du rapport dans d'autres ressources](cur-query-other.md)

Pour une démonstration de l'interrogation de rapports à l'aide d'Athena, regardez la vidéo suivante.

[![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)


# Configuration d'Athena à l'aide de modèles CloudFormation
<a name="use-athena-cf"></a>

**Important**  
CloudFormation ne prend pas en charge les ressources interrégionales. Si vous prévoyez d'utiliser un CloudFormation modèle, vous devez créer toutes les ressources dans la même AWS région. La région doit prendre en charge les services suivants :  
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
AWS Glue
Amazon Athena

Pour rationaliser et automatiser l'intégration de vos rapports de coûts et d'utilisation avec Athena, AWS fournit un CloudFormation modèle contenant plusieurs ressources clés ainsi que les rapports que vous avez configurés pour l'intégration d'Athena. Le CloudFormation modèle inclut un AWS Glue robot d'exploration, une AWS Glue base de données et un AWS Lambda événement. 

Le processus de configuration de l'intégration Athena à l'aide de la suppression de tous CloudFormation les événements Amazon S3 que votre compartiment pourrait déjà contenir. Cela peut avoir un impact négatif sur tous les processus basés sur des événements existants que vous avez pour un rapport AWS CUR existant. Nous vous recommandons vivement de créer à la fois un nouveau compartiment Amazon S3 et un nouveau rapport AWS CUR à utiliser avec Athena.

Avant de pouvoir utiliser un CloudFormation modèle pour automatiser l'intégration d'Athena, assurez-vous d'effectuer les opérations suivantes :
+ Créez un nouveau compartiment Amazon S3 pour vos rapports. Pour plus d’informations, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans le *Guide de l’utilisateur Amazon S3*. 
+ [Créez un nouveau rapport](cur-create.md) à utiliser avec Athena. Au cours du processus de configuration, pour l'**intégration des données des rapports**, choisissez **Athena**.
+ Attendez que le premier rapport soit envoyé dans votre compartiment Amazon S3. La livraison de votre premier rapport peut prendre jusqu' AWS à 24 heures.<a name="use-athena-cf-steps"></a>

**Pour utiliser le modèle Athena CloudFormation**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans la liste des compartiments, choisissez le compartiment dans lequel vous avez choisi de recevoir votre rapport AWS CUR.

1. Choisissez le préfixe du chemin de votre rapport (*your-report-path-prefix/*). Choisissez ensuite le nom de votre rapport (*your-report-name/*).

1. Choisissez le fichier `.yml` modèle.

1. Choisissez **Actions d'objet**, puis sélectionnez **Télécharger sous**.

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Si vous ne l'avez jamais utilisé CloudFormation auparavant, choisissez **Create New Stack**. Sinon, cliquez sur **Create Stack (Créer une pile)**.

1. Sous **Prepare template (Préparer le modèle)**, choisissez **Template is ready (Le modèle est prêt)**.

1. Sous **Template source (Source du modèle)**, choisissez **Upload a template file (Charger un fichier de modèle)**.

1. Choisissez **Choisir un fichier**.

1. Choisissez le modèle `.yml` téléchargé, puis choisissez **Open (Ouvrir)**.

1. Choisissez **Suivant**.

1. Pour **Nom de la pile**, saisissez un nom pour votre modèle, puis choisissez **Suivant**.

1. Choisissez **Suivant**.

1. Au bas de la page, sélectionnez **Je reconnais que cela AWS CloudFormation pourrait créer des ressources IAM**. 

   Ce modèle crée les ressources suivantes :
   + Trois rôles IAM
   + Une AWS Glue base de données
   + Un AWS Glue crawler
   + Deux fonctions Lambda
   + Une notification Amazon S3

1. Sélectionnez **Créer la pile**.

**Pour mettre à jour le modèle Athena CloudFormation existant**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans la liste des compartiments, choisissez le compartiment dans lequel vous avez choisi de recevoir votre rapport AWS CUR.

1. Choisissez le préfixe du chemin de votre rapport (*your-report-path-prefix/*). Choisissez ensuite le nom de votre rapport (*your-report-name/*).

1. Choisissez le fichier `.yml` modèle.

1. Choisissez **Actions d'objet**, puis sélectionnez **Télécharger sous**.

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Sélectionnez la pile créée précédemment, puis choisissez **Mettre à jour**.

1. Sous **Prepare template (Préparer le modèle)**, choisissez **Replace current template (Remplacer le modèle actuel)**.

1. Sous **Template source (Source du modèle)**, choisissez **Upload a template file (Charger un fichier de modèle)**.

1. Choisissez **Choisir un fichier**.

1. Choisissez le modèle `.yml` téléchargé, puis choisissez **Open (Ouvrir)**.

1. Choisissez **Suivant**.

1. Sur la page **Spécifier les détails de la pile**, modifiez tous les détails, puis choisissez **Suivant**.

1. Choisissez **Suivant**.

1. Au bas de la page, sélectionnez **Je reconnais que cela AWS CloudFormation pourrait créer des ressources IAM**. 

1. Choisissez **Mettre à jour la pile**.

# Configuration manuelle d'Athena
<a name="cur-ate-manual"></a>

Nous vous recommandons vivement d'utiliser le AWS CloudFormation modèle pour créer votre tableau plutôt que de le créer vous-même. La requête SQL fournie crée une table qui ne couvre qu'un seul mois de données, mais le AWS CloudFormation modèle crée une table qui peut inclure plusieurs mois et qui est mise à jour automatiquement. Pour plus d'informations sur la configuration du AWS CloudFormation modèle, consultez[Configuration d'Athena à l'aide de modèles CloudFormation](use-athena-cf.md).

Si vous choisissez de ne pas utiliser le CloudFormation modèle pour configurer votre table Athena, suivez manuellement les étapes ci-dessous. Vous devez créer une table avant de pouvoir exécuter des requêtes SQL sur vos données AWS CUR. Vous devrez effectuer cette étape au moins une fois par mois et le tableau inclut uniquement les données du AWS CUR actuel.

Dans le cadre du processus de création des tables, AWS transforme les noms des colonnes AWS CUR. Pour de plus amples informations sur le processus de transformation, veuillez consulter [Noms de colonnes](cur-ate-run.md#column-transformations).
+ [Création d'une table Athena](create-manual-table.md)
+ [Création d'un tableau d'état des rapports sur les coûts et l'utilisation](create-manual-cur-table.md)
+ [Chargement de vos partitions de rapport](upload-report-partitions.md)

# Création d'une table Athena
<a name="create-manual-table"></a>

AWS inclut le code SQL que vous devez exécuter pour créer cette table dans votre compartiment AWS CUR.<a name="create-manual-table-steps"></a>

**Pour créer votre table Athena**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans la liste des compartiments, choisissez le compartiment dans lequel vous avez choisi de recevoir vos rapports sur les coûts et l'utilisation.

1. Naviguez dans le chemin d'accès `your-report-prefix-your-report-name-path-to-report`.

   Le chemin exact dépend du fait que votre AWS CUR est configuré pour remplacer les versions précédentes ou non. Pour de plus amples informations, veuillez consulter [Calendrier de livraison des rapports sur les coûts et l'utilisation](understanding-report-versions.md#access-cur-s3-timeline).

1. Ouvrez le fichier `my-report-name-create-table.sql`.

1. Copiez l'instruction SQL du fichier, qui commence par `CREATE` et se termine par `LOCATION 's3://your-report-prefix/your-report-name/the-rest-of-the=path'`. Prenez note de la première ligne, car vous avez besoin du nom et de la table de la base de données pour créer la base de données Athena.

1. Ouvrez la console à l'adresse [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Dans le volet de requête **New query 1 (Nouvelle requête 1)**, collez l'instruction SQL suivante. Pour *`<database name>.<table name>`*, utilisez la base de données et le nom de table de la première ligne de l'instruction SQL que vous avez copiée.

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

1. Choisissez **Exécuter la requête**.

1. Dans le menu déroulant, choisissez la base de données que vous venez de créer.

1. Dans le volet de requête **New query 1 (Nouvelle requête 1)**, collez le reste de l'instruction SQL du fichier SQL.

1. Choisissez **Exécuter la requête**.

Après avoir créé votre table, vous devez charger vos partitions pour pouvoir exécuter une requête. Pour de plus amples informations, veuillez consulter [Chargement de vos partitions de rapport](upload-report-partitions.md).

# Création d'un tableau d'état des rapports sur les coûts et l'utilisation
<a name="create-manual-cur-table"></a>

AWS actualise votre AWS CUR plusieurs fois par jour. Athéna n'a aucun moyen de savoir à quel moment AWS est en train d'actualiser votre rapport, ce qui peut conduire à des résultats de requête contenant une combinaison d'anciennes et de nouvelles données. Pour atténuer ce problème, créez un tableau pour savoir si AWS vos rapports sur les coûts et l'utilisation sont actualisés et interrogez ce tableau pour voir si vos données AWS sont actualisées. Vous ne devez créer cette table qu'une seule fois. Après cela, AWS tient le tableau à jour.<a name="create-refresh-table"></a>

**Pour créer votre table d'actualisation**

1. Ouvrez la console à l'adresse [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Dans le volet de requête **New query 1 (Nouvelle requête 1)**, collez l'instruction SQL suivante. 

   ```
   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. Choisissez **Exécuter la requête**.

Pour vérifier si vos données AWS sont actualisées, utilisez la console Athena pour exécuter la requête SQL suivante.

```
select status from cost_and_usage_data_status 
```

# Chargement de vos partitions de rapport
<a name="upload-report-partitions"></a>

Pour interroger les données de vos rapports de coûts et d'utilisation, vous devez les télécharger dans votre table Athena. Vous devez le faire pour chaque nouveau rapport AWS CUR qui AWS vous est livré.<a name="upload-partitions"></a>

**Pour charger vos dernières partitions**

1. Ouvrez la console à l'adresse [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Choisissez les trois points verticaux à côté du nom de votre table.

1. Choisissez **Charger des partitions**.

Si vous ne chargez pas vos partitions, Athena ne renvoie aucun résultat ou un message d'erreur indiquant des données manquantes.

# Exécution de requêtes Amazon Athena
<a name="cur-ate-run"></a>

Pour exécuter des requêtes Athena sur vos données, utilisez d'abord la console Athena pour vérifier si vos données AWS sont actualisées, puis exécutez votre requête sur la console Athena. Lorsque vous exécutez SQL, assurez-vous que la base de données correcte est sélectionné dans la liste déroulante. Vous pouvez utiliser l'instruction SQL suivante pour vérifier l'état.

```
select status from cost_and_usage_data_status 
```

Les deux résultats possibles sont `READY` et `UPDATING`. Si le statut est le cas`READY`, vous pouvez interroger votre base de données Athena. Si le statut est le cas`UPDATING`, Athéna peut renvoyer des résultats incomplets.

Une fois que vous avez confirmé AWS que vos données sont actualisées, vous pouvez exécuter vos propres requêtes. Par exemple, la requête suivante indique les year-to-date coûts par service pour chaque mois dans la base de données d'exemple appelée`mycostandusage_parquet`. La requête suivante indique les year-to-date coûts de 2018. Mettez à jour l'année pour voir year-to-date les coûts actuels.

```
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;
```

## Noms de colonnes
<a name="column-transformations"></a>

Les restrictions relatives au nom des colonnes Athena sont différentes des restrictions relatives au nom des colonnes des rapports sur les coûts et l'utilisation. Cela signifie que lorsque vos données AWS CUR sont téléchargées dans une table Athena, les noms des colonnes changent. AWS apporte les modifications suivantes :
+ Un trait de soulignement est ajouté devant les lettres majuscules
+ Les lettres majuscules sont remplacées par des lettres minuscules 
+ Les caractères non alphanumériques sont remplacés par un caractère de soulignement
+ Les traits de soulignement en double sont supprimés
+ Les traits de soulignement de début et de fin sont supprimés
+ Si le nom de colonne est plus long que la longueur autorisée pur les noms de colonnes, des traits de soulignement sont supprimés de gauche à droite

**Note**  
Une fois ces règles appliquées, certaines colonnes de balises de ressources porteront des noms dupliqués. AWS fusionne les colonnes lorsque plusieurs colonnes portent le même nom. 

À titre d'exemple, le nom de colonne `ExampleColumnName` devient`example_column_name`, et le nom de colonne `Example Column Name` devient`example_column_name`.

# Chargement des données du rapport dans d'autres ressources
<a name="cur-query-other"></a>

Vous pouvez télécharger des rapports sur les coûts et l'utilisation sur Amazon Redshift et Amazon Quick pour analyser vos AWS coûts et votre utilisation.

**Topics**
+ [Chargement des données du rapport dans Amazon Quick](#cur-query-other-qs)
+ [Chargement des données de rapport dans Amazon Redshift](#cur-query-other-rs)

## Chargement des données du rapport dans Amazon Quick
<a name="cur-query-other-qs"></a>

Vous pouvez télécharger vos rapports de coûts et d'utilisation sur Amazon Quick.

Pour plus d'informations sur le téléchargement vers Quick, consultez la section [Création d'un ensemble de données à l'aide de fichiers Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html) dans le *guide d'utilisation rapide*.

## Chargement des données de rapport dans Amazon Redshift
<a name="cur-query-other-rs"></a>

Cette section explique comment télécharger un AWS CUR sur Amazon Redshift afin d'analyser vos AWS coûts et votre utilisation.

**Important**  
Les colonnes Amazon Redshift ne font pas la distinction majuscules/minuscules et sont soumises à des limites de caractères plus strictes que les balises définies par l'utilisateur. Pour éviter les conflits entre Amazon Redshift et les balises définies par l'utilisateur, AWS remplacez vos balises par les balises`userTag0`,,`userTag1`, etc. `userTag2` Après avoir créé une table Amazon Redshift et y avoir chargé votre rapport, vous pouvez créer une table Amazon Redshift qui associe les balises définies à vos balises définies par AWS l'utilisateur. A l'aide de la table de balises, vous pouvez rechercher vos balises d'origine.  
Par exemple, si vous avez les balises `OWNER` et `Owner` qu'Amazon Redshift ne vous autorise pas à créer une table avec deux colonnes nommées « propriétaire ». Au lieu de cela, vous créez une table de rapport avec les colonnes `userTag0` et `userTag1` à la place de `OWNER` et de `Owner`, puis créez une table avec les colonnes `remappedUserTag` et `userTag`. La `remappedUserTag` colonne stocke les balises AWS définies par `userTag0` -et `userTag1` la `userTag` colonne stocke vos balises d'origine, `OWNER` et `Owner` 

AWS fournit les commandes permettant de créer votre table Amazon Redshift, de télécharger votre rapport, de créer votre table de balises et d'insérer toutes les lignes de balises dans votre table de balises. Les commandes vous sont fournies dans le `RedshiftCommands.sql` fichier stocké à côté de votre fichier manifeste dans S3, et dans le **fichier **Redshift file** Helper** de la console Billing and Cost Management. AWS fournit également un RedshiftManifest fichier qui contrôle les commandes qui signalent les commandes lors des téléchargements de RedshiftCommand fichiers. La suppression ou le retrait du RedshiftManifest fichier interrompt la commande de copie contenue dans le RedshiftCommands fichier.

**Pour trouver le `RedshiftCommands.sql` fichier dans la console Billing and Cost Management**

1. Ouvrez la console Billing and Cost Management à l'adresse [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. Dans le volet de navigation, sous **Legacy Pages**, sélectionnez **Cost and Usage Reports**.

1. Choisissez le rapport que vous souhaitez télécharger sur Amazon Redshift.

1. À côté de **Vous avez activé l'affichage des rapports dans le (s) service (s) suivant (s) :**, choisissez **Amazon Redshift**.

1. Copiez les commandes de la boîte de dialogue et collez-les dans votre client SQL.

La procédure suivante suppose une bonne connaissance des bases de données et d'Amazon Redshift.

**Pour télécharger un rapport sur les coûts et l'utilisation sur Amazon Redshift**

1. Créez un cluster Amazon Redshift.

   Pour plus d'informations, consultez la section [Création d'un cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster) dans le *guide de gestion Amazon Redshift*.

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Accédez à l'emplacement Amazon S3 où vous stockez votre AWS CUR.

1. Ouvrez le fichier `RedshiftCommands.sql`.

   Le fichier contient des commandes personnalisées permettant de créer une table Amazon Redshift, de télécharger le AWS CUR depuis Amazon S3 et de créer une table de balises permettant d'importer des balises définies par l'utilisateur dans Amazon Redshift.

1. Dans la `copy` commande, remplacez *<AWS\$1ROLE>* par l'ARN d'un rôle IAM autorisé à accéder au compartiment Amazon S3 dans lequel vous stockez votre AWS CUR.

1. *<S3\$1BUCKET\$1REGION>*Remplacez-le par la région dans laquelle se trouve votre compartiment Amazon S3. Par exemple, `us-east-1`.

1. Utilisez un client SQL à connecter au cluster.

   Pour plus d'informations, consultez la section [Accès aux clusters et aux bases de données Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/using-rs-tools.html) dans le guide de gestion *Amazon Redshift*.

1. Copiez les commandes SQL depuis le fichier `RedshiftCommands.sql` dans votre client SQL, dans l'ordre suivant :
   + create table - Cette commande crée une table Amazon Redshift avec un schéma personnalisé pour correspondre à votre rapport.
   + copy - Cette commande utilise le rôle IAM fourni pour télécharger les fichiers AWS CUR de S3 vers Amazon Redshift.
   + create tag table – Cette commande crée une table qui vous permet de mapper les balises définies par AWSà vos balises définies par l'utilisateur.
   + insert – Ces commandes insèrent les balises définies par l'utilisateur dans la table de balises.

1. Une fois que vous avez copié toutes les données de votre AWS CUR dans Amazon Redshift, vous pouvez les interroger à l'aide de SQL. Pour plus d'informations sur l'interrogation de données dans Amazon Redshift, consultez Amazon Redshift SQL dans le [manuel Amazon Redshift Database](https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html) *Developer Guide*.

**Note**  
Le nombre de colonnes dans les rapports sur les coûts et l'utilisation peut changer d'un mois à l'autre, par exemple lorsqu'une nouvelle étiquette de répartition des coûts est créée ou qu'un service ajoute un nouvel attribut de produit. Nous vous recommandons de copier les données de votre AWS CUR dans un nouveau tableau tous les mois, puis de copier les colonnes qui vous intéressent dans un autre month-by-month tableau.