ALTER TABLE REPLACE COLUMNS
LazySimpleSerDe로 생성된 테이블에서 모든 열을 제거하고 지정된 열 집합으로 대체합니다. 선택적 PARTITION
구문을 사용할 때 파티션 메타데이터를 업데이트합니다. ALTER TABLE REPLACE
COLUMNS
를 사용하여 유지하려는 열만 지정해 열을 삭제할 수도 있습니다.
시놉시스
ALTER TABLE table_name
[PARTITION
(partition_col1_name = partition_col1_value
[,partition_col2_name = partition_col2_value][,...])]
REPLACE COLUMNS (col_name data_type [, col_name data_type, ...])
파라미터
- PARTITION (partition_col_name = partition_col_value [,...])
-
지정한 열 이름/값 조합으로 파티션을 지정합니다. 열의 데이터 형식이 문자열인 경우에만 인용 부호로
partition_col_value
를 묶습니다. - REPLACE COLUMNS (col_name data_type [,col_name data_type,...])
-
기존 열을 지정된 열 이름 및 데이터 유형으로 바꿉니다.
참고
-
ALTER TABLE REPLACE COLUMNS
실행 후 Athena 쿼리 편집기 탐색 창에서 테이블 열의 변경을 확인하려면 편집기의 테이블 목록을 수동으로 새로 고친 다음 테이블을 다시 확장해야 할 수 있습니다. -
ALTER TABLE REPLACE COLUMNS
는date
데이터 형식을 가진 열에 대해 작동하지 않습니다. 이 문제를 해결하려면 테이블에서timestamp
데이터 형식을 대신 사용하세요. -
단 하나의 열만 바꾸는 경우에도 구문은
ALTER TABLE
와 같이 columns가 복수형이어야 합니다. 바꾸려는 열뿐만 아니라 유지하려는 열도 지정해야 합니다. 그렇지 않으면 지정하지 않은 열이 삭제됩니다. 이 구문과 동작은 Apache Hive DDL에서 파생됩니다. Apache 설명서에서 열 추가/바꾸기table-name
REPLACE COLUMNS를 참조하세요.
예
다음 예에서 LazySimpleSerDe를 사용하여 만든 테이블 names_cities
에는 col1
, col2
및 col3
이라는 세 개의 열이 있습니다. 모든 열은 string
형식입니다. 테이블의 열을 표시하기 위해 다음 명령에서는 SHOW COLUMNS 문을 사용합니다.
SHOW COLUMNS IN names_cities
쿼리의 결과:
col1 col2 col3
다음 ALTER TABLE REPLACE COLUMNS
명령은 열 이름을 first_name
, last_name
및 city
로 바꿉니다. 기본 소스 데이터는 영향을 받지 않습니다.
ALTER TABLE names_cities REPLACE COLUMNS (first_name string, last_name string, city string)
결과를 테스트하기 위해 SHOW COLUMNS
를 다시 실행합니다.
SHOW COLUMNS IN names_cities
쿼리의 결과:
first_name last_name city
새 열 이름을 표시하는 또 다른 방법은 Athena 쿼리 편집기에서 표를 미리 보거나 자체 SELECT
쿼리를 실행하는 것입니다.