ALTER TABLE REPLACE COLUMNS - 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.

ALTER TABLE REPLACE COLUMNS

Supprime toutes les colonnes existantes d'une table créée avec le LazySimpleSerDeet les remplace par le jeu de colonnes spécifié. Lorsque la syntaxe facultative PARTITION est utilisée, met à jour les métadonnées de partition. Vous pouvez également utiliser ALTER TABLE REPLACE COLUMNS pour supprimer des colonnes en spécifiant uniquement les colonnes que vous souhaitez conserver.

Résumé

ALTER TABLE table_name [PARTITION (partition_col1_name = partition_col1_value [,partition_col2_name = partition_col2_value][,...])] REPLACE COLUMNS (col_name data_type [, col_name data_type, ...])

Paramètres

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

Spécifie une partition avec les combinaisons nom de colonne/valeur que vous spécifiez. Placez partition_col_value entre guillemets uniquement si le type de données de la colonne est une chaîne.

REMPLACER LES COLONNES (col_name data_type [,col_name data_type,...])

Remplace les colonnes existantes par les noms de colonnes et les types de données spécifiés.

Remarques

  • Pour consulter la modification des colonnes de la table dans le panneau de navigation de l'éditeur de requêtes Athena après avoir exécuté ALTER TABLE REPLACE COLUMNS, vous devrez peut-être actualiser manuellement la liste des tables dans l'éditeur, puis développer à nouveau la table.

  • ALTER TABLE REPLACE COLUMNS ne fonctionne pas pour les colonnes avec le type de données date. Pour contourner ce problème, utilisez le type de données timestamp dans la table à la place.

  • Notez que même si vous ne remplacez qu'une seule colonne, la syntaxe doit être ALTER TABLE table-name REPLACE COLUMNS, avec COLUMNS au pluriel. Vous devez spécifier non seulement la colonne que vous souhaitez remplacer, mais aussi les colonnes que vous souhaitez conserver. Sinon, les colonnes que vous ne spécifiez pas seront supprimées. Cette syntaxe et ce comportement proviennent du DDL Apache Hive. Pour référence, consultez la section Add/Replace columns -Ajouter/remplacer des colonnes) dans la documentation Apache.

Exemple

Dans l'exemple suivant, la tablenames_cities, créée à l'aide du LazySimpleSerDe, comporte trois colonnes nommées col1col2, etcol3. Toutes les colonnes sont de type string. Pour afficher les colonnes du tableau, la commande suivante utilise la commande SHOW COLUMNS suivante.

SHOW COLUMNS IN names_cities

Résultat de la requête :

col1 col2 col3

La commande ALTER TABLE REPLACE COLUMNS suivante remplace les noms des colonnes par first_name, last_name et city. Les données source sous-jacentes ne sont pas affectées.

ALTER TABLE names_cities REPLACE COLUMNS (first_name string, last_name string, city string)

Pour tester le résultat, SHOW COLUMNS est exécuté à nouveau.

SHOW COLUMNS IN names_cities

Résultat de la requête :

first_name last_name city

Une autre façon d'afficher les nouveaux noms de colonnes consiste à prévisualiser la table dans l'éditeur de requêtes Athena ou d'exécuter votre propre requête SELECT.