ablog

不器用で落着きのない技術者のメモ

Amazon Redshift の VACUUM について

実行権限
  • テーブルの所有者またはスーパーユーザーのみがテーブルにバキューム処理を実行できる。

以下に、VACUUM に必要な権限を示します。

  • スーパーユーザー
  • VACUUM の権限を持つユーザー
  • テーブルの所有者
  • テーブルの共有先であるデータベース所有者
VACUUM - Amazon Redshift
モード
  • FULL(デフォルト): ソート+削除。
  • SORT ONLY: ソートのみ。
  • DELETE ONLY: 削除のみ。
  • REINDEX: Interleaved Sort Keyのメンテナンス。
  • VACUUM - Amazon Redshift
排他制御
  • VACUUM開始時にテーブルへの一時的な排他アクセスが必要になる。
  • ロード操作または挿入操作が既に進行中の場合、バキューム操作を開始できないことがあります。バキューム操作を開始するには、テーブルへの一時的な排他アクセスが必要になります。この排他アクセスは短時間しか必要でないため、バキューム操作により同時ロードと同時挿入が長時間ブロックされることはありません。
VACUUM - Amazon Redshift
  • ユーザーは、バキューム処理中のテーブルにアクセスできる。バキューム処理中のテーブルにクエリおよび書き込み操作を実行できるが、データ操作言語 (DML) コマンドおよびバキュームを同時に実行すると両方の処理時間が長くなる可能性がある。バキューム処理中にUPDATEおよびDELETEステートメントを実行する場合は、システムのパフォーマンスが低減する場合がある。VACUUM DELETEは、更新操作と削除操作を一時的にブロックする。
  • バキューム操作の実行中、クエリのパフォーマンスがある程度低下することが予想されます。バキューム操作が終了すると直ちに通常のパフォーマンスに戻ります。
  • バキュームオペレーション中にも、同時実行書き込みオペレーションは進行しますが、バキューム中の書き込みオペレーションの実行は推奨されていません。バキューム操作を実行する前に、書き込み操作を終了する方がより効率的です。また、バキューム操作開始後に書き込まれたすべてのデータは、その操作でバキュームすることができません。その場合は 2 回目のバキューム操作が必要です。
  • ロード操作または挿入操作が既に進行中の場合、バキューム操作を開始できないことがあります。バキューム操作を開始するには、テーブルへの一時的な排他アクセスが必要になります。この排他アクセスは短時間しか必要でないため、バキューム操作により同時ロードと同時挿入が長時間ブロックされることはありません。
VACUUM - Amazon Redshift
その他
  • 一度にクラスターで実行できるVACUUMコマンドは1つだけ。
  • 一度にクラスターで実行できる VACUUM コマンドは 1 つだけです。複数のバキューム動作を同時に実行しようとすると、Amazon Redshift はエラーを返します。
VACUUM - Amazon Redshift
VACUUM - Amazon Redshift
  • VACUUMではANALYZEはされない。
VACUUM を減らす
  • 以下の条件を全て満たす場合、COPY コマンドでロード時にソートされた状態でロードされほぼ VACUUM 不要。

If you load your data in sort key order using a COPY command, you might reduce or even eliminate the need to vacuum.
COPY automatically adds new rows to the table's sorted region when all of the following are true:

  • The table uses a compound sort key with only one sort column.
  • The sort column is NOT NULL.
  • The table is 100 percent sorted or empty.
  • All the new rows are higher in sort order than the existing rows, including rows marked for deletion. In this instance, Amazon Redshift uses the first eight bytes of the sort key to determine sort order.
ソートキー順序でデータをロードする - Amazon Redshift