Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ubah Nama kolom
Anda mungkin ingin mengubah nama kolom dalam tabel Anda untuk memperbaiki ejaan, membuat nama kolom lebih deskriptif, atau untuk menggunakan kembali kolom yang ada untuk menghindari penataan ulang kolom.
Anda dapat mengganti nama kolom jika Anda menyimpan data Anda di CSV danTSV, atau di Parket dan ORC yang dikonfigurasi untuk dibaca berdasarkan indeks. Untuk informasi, lihat Memahami akses indeks untuk Apache ORC dan Apache Parquet.
Athena membaca data dalam CSV dan TSV dalam urutan kolom dalam skema dan mengembalikannya dalam urutan yang sama. Itu tidak menggunakan nama kolom untuk memetakan data ke kolom, itulah sebabnya Anda dapat mengganti nama kolom di CSV atau TSV tanpa melanggar kueri Athena.
Salah satu strategi untuk mengubah nama kolom adalah untuk membuat tabel baru berdasarkan data yang mendasari sama, tetapi menggunakan nama kolom baru. Contoh berikut akan membuat orders_parquet
baru menggunakan orders_parquet_column_renamed
. Contoh mengubah nama `o_totalprice`
kolom ke `o_total_price`
, kemudian menjalankan kueri di 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/';
Dalam kasus tabel Parquet, kueri berikut berjalan, tetapi kolom berganti nama tidak menunjukkan data karena kolom sedang diakses oleh nama (default di Parquet) bukan oleh indeks:
SELECT * FROM orders_parquet_column_renamed;
Kueri dengan tabel CSV terlihat serupa:
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/';
Dalam kasus CSV tabel, kueri berikut berjalan dan data ditampilkan di semua kolom, termasuk yang diganti namanya:
SELECT * FROM orders_csv_column_renamed;