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.
La configuration de la projection de partition dans les propriétés d'une table s'effectue en deux étapes :
-
Spécifiez les plages de données et les modèles pertinents pour chaque colonne de partition, ou utilisez un modèle personnalisé.
-
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 requêtes Athena ou AWS Glue APIles 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
Connectez-vous à la AWS Glue console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/glue/
. -
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 du Guide du développeur AWS Glue .
-
Dans la liste des tables, choisissez le lien correspondant à la table que vous souhaitez modifier.
-
Sélectionnez Actions, puis Edit table (Modifier la table).
-
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 :
-
Pour Key (Clé), ajoutez
projection.
.columnName
.type -
Pour Value (Valeur), ajoutez l'un des types pris en charge :
enum
,integer
,date
, ouinjected
. Pour de plus amples informations, veuillez consulter Types pris en charge pour la projection de partition.
-
-
En suivant les instructions indiquées dans Types pris en charge pour la projection de partition, 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. -
Ajoutez une paire clé-valeur pour activer la projection de partition. Pour Key (Clé), saisissez
projection.enabled
et pour Value (Valeur), saisisseztrue
.Note
Vous pouvez désactiver la projection de partition sur cette table à tout moment en définissant la valeur
projection.enabled
surfalse
. -
Lorsque vous avez terminé, choisissez Save.
-
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 colonneyear
. 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.Note
Si vous définissez
projection.enabled
surtrue
, 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
] (tabledatabase_name
.table_name
)
Comment spécifier des emplacements de stockage S3 personnalisés
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é
-
En suivant les étapes pour configurer et activer la projection de partition à l'aide de la AWS Glue console, ajoutez une paire clé-valeur supplémentaire qui spécifie un modèle personnalisé comme suit :
-
Pour Key (Clé), saisissez
storage.location.template
. -
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
etc
.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/
-
-
Choisissez Appliquer.