

# 열 이름 변경하기
<a name="updates-renaming-columns"></a>

철자를 수정하거나, 열 이름에 설명을 포함시키거나, 열이 재정렬되지 않도록 기존 열을 다시 사용하기 위해 테이블의 열 이름을 바꿔야 할 수 있습니다.

데이터를 CSV 및 TSV 형식 또는 Parquet 및 ORC 형식(인덱스로 읽도록 구성된 경우)으로 저장한 경우 열 이름을 변경할 수 있습니다. 자세한 내용은 [Apache ORC 및 Apache Parquet의 인덱스 액세스에 대한 이해](handling-schema-updates-chapter.md#index-access) 섹션을 참조하세요.

Athena는 스키마의 열 순서대로 CSV 및 TSV 형식의 데이터를 읽고 이를 동일한 순서로 반환합니다. 데이터를 열에 매핑할 때 열 이름을 사용하지 않기 때문에, Athena 쿼리를 중단하지 않고 CSV 또는 TSV 형식의 열 이름을 바꿀 수 있습니다.

열 이름을 바꾸는 한 가지 전략은 동일한 기본 데이터를 기반으로 새 테이블을 만들되 새 열 이름을 사용하는 것입니다. 다음 예제에서는 `orders_parquet_column_renamed`라는 새 `orders_parquet` 테이블을 만듭니다. 이 예제는 열 이름 ``o_totalprice``를 ``o_total_price``로 변경한 다음 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/';
```

Parquet 테이블의 경우 다음 쿼리가 실행되지만 인덱스 대신 이름으로 열에 액세스(Parquet의 기본값)하므로 이름을 바꾼 열에 데이터가 표시되지 않습니다.

```
SELECT * 
FROM orders_parquet_column_renamed;
```

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/';
```

CSV 테이블의 경우, 다음 쿼리가 실행되고 이름이 바뀐 열을 포함한 모든 열에 데이터가 표시됩니다:

```
SELECT * 
FROM orders_csv_column_renamed;
```