ALTER TABLE REPLACE COLUMNS - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ALTER TABLE REPLACE COLUMNS

Rimuove tutte le colonne esistenti da una tabella creata con LazySimpleSerDee le sostituisce con il set di colonne specificato. Quando si utilizza la sintassi PARTITION facoltativa, aggiorna i metadati della partizione. È possibile utilizzare anche ALTER TABLE REPLACE COLUMNS per eliminare le colonne specificando solo le colonne che si desidera mantenere.

Riepilogo

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, ...])

Parametri

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

Specifica una partizione con le combinazioni nome/valore colonna specificate dall'utente. Racchiudere partition_col_value tra virgolette solo se il tipo di dati della colonna è una stringa.

REPLACE COLUMNS (col_name data_type [,col_name data_type,…])

Sostituisce le colonne esistenti con i nomi delle colonne e i tipi di dati specificati.

Note

  • Per visualizzare la modifica nelle colonne della tabella nel pannello di navigazione dell'editor di query Athena dopo l'esecuzione di ALTER TABLE REPLACE COLUMNS, potrebbe essere necessario aggiornare manualmente l'elenco di tabelle nell'editor e quindi espandere nuovamente la tabella.

  • ALTER TABLE REPLACE COLUMNS non funziona per le colonne con il tipo di dati date. Per risolvere questo problema, utilizzare invece il tipo di dati timestamp nella tabella.

  • Anche se si sta sostituendo una sola colonna, la sintassi deve essere ALTER TABLE table-name REPLACE COLUMNS, con colonne al plurale. È necessario specificare non solo la colonna che si desidera sostituire, ma anche le colonne che si desidera conservare. In caso contrario, le colonne non specificate verranno eliminate. Questa sintassi e questo comportamento derivano da Apache Hive DDL. Come riferimento, consulta Aggiungi/sostituisci colonne nella documentazione di Apache.

Esempio

Nell'esempio seguente, la tabellanames_cities, creata utilizzando LazySimpleSerDe, ha tre colonne denominate col1col2, ecol3. Tutte le colonne sono di tipo string. Per visualizzare le colonne nella tabella, il comando seguente utilizza l'istruzione SHOW COLUMNS.

SHOW COLUMNS IN names_cities

Risultato della query:

col1 col2 col3

Il comando ALTER TABLE REPLACE COLUMNS di seguito riportato sostituisce i nomi delle colonne con first_name, last_name ecity. I dati di origine sottostanti non sono interessati.

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

Per testare il risultato, SHOW COLUMNS viene eseguito nuovamente.

SHOW COLUMNS IN names_cities

Risultato della query:

first_name last_name city

Un altro modo per mostrare i nuovi nomi di colonna è quello di visualizzare in anteprima la tabella nell'editor di query di Athena o eseguire la propria query SELECT.