自動テーブル最適化の使用 - Amazon Redshift

自動テーブル最適化の使用

自動テーブル最適化は、管理者の介入を必要とせずに、ソートキーとディストリビューションキーを適用することにより、テーブルの設計を自動的に最適化するセルフチューニング機能です。自動化を使用してテーブルの設計を調整することで、テーブルの最適化を手動で調整して実装するために時間を費やすことなく、より簡単に開始し、最速のパフォーマンスをすばやく得ることができます。

自動テーブル最適化は、クエリがテーブルとどのように相互作用するかを継続的に監視します。高度な人工知能メソッドを使用して、ソートキーとディストリビューションキーを選択し、クラスターのワークロードパフォーマンスを最適化します。Amazon Redshift がキーを適用することでクラスターのパフォーマンスが向上すると判断した場合、テーブルは、クラスターが作成されてから数時間以内に自動的に変更され、クエリへの影響は最小限に抑えられます。

この自動化を利用するために、Amazon Redshift 管理者が新しいテーブルを作成するか、既存のテーブルを変更して自動最適化を使用できるようにします。ディストリビューションスタイルまたはソートキーがある AUTO の既存のテーブルでは、すでに自動化が有効になっています。これらのテーブルに対してクエリを実行すると、Amazon Redshift はソートキーまたはディストリビューションキーによってパフォーマンスが向上するかどうかを判断します。その場合、Amazon Redshift は管理者の介入を必要とせずにテーブルを自動的に変更します。最小数のクエリが実行されると、クラスターの起動から数時間以内に最適化が適用されます。

Amazon Redshift が、ディストリビューションキーによってクエリのパフォーマンスが向上すると判断した場合、ディストリビューションスタイルが AUTO のテーブルでは、ディストリビューションスタイルを KEY に変更できます。

自動テーブル最適化の有効化

デフォルトでは、ソートキーまたはディストリビューションキーを明示的に定義せずに作成されたテーブルは AUTO に設定されています。テーブルの作成時に、ソートキーまたはディストリビューションキーを手動で明示的に設定することもできます。ソートキーまたはディストリビューションキーを設定した場合、テーブルは自動的に管理されません。

既存のテーブルを自動的に最適化できるようにするには、ALTER ステートメントオプションを使用して、テーブルを AUTO に変更します。ソートキーには自動化を定義できますが、ディストリビューションキーには自動化を定義することができません (逆も同様)。ALTER ステートメントを実行してテーブルを自動テーブルに変換する場合、既存のソートキーとディストリビューションスタイルは保持されます。

ALTER TABLE table_name ALTER SORTKEY AUTO;
ALTER TABLE table_name ALTER DISTSTYLE AUTO;

詳細については、「ALTER TABLE」を参照してください。

最初は、テーブルにはディストリビューションキーまたはソートキーがありません。ディストリビューションスタイルは、テーブルのサイズに応じて EVEN または ALL のいずれかに設定されます。テーブルのサイズが大きくなるにつれて、Amazon Redshift は最適なディストリビューションキーとソートキーを適用します。最適化は、最小数のクエリが実行されてから数時間以内に適用されます。ソートキーの最適化を決定するとき、Amazon Redshift はテーブルスキャン中にディスクから読み込んだデータブロックを最適化しようとします。ディストリビューションスタイルの最適化を決定するとき、Amazon Redshift はクラスターノード間で転送されるバイト数を最適化しようとします。

テーブルからの自動テーブル最適化の削除

自動最適化からテーブルを削除できます。オートメーションからテーブルを削除するには、ソートキーまたはディストリビューションスタイルを選択します。ディストリビューションスタイルを変更するには、特定のディストリビューションスタイルを指定します。

ALTER TABLE table_name ALTER DISTSTYLE EVEN;
ALTER TABLE table_name ALTER DISTSTYLE ALL;
ALTER TABLE table_name ALTER DISTSTYLE KEY DISTKEY c1;

ソートキーを変更するには、ソートキーを定義するか、[none (なし)] を選択します。

ALTER TABLE table_name ALTER SORTKEY(c1, c2);
ALTER TABLE table_name ALTER SORTKEY NONE;

自動テーブル最適化のアクションのモニタリング

システムビュー SVV_ALTER_TABLE_RECOMMENDATIONS は、テーブルに対する現在の Amazon Redshift Advisor のレコメンデーションを記録します。このビューには、自動最適化用に定義されているテーブルと定義されていないテーブルのすべてのレコメンデーションが表示されます。

テーブルが自動最適化用に定義されているかどうかを表示するには、システムビュー SVV_TABLE_INFO にクエリを実行します。エントリは、現在のセッションのデータベースに表示されているテーブルに対してのみ表示されます。レコメンデーションは、クラスターの作成時刻から数時間以内に開始され、1 日に 2 回ビューに挿入されます。レコメンデーションが利用可能になると、1 時間以内に開始されます。(Amazon Redshift またはユーザーのいずれかによって) レコメンデーションが適用されると、ビューに表示されなくなります。

システムビュー SVL_AUTO_WORKER_ACTION には、Amazon Redshift によって実行されたすべてのアクションに関する監査ログとテーブルの以前の状態が表示されます。

システムビュー SVV_TABLE_INFO には、システム内のすべてのテーブルが、テーブルのソートキーとディストリビューションスタイルが AUTO に設定されているかどうかを示す列とともに一覧表示されます。

これらのシステムビューの詳細については、システムモニタリング (プロビジョニングのみ) を参照してください。