メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

列圧縮タイプの選択

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

デフォルトでは、Amazon Redshift は非圧縮の raw 形式でデータを格納します。テーブルの作成時に圧縮タイプ、つまり圧縮エンコードをテーブルの列に手動で適用するか、または COPY コマンドを使用して圧縮を自動的に分析して適用することができます。自動圧縮の適用の詳細については、「自動圧縮ありでテーブルをロードする」を参照してください。

注記

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

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

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

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

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

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

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

テーブルの作成後に列の圧縮エンコードを変更することはできません。ALTER TABLE コマンドを使用して列をテーブルに追加する際には、列のエンコードを指定できます。

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