Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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 mengubah nama kolom jika Anda menyimpan data Anda di CSV dan TSV, atau di Parquet 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 mengembalikan mereka dalam urutan yang sama. Ini tidak menggunakan nama kolom untuk pemetaan data ke kolom, itulah sebabnya Anda dapat mengubah nama kolom di CSV atau TSV tanpa melanggar permintaan 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 di 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 tabel CSV, kueri berikut berjalan dan menampilkan data di semua kolom, termasuk salah satu yang diubah namanya:
SELECT *
FROM orders_csv_column_renamed;