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.
Changement de nom de colonne
Vous pouvez, si vous le souhaitez, renommer les colonnes dans vos tables pour corriger l'orthographe, créer des noms de colonnes plus descriptifs, ou encore réutiliser une colonne existante afin d'éviter d'avoir à réorganiser les colonnes.
Vous pouvez renommer les colonnes si vous stockez vos données dans CSV et TSV ou dans Parquet et ORC si elles sont configurées pour être lues par index. Pour plus d’informations, veuillez consulter Comprendre l'accès aux index pour Apache ORC et Apache Parquet.
Athena lit les données dans CSV et TSV dans l'ordre des colonnes du schéma et les renvoie dans le même ordre. Il n'utilise pas de noms de colonnes pour mapper des données à une colonne, c'est pourquoi vous pouvez renommer les colonnes en interrompant CSV ou TSV non les requêtes Athena.
Une politique pour renommer les colonnes consiste à créer une nouvelle table basée sur les mêmes données sous-jacentes, mais en utilisant de nouveaux noms de colonnes. L'exemple suivant crée une nouvelle table orders_parquet
appelée orders_parquet_column_renamed
. L'exemple change le nom `o_totalprice`
de la colonne en `o_total_price`
et exécute ensuite une requête dans 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/';
Dans le cas de la table Parquet, la requête suivante s'exécute, mais la colonne renommée n'affiche pas de données, car l'accès à la colonne s'est fait par nom (par défaut dans Parquet) et non par index :
SELECT * FROM orders_parquet_column_renamed;
Une requête contenant une table se CSV présente de la même manière :
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/';
Dans le cas d'une CSV table, la requête suivante s'exécute et les données s'affichent dans toutes les colonnes, y compris celle qui a été renommée :
SELECT * FROM orders_csv_column_renamed;