ワークロード管理
このセクションでは、Amazon Redshift がクエリを準備して実行する方法を理解するのに役立つワークロード管理 (WLM) について説明します。
Amazon Redshift のワークロード管理 (WLM) により、ユーザーはワークロード内の柔軟な優先順位が可能になります。これにより、実行速度が高く処理時間の短いクエリが、処理時間の長いクエリの後に滞らないようにできます。Amazon Redshift は、サービスクラスに従ってランタイム時にクエリキューを作成します。サービスクラスでは、内部システムキューやユーザーからアクセスが可能なキューなどの、さまざまな種類のキューに対する設定パラメータが定義されています。ユーザーから見た場合、ユーザーアクセス可能サービスクラスとキューは機能的に同じものです。一貫性を保つため、このドキュメントでは、ユーザーアクセス可能サービスクラスとランタイムキューは、キューという用語を使用して表します。
Redshift は、自動 WLM と呼ばれる自動ワークロード管理を提供します。これは、さまざまなワークロードを処理するように調整され、推奨されるデフォルトです。自動 WLM を使用すると、Redshift はクエリが到着したときにリソース使用率を判断し、それらをメインクラスターで実行するか、通貨スケーリングクラスターで実行するか、それぞれをキューに送信するかを動的に決定します。(クエリがキューに入れられると、自動 WLM はより期間の短いクエリを優先します)。自動 WLM は合計スループットを最大化し、効率的なデータウェアハウスリソースを維持できます。ワークロードは、サイズやスケジュールを心配することなく実行できます。自動 WLM は、プロビジョニングされたクラスターのデフォルトです。詳細については、「自動 WLM の実装」を参照してください。
注記
Amazon Redshift Serverless ワークグループは常に自動 WLM を使用します。
大量のクエリやリソースを大量に消費するクエリが実行されている場合、ワークロード管理は、ワークロードがローカルリソースでキューに入っているときに、追加のコンピューティングリソースにスケールできます。同時実行スケーリングと自動 WLM を一緒に使用すると、事実上無制限の同時ユーザーと同時クエリに対して一貫したパフォーマンスでサポートできます。
Redshift プロビジョニングクラスターは、きめ細かな手動での最適化が必要な場合に手動 WLM を提供します。ここでは、カスタマーはリソースの割り当て、クエリの同時実行、キューイングを管理します。クエリを実行すると、WLM は、ユーザーのユーザーグループに従ってクエリをキューに割り当てるか、キューの設定でリストされているキューグループを照合することによってクエリをキューに割り当てます。これは、ユーザーが設定したクエリグループラベルで設定されます。詳細については、「手動 WLM を実装する」を参照してください。
手動 WLM はワークロードパターンに合わせて時間の経過とともに微調整できますが、ほとんどの場合、その静的な性質のため、1 日または長期間にわたって変化するワークロードに適応することが困難になる可能性があるため、使用はお勧めしません。より多くのモニタリングと継続的な調整が必要となります。また、多くの場合、手動 WLM は自動 WLM ほど効率的にコンピューティングリソースを使用しません。例えば、キューが手動で設定され、割り当てられたメモリが制限される場合などです。
ワークロード管理設定の成功を測定するための重要なメトリクスは、システムスループットです。つまり、これは正常に完了したクエリの数のことです。システムスループットは 1 秒あたりのクエリ数で測定されます。詳細については、「Amazon Redshift クラスターパフォーマンスのモニタリング」を参照してください。
WLM の設定を管理するには、Amazon Redshift マネジメントコンソールを使用することが最も簡単です。さらに、Amazon Redshift コマンドラインインターフェイス (CLI) または Amazon Redshift API を使用することもできます。ワークロード管理の実装と使用の詳細については、「ワークロード管理の実装」を参照してください。