

 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\$1BACKUP というテーブルを作成します。

```
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
```

次のステートメントでは、受信データに基づいて別のキー列で EVENT テーブルを再分散します。データは EVENTID 列に基づいてソートされており、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
```