

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.

# Configuration de la projection de partition
<a name="partition-projection-setting-up"></a>

La configuration de la projection de partition dans les propriétés d'une table s'effectue en deux étapes :

1. Spécifiez les plages de données et les modèles pertinents pour chaque colonne de partition, ou utilisez un modèle personnalisé.

1. Activez la projection de partition pour la table.

**Note**  
Avant d'ajouter des propriétés de projection de partition à une table existante, la colonne de partition pour laquelle vous configurez les propriétés de projection de partition doit déjà exister dans le schéma de la table. Si la colonne de partition n'existe pas encore, vous devez ajouter manuellement une colonne de partition à la table existante. AWS Glue n'exécute pas cette étape automatiquement pour vous. 

Cette section explique comment définir les propriétés de la table pour AWS Glue. Pour les définir, vous pouvez utiliser la AWS Glue console, les [CREATE TABLE](create-table.md) requêtes Athena ou [AWS Glue API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)les opérations. La procédure suivante indique comment définir les propriétés dans la AWS Glue console.

**Pour configurer et activer la projection de partitions à l'aide de la AWS Glue console**

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

1. Choisissez l'onglet **Tables**.

   Sous l'onglet **Tables**, vous pouvez modifier des tables existantes ou choisir **Add tables** (Ajouter des tables) pour en créer de nouvelles. Pour plus d'informations sur l'ajout de tables manuellement ou à l'aide d'un Crawler, consultez la rubrique [Travail avec des tables dans la console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html) du *Guide du développeur AWS Glue *.

1. Dans la liste des tables, choisissez le lien correspondant à la table que vous souhaitez modifier.  
![Dans la AWS Glue console, choisissez le tableau à modifier.](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/partition-projection-1.png)

1. Sélectionnez **Actions**, puis **Edit table** (Modifier la table).

1. Sur la page **Edit table** (Modifier la table), dans la section **Table properties** (Propriétés de la table), ajoutez la paire clé-valeur suivante pour chaque colonne partitionnée :

   1. Pour **Key** (Clé), ajoutez `projection.{{columnName}}.type`.

   1. Pour **Value** (Valeur), ajoutez l'un des types pris en charge : `enum`, `integer`, `date`, ou `injected`. Pour de plus amples informations, veuillez consulter [Types pris en charge pour la projection de partition](partition-projection-supported-types.md).

1. En suivant les instructions indiquées dans [Types pris en charge pour la projection de partition](partition-projection-supported-types.md), ajoutez des paires clé-valeur supplémentaires en fonction de vos exigences de configuration.

   L'exemple de configuration de table suivant configure la colonne `year` pour la projection de partition, limitant les valeurs susceptibles d'être renvoyées à une plage comprise entre 2010 et 2016.  
![Configuration de la projection de partition pour une colonne de partition dans les propriétés de la table de la console AWS Glue .](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/partition-projection-3.png)

1. Ajoutez une paire clé-valeur pour activer la projection de partition. Pour **Key** (Clé), saisissez `projection.enabled` et pour **Value** (Valeur), saisissez `true`.
**Note**  
Vous pouvez désactiver la projection de partition sur cette table à tout moment en définissant la valeur `projection.enabled` sur `false`.

1. Lorsque vous avez terminé, choisissez **Save**.

1. Dans l'éditeur de requête Athena, testez les colonnes que vous avez configurées pour la table.

   L'exemple de requête suivant utilise `SELECT DISTINCT` pour renvoyer les valeurs uniques de la colonne `year`. La base de données contient des données comprises entre la plage de dates 1987 et 2016, mais la propriété `projection.year.range` limite les valeurs renvoyées aux années 2010 à 2016.  
![Interrogation d'une colonne qui utilise la projection de partition.](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/partition-projection-5.png)
**Note**  
Si vous définissez `projection.enabled` sur `true`, mais ne parvenez pas à configurer une ou plusieurs colonnes de partition, un message d'erreur du type suivant s'affiche :  
`HIVE_METASTORE_ERROR: Table {{database_name}}.{{table_name}} is configured for partition projection, but the following partition columns are missing projection configuration: [{{column_name}}] (table {{database_name}}.{{table_name}})`.

## Comment spécifier des emplacements de stockage S3 personnalisés
<a name="partition-projection-specifying-custom-s3-storage-locations"></a>

Lorsque vous modifiez les propriétés d'une table dans AWS Glue, vous pouvez également spécifier un modèle de chemin Amazon S3 personnalisé pour les partitions projetées. Un modèle personnalisé permet à Athena de mapper correctement les valeurs de partition à des emplacements de fichiers Simple Storage Service (Amazon S3) personnalisés qui ne suivent pas un modèle `.../column=value/...` typique. 

L'utilisation d'un modèle personnalisé est facultative. Toutefois, si vous utilisez un modèle personnalisé, celui-ci doit contenir un espace réservé pour chaque colonne de partition. Les emplacements modélisés doivent se terminer par une barre oblique afin que les fichiers de données partitionnés se trouvent dans un « dossier » par partition.

**Pour spécifier un modèle d'emplacement de partition personnalisé**

1. En suivant les étapes pour [configurer et activer la projection de partition à l'aide de la AWS Glue console](#partition-projection-setting-up-procedure), ajoutez une paire clé-valeur supplémentaire qui spécifie un modèle personnalisé comme suit :

   1. Pour **Key** (Clé), saisissez `storage.location.template`.

   1. Pour **Value** (Valeur), spécifiez un emplacement qui inclut un espace réservé pour chaque colonne de partition. Assurez-vous que chaque espace réservé (et le chemin S3 lui-même) se termine par une barre oblique unique.

      Les exemples de valeurs de modèle suivants reposent sur une table avec les colonnes de partition `a`, `b` et `c`.

      ```
      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/      
      ```

      ```
      s3://amzn-s3-demo-bucket/table_root/c=${c}/${b}/some_static_subdirectory/${a}/${b}/${c}/${c}/      
      ```

      Pour la même table, l'exemple de valeur de modèle suivant n'est pas valide, car il ne contient aucun espace réservé pour la colonne `c`.

      ```
      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/         
      ```

1. Cliquez sur **Appliquer**.