

# Iceberg 테이블 스키마 개선
<a name="querying-iceberg-evolving-table-schema"></a>

Iceberg 스키마 업데이트는 메타데이터 전용 변경 사항입니다. 스키마 업데이트를 수행할 때 데이터 파일은 변경되지 않습니다.

Iceberg 형식은 다음과 같은 스키마 진화 변경을 지원합니다.
+ **추가** - 테이블 또는 중첩된 `struct`에 새 열을 추가합니다.
+ **삭제** - 테이블이나 중첩된 `struct`에서 기존 열을 제거합니다.
+ **이름 바꾸기** - 중첩된 `struct`에서 기존 열 또는 필드의 이름을 바꿉니다.
+ **재정렬** - 열의 순서를 변경합니다.
+  **형식 승격** - 열, `struct` 필드, `map` 키, `map` 값 또는 `list` 요소의 형식을 확장합니다. 현재 Iceberg 테이블에 대해 다음과 같은 경우를 지원합니다.
  + integer에서 big integer로
  + float에서 double로
  + decimal 형식의 정밀도 증가

이 섹션의 DDL 문을 사용하여 Iceberg 테이블 스키마를 수정할 수 있습니다.

**Topics**
+ [ALTER TABLE ADD COLUMNS](querying-iceberg-alter-table-add-columns.md)
+ [ALTER TABLE DROP COLUMN](querying-iceberg-alter-table-drop-column.md)
+ [ALTER TABLE CHANGE COLUMN](querying-iceberg-alter-table-change-column.md)
+ [SHOW COLUMNS](querying-iceberg-show-columns.md)

# ALTER TABLE ADD COLUMNS
<a name="querying-iceberg-alter-table-add-columns"></a>

기존 Iceberg 테이블에 하나 이상의 열을 추가합니다.

## 시놉시스
<a name="querying-iceberg-alter-table-add-columns-synopsis"></a>

```
ALTER TABLE [db_name.]table_name ADD COLUMNS (col_name data_type [,...])
```

## 예제
<a name="querying-iceberg-alter-table-add-columns-example"></a>

다음 예제는 `string` 형식의 `comment` 열을 Iceberg 테이블에 추가합니다.

```
ALTER TABLE iceberg_table ADD COLUMNS (comment string)
```

다음 예제는 `struct` 형식의 `point` 열을 Iceberg 테이블에 추가합니다.

```
ALTER TABLE iceberg_table 
ADD COLUMNS (point struct<x: double, y: double>)
```

다음 예제는 구조체 배열인 `points` 열을 Iceberg 테이블에 추가합니다.

```
ALTER TABLE iceberg_table 
ADD COLUMNS (points array<struct<x: double, y: double>>)
```

# ALTER TABLE DROP COLUMN
<a name="querying-iceberg-alter-table-drop-column"></a>

기존 Iceberg 테이블에서 열을 삭제합니다.

## 시놉시스
<a name="querying-iceberg-alter-table-drop-column-synopsis"></a>

```
ALTER TABLE [db_name.]table_name DROP COLUMN col_name
```

## 예제
<a name="querying-iceberg-alter-table-drop-column-example"></a>

```
ALTER TABLE iceberg_table DROP COLUMN userid
```

# ALTER TABLE CHANGE COLUMN
<a name="querying-iceberg-alter-table-change-column"></a>

Iceberg 테이블의 열에서 이름, 유형, 순서 또는 설명을 변경합니다.

**참고**  
`ALTER TABLE REPLACE COLUMNS`는 지원되지 않습니다. `REPLACE COLUMNS`는 모든 열을 제거한 다음 새 열을 추가하므로 Iceberg에서 지원되지 않습니다. `CHANGE COLUMN`은 스키마 변화에 선호되는 구문입니다.

## 시놉시스
<a name="querying-iceberg-alter-table-change-column-synopsis"></a>

```
ALTER TABLE [db_name.]table_name
  CHANGE [COLUMN] col_old_name col_new_name column_type 
  [COMMENT col_comment] [FIRST|AFTER column_name]
```

## 예제
<a name="querying-iceberg-alter-table-change-column-example"></a>

```
ALTER TABLE iceberg_table CHANGE comment blog_comment string AFTER id
```

# SHOW COLUMNS
<a name="querying-iceberg-show-columns"></a>

테이블의 열을 표시합니다.

## 시놉시스
<a name="querying-iceberg-show-columns-synopsis"></a>

```
SHOW COLUMNS (FROM|IN) [db_name.]table_name
```

## 예제
<a name="querying-iceberg-alter-table-change-column-example"></a>

```
SHOW COLUMNS FROM iceberg_table
```