投稿日: Oct 20, 2020

Amazon Redshift で、単一のステートメントで既存の列の圧縮エンコーディングを変更できるようになりました。この新しい機能により、Amazon Redshift で最適な圧縮エンコーディングの維持が容易になり、高いパフォーマンスを実現し、ストレージ使用率を削減できます。  

圧縮エンコーディングは、行がテーブルに追加されるときに列のデータ値に適用される圧縮の種類を指定します。適切なエンコーディングを選択すると、列にアクセスするクエリのパフォーマンスが向上すると同時に、列のストレージ使用率を低減できます。CREATE TABLE または ALTER TABLE のステートメントを使用して、テーブルを作成するときに列の圧縮エンコーディングを指定できます。圧縮を指定しない場合、Amazon Redshift はテーブルデータに基づいてデフォルトの圧縮エンコーディングを自動的に割り当てます。 

このリリースでは、AZ64 などの Amazon Redshift 圧縮テクノロジーのメリットを簡単に利用できるようになります。AZ64 は、ZSTD よりも 5~10% 少ないストレージ消費で、クエリを 70% さらに高速で実行できる新しい圧縮エンコーディングです。以前は、AZ64 などの新しいエンコーディングアルゴリズムの利用を希望するお客様は、テーブル全体を再作成する必要がありました。Redshift では、SORT キーとして定義された列を圧縮しないことを推奨しているため、以前は既存のテーブルに並べ替えキーを適用するお客様は、テーブル全体を再作成する必要がありました。列圧縮エンコーディングを変更する今回の新しい機能により、このプロセスはより速く、より簡単になり、テーブルへのアクセスには影響を与えません。 

新しい ALTER TABLE <tbl> ALTER COLUMN <col> ENCODE <enc> コマンドを使用すると、Redshift テーブルの圧縮エンコーディングを動的に変更することができます。Redshift は、背後でデータ圧縮を調整し、ユーザーがクエリを実行できるようにテーブルを引き続き使用します。ユーザーは、必要な回数だけ特定のテーブルの列エンコーディングを変更でき、複数のテーブルのエンコーディングを同時に変更できます。 

ALTER TABLE ENCODING の詳細については、ドキュメントを参照してください。

この機能は、Redshift 1.0.19506 以降でご利用いただけます。Amazon Redshift を利用できるリージョンについては、AWS リージョン表をご覧ください。