

 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/)を参照してください。

# 保存データのサイズを削減するための列圧縮
<a name="t_Compressing_data_on_disk"></a>

*圧縮*は、データの保存時にそのサイズを小さくする列レベルのオペレーションです。圧縮によってストレージスペースが節約され、ストレージから読み込まれるデータのサイズが小さくなり、ディスク I/O の量が減少するので、クエリパフォーマンスが向上します。

ENCODE AUTO は、テーブルのデフォルトです。テーブルが ENCODE AUTO に設定されると、Amazon Redshift は、テーブル内のすべての列の圧縮エンコードを自動的に管理します。詳細については、「[CREATE TABLE](r_CREATE_TABLE_NEW.md)」および「[ALTER TABLE](r_ALTER_TABLE.md)」を参照してください。

ただし、テーブル内のいずれかの列に圧縮エンコードを指定すると、テーブルは ENCODE AUTO に設定されなくなります。Amazon Redshift は、テーブルにあるすべての列の圧縮エンコードを自動的に管理しないようになりました。

テーブルを作成するときに、テーブルの列に圧縮タイプまたは*エンコード*を手動で適用できます。または、COPY コマンドを使用すると、自動的に圧縮を分析および適用できます。詳細については、「[COPY による圧縮エンコードの選択](c_best-practices-use-auto-compression.md)」を参照してください。自動圧縮の適用の詳細については、「[自動圧縮ありでテーブルをロードする](c_Loading_tables_auto_compress.md)」を参照してください。

**注記**  
COPY コマンドを使用して自動圧縮を適用することを強くお勧めします。

新しいテーブルが別のテーブルと同じデータ特性を共有している場合は、圧縮エンコードを手動で適用することを選択できます。または、自動圧縮時に適用される圧縮エンコードがデータにとって最適ではないことがテストで判明した場合は、ユーザーが管理することもできます。圧縮エンコードを手動で適用する場合は、すでに入力されているテーブルに対して [ANALYZE COMPRESSION](r_ANALYZE_COMPRESSION.md) コマンドを再実行し、その結果を使用して圧縮エンコードを選択することができます。

圧縮を手動で適用するには、CREATE TABLE ステートメントの一部として個々の列に対して圧縮エンコードを指定します。構文は次のとおりです。

```
CREATE TABLE table_name (column_name 
data_type ENCODE encoding-type)[, ...]
```

ここで、*encoding-type* には次のセクションのキーワード表から選択します。

例えば、次のステートメントは 2 列のテーブル PRODUCT を作成します。データがテーブルにロードされるときに、PRODUCT\$1ID 列は圧縮されませんが、PRODUCT\$1NAME 列はバイトディクショナリエンコード (BYTEDICT) を使用して圧縮されます。

```
create table product(
product_id int encode raw,
product_name char(20) encode bytedict);
```

ALTER TABLE コマンドを使用して列をテーブルに追加する際には、列のエンコードを指定できます。

```
ALTER TABLE table-name ADD [ COLUMN ] column_name column_type ENCODE encoding-type
```

**Topics**
+ [圧縮エンコード](c_Compression_encodings.md)
+ [圧縮エンコードのテスト](t_Verifying_data_compression.md)