COPY による圧縮エンコードの選択 - Amazon Redshift

COPY による圧縮エンコードの選択

テーブルを作成するときに圧縮エンコードを指定できますが、ほとんどの場合、自動圧縮が最も適切な結果を生み出します。

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

COPY コマンドは、データを分析し、ロード操作の一部として自動的に空のテーブルに圧縮エンコードを適用します。

自動圧縮では、圧縮エンコードを選択する際に全体的なパフォーマンスの負荷を分散させます。ソートキー列が、同じクエリ内の他の列よりもかなり高度に圧縮される場合、範囲が制限されたスキャンはパフォーマンスが低下する可能性があります。その結果、自動圧縮では、効率が低い圧縮エンコードを選択してソートキー列が他の列とのバランスの取れた状態を維持します。

テーブルのソートキーが日付またはタイムスタンプで、テーブルが多くの大きな varchar 列を使用しているとします。この場合、ソートキーをまったく圧縮しないことによって、より高いパフォーマンスを得ることができる可能性があります。テーブルで ANALYZE COMPRESSION のコマンドを実行し、エンコーディングを使用して新しいテーブルを作成します。ただし、ソートキーの圧縮エンコードを省いてください。

自動的な圧縮エンコードではパフォーマンスが低下しますが、これが発生するのはテーブルが空で、すでに圧縮エンコードがない場合のみです。存続期間の短いテーブルおよび頻繁に作成するテーブル (ステージングテーブルなど) の場合は、自動圧縮でテーブルを 1 回ロードするか、ANALYZE COMPRESSION コマンドを実行します。次にそれらのエンコードを使用して新しいテーブルを作成します。CREATE TABLE ステートメントにエンコードを追加するか、CREATE TABLE LIKE を使用して同じエンコードで新しいテーブルを作成できます。

詳細については、「自動圧縮ありでテーブルをロードする」を参照してください。