Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

ALTER TABLE ADD PARTITION

Mode de mise au point
ALTER TABLE ADD PARTITION - Amazon Athena

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.

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.

Crée une ou plusieurs colonnes de partition pour la table. Chaque partition se compose d'une ou plusieurs combinaisons nom/valeur de colonne distinctes. Un répertoire de données distinct est créé pour chaque combinaison spécifiée, ce qui peut améliorer les performances des requêtes dans certaines circonstances. Les colonnes partitionnées n'existent pas dans les données de table elles-mêmes. Par conséquent, si vous utilisez un nom de colonne qui porte le même nom qu'une colonne dans la table elle-même, vous obtenez une erreur. Pour de plus amples informations, veuillez consulter Partitionner vos données.

Dans Athena, une table et ses partitions doivent utiliser les mêmes formats de données, mais leurs schémas peuvent différer. Pour de plus amples informations, veuillez consulter Mettre à jour les tables avec des partitions.

Pour plus d'informations sur les autorisations au niveau des ressources requises dans IAM les politiques (y comprisglue:CreatePartition), voir AWS Glue APIAutorisations : référence aux actions et aux ressources et. Configurez l'accès aux bases de données et aux tables dans le AWS Glue Data Catalog Pour des informations de résolution de problèmes concernant les autorisations lors de l'utilisation d'Athena, consultez la section Autorisations de la rubrique Résoudre les problèmes dans Athena.

Résumé

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION (partition_col1_name = partition_col1_value [,partition_col2_name = partition_col2_value] [,...]) [LOCATION 'location1'] [PARTITION (partition_colA_name = partition_colA_value [,partition_colB_name = partition_colB_value [,...])] [LOCATION 'location2'] [,...]

Paramètres

Lorsque vous ajoutez une partition, vous spécifiez une ou plusieurs paires nom/valeur de colonnes pour la partition et le chemin d'accès Simple Storage Service (Amazon S3) où résident les fichiers de données de cette partition.

[SI NOTEXISTS]

Entraîne la suppression de l'erreur si une partition avec la même définition existe déjà.

PARTITION(partition_col_name = partition_col_value [,...])

Crée une partition avec les combinaisons nom/valeur de colonne que vous spécifiez. Placez partition_col_value dans des caractères de chaîne uniquement si le type de données de la colonne est une chaîne.

[LOCATION'emplacement']

Spécifie le répertoire dans lequel la partition définie par l'instruction précédente doit être stockée. La clause LOCATION est facultative lorsque les données utilisent le partitionnement de style Hive (pk1=v1/pk2=v2/pk3=v3). Avec le partitionnement de type Hive, l'intégralité d'Amazon S3 URI est construite automatiquement à partir de l'emplacement de la table, des noms des clés de partition et des valeurs des clés de partition. Pour de plus amples informations, veuillez consulter Partitionner vos données.

Considérations

Amazon Athena n'impose pas de limite spécifique au nombre de partitions que vous pouvez ajouter dans une seule ALTER TABLE ADD PARTITION DDL instruction. Toutefois, si vous devez ajouter un nombre important de partitions, pensez à diviser l'opération en lots plus petits afin d'éviter d'éventuels problèmes de performances. L'exemple suivant utilise des commandes successives pour ajouter des partitions individuellement et IF NOT EXISTS pour éviter d'ajouter des doublons.

ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (ds='2023-01-01') ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (ds='2023-01-02') ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (ds='2023-01-03')

Lorsque vous travaillez avec des partitions dans Athena, gardez également à l'esprit les points suivants :

  • Bien qu'Athena prenne en charge l'interrogation de AWS Glue tables contenant 10 millions de partitions, Athena ne peut pas lire plus d'un million de partitions en un seul scan.

  • Pour optimiser vos requêtes et réduire le nombre de partitions scannées, envisagez des stratégies telles que l'élagage des partitions ou l'utilisation d'index de partition.

Pour des considérations supplémentaires concernant l'utilisation des partitions dans Athena, voir. Partitionner vos données

Exemples

L'exemple suivant ajoute une partition unique à une table pour les données partitionnées de style Hive.

ALTER TABLE orders ADD PARTITION (dt = '2016-05-14', country = 'IN');

L'exemple suivant ajoute plusieurs partitions à une table pour les données partitionnées de style Hive.

ALTER TABLE orders ADD PARTITION (dt = '2016-05-31', country = 'IN') PARTITION (dt = '2016-06-01', country = 'IN');

Lorsque la table ne concerne pas les données partitionnées de style Hive, la LOCATION clause est obligatoire et doit être le préfixe Amazon S3 URI complet contenant les données de la partition.

ALTER TABLE orders ADD PARTITION (dt = '2016-05-31', country = 'IN') LOCATION 's3://amzn-s3-demo-bucket/path/to/INDIA_31_May_2016/' PARTITION (dt = '2016-06-01', country = 'IN') LOCATION 's3://amzn-s3-demo-bucket/path/to/INDIA_01_June_2016/';

Pour ignorer les erreurs lorsque la partition existe déjà, utilisez la clause IF NOT EXISTS comme dans l'exemple suivant.

ALTER TABLE orders ADD IF NOT EXISTS PARTITION (dt = '2016-05-14', country = 'IN');

Fichiers _$folder$ zéro octet

Si vous exécutez une instruction ALTER TABLE ADD PARTITION et spécifiez par erreur une partition déjà existante et un emplacement Simple Storage Service (Amazon S3) incorrect, des fichiers d'emplacement zéro octet du format partition_value_$folder$ sont créés dans Simple Storage Service (Amazon S3). Vous devez supprimer ces fichiers manuellement.

Pour éviter que cela ne se produise, utilisez la syntaxe ADD IF NOT EXISTS de votre instruction ALTER TABLE ADD PARTITION, comme dans l'exemple suivant.

ALTER TABLE table_name ADD IF NOT EXISTS PARTITION […]

Rubrique suivante :

ALTER TABLE CHANGE COLUMN

Rubrique précédente :

ALTER TABLE ADD COLUMNS
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.