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à.
Rinominare le colonne
È possibile rinominare le colonne nelle tabelle per correggere l'ortografia, rendere i nomi delle colonne più descrittivi o riutilizzare una colonna esistente per evitare il riordinamento delle colonne.
Puoi rinominare le colonne se memorizzi i dati in CSV and o in Parquet e TSV se sono configurate per ORC la lettura per indice. Per informazioni, consultare Comprendi l'accesso all'indice per Apache e Apache Parquet ORC.
Athena legge i dati nell'CSVordine delle colonne dello schema e li restituisce nello stesso ordine. TSV Non utilizza nomi di colonna per mappare i dati su una colonna, motivo per cui è possibile rinominare le colonne all'interno CSV o TSV senza interrompere le query Athena.
Una strategia per rinominare le colonne consiste nel creare una nuova tabella basata sugli stessi dati sottostanti, ma utilizzando nuovi nomi di colonna. Il seguente esempio crea una nuova tabella orders_parquet
chiamata orders_parquet_column_renamed
. L'esempio modifica il nome `o_totalprice`
della colonna in `o_total_price`
e quindi esegue una query in Athena:
CREATE EXTERNAL TABLE orders_parquet_column_renamed ( `o_orderkey` int, `o_custkey` int, `o_orderstatus` string, `o_total_price` double, `o_orderdate` string, `o_orderpriority` string, `o_clerk` string, `o_shippriority` int, `o_comment` string ) STORED AS PARQUET LOCATION 's3://amzn-s3-demo-bucket/orders_parquet/';
Nel caso della tabella Parquet, la query seguente viene eseguita, ma la colonna rinominata non mostra i dati poiché l'accesso alla stessa è avvenuto per nome (impostazione predefinita in Parquet) anziché per indice:
SELECT * FROM orders_parquet_column_renamed;
Una query con una tabella ha un aspetto simile: CSV
CREATE EXTERNAL TABLE orders_csv_column_renamed ( `o_orderkey` int, `o_custkey` int, `o_orderstatus` string, `o_total_price` double, `o_orderdate` string, `o_orderpriority` string, `o_clerk` string, `o_shippriority` int, `o_comment` string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 's3://amzn-s3-demo-bucket/orders_csv/';
Nel caso della CSV tabella, viene eseguita la seguente query e i dati vengono visualizzati in tutte le colonne, inclusa quella che è stata rinominata:
SELECT * FROM orders_csv_column_renamed;