ALTER TABLE REPLACE COLUMNS - Amazon Athena

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 COLUMNSdate 데이터 형식을 가진 열에 대해 작동하지 않습니다. 이 문제를 해결하려면 테이블에서 timestamp 데이터 형식을 대신 사용하세요.

  • 단 하나의 열만 바꾸는 경우에도 구문은 ALTER TABLE table-name REPLACE COLUMNS와 같이 columns가 복수형이어야 합니다. 바꾸려는 열뿐만 아니라 유지하려는 열도 지정해야 합니다. 그렇지 않으면 지정하지 않은 열이 삭제됩니다. 이 구문과 동작은 Apache Hive DDL에서 파생됩니다. Apache 설명서에서 열 추가/바꾸기를 참조하세요.

다음 예에서 LazySimpleSerDe를 사용하여 만든 테이블 names_cities에는 col1, col2col3이라는 세 개의 열이 있습니다. 모든 열은 string 형식입니다. 테이블의 열을 표시하기 위해 다음 명령에서는 SHOW COLUMNS 문을 사용합니다.

SHOW COLUMNS IN names_cities

쿼리의 결과:

col1 col2 col3

다음 ALTER TABLE REPLACE COLUMNS 명령은 열 이름을 first_name, last_namecity로 바꿉니다. 기본 소스 데이터는 영향을 받지 않습니다.

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 쿼리를 실행하는 것입니다.