

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# CTAS 예
<a name="r_CTAS_examples"></a>

다음 예에서는 EVENT 테이블에 대해 EVENT\_BACKUP이라는 테이블을 생성합니다.

```
create table event_backup as select * from event;
```

결과 테이블은 EVENT 테이블에서 배포 키와 정렬 키를 상속합니다.

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'event_backup';

column    | type                        | encoding | distkey | sortkey
----------+-----------------------------+----------+---------+--------
catid     | smallint                    | none     | false   |       0
dateid    | smallint                    | none     | false   |       1
eventid   | integer                     | none     | true    |       0
eventname | character varying(200)      | none     | false   |       0
starttime | timestamp without time zone | none     | false   |       0
venueid   | smallint                    | none     | false   |       0
```

다음 명령은 EVENT 테이블에서 4개의 열을 선택하여 EVENTDISTSORT라는 새 테이블을 생성합니다. 새 테이블은 EVENTID를 기준으로 배포되고 EVENTID 및 DATEID를 기준으로 정렬됩니다.

```
create table eventdistsort
distkey (1)
sortkey (1,3)
as
select eventid, venueid, dateid, eventname
from event;
```

결과는 다음과 같습니다.

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'eventdistsort';

column   |          type          | encoding | distkey | sortkey
---------+------------------------+----------+---------+-------
eventid   | integer               | none     | t       | 1
venueid   | smallint              | none     | f       | 0
dateid    | smallint              | none     | f       | 2
eventname | character varying(200)| none     | f       | 0
```

배포 키 및 정렬 키에 대한 열 이름을 사용하여 같은 테이블을 정확하게 생성할 수 있습니다. 예:

```
create table eventdistsort1
distkey (eventid)
sortkey (eventid, dateid)
as
select eventid, venueid, dateid, eventname
from event;
```

다음 문은 테이블에 균등 배포를 적용하지만 명시적인 정렬 키를 정의하지 않습니다.

```
create table eventdisteven
diststyle even
as
select eventid, venueid, dateid, eventname
from event;
```

새 테이블에 대해 EVEN 배포가 지정되어 있으므로 테이블이 EVENT 테이블(EVENTID)에서 정렬 키를 상속하지 않습니다. 새 테이블에는 정렬 키와 배포 키가 없습니다.

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'eventdisteven';

column    |          type          | encoding | distkey | sortkey
----------+------------------------+----------+---------+---------
eventid   | integer                | none     | f       | 0
venueid   | smallint               | none     | f       | 0
dateid    | smallint               | none     | f       | 0
eventname | character varying(200) | none     | f       | 0
```

다음 문은 균등 배포를 적용하고 정렬 키를 정의합니다.

```
create table eventdistevensort diststyle even sortkey (venueid)
as select eventid, venueid, dateid, eventname from event;
```

 결과 테이블에 정렬 키는 있지만 배포 키는 없습니다.

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'eventdistevensort';

column    |          type          | encoding | distkey | sortkey
----------+------------------------+----------+---------+-------
eventid   | integer                | none     | f       | 0
venueid   | smallint               | none     | f       | 1
dateid    | smallint               | none     | f       | 0
eventname | character varying(200) | none     | f       | 0
```

다음 문은 EVENTID 열에 정렬되어 있는 수신 데이터에서 다른 키 열에 EVENT 테이블을 다시 배포하고 SORTKEY 열은 정의하지 않으므로, 테이블이 정렬되지 않습니다.

```
create table venuedistevent distkey(venueid)
as select * from event;
```

결과는 다음과 같습니다.

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'venuedistevent';

 column   |            type             | encoding | distkey | sortkey
----------+-----------------------------+----------+---------+-------
eventid   | integer                     | none     | f       | 0
venueid   | smallint                    | none     | t       | 0
catid     | smallint                    | none     | f       | 0
dateid    | smallint                    | none     | f       | 0
eventname | character varying(200)      | none     | f       | 0
starttime | timestamp without time zone | none     | f       | 0
```