ワークロード管理の実装 - Amazon Redshift

ワークロード管理の実装

ワークロード管理 (WLM) を使用して複数のクエリキューを定義し、実行時にクエリを適切なキューに配信することができます。

複数のセッションやユーザーが同時にクエリを実行している場合があります。このような場合、一部のクエリがクラスターリソースを長時間消費して、他のクエリのパフォーマンスに影響を与えることがあります。例えば、あるユーザーグループが、複数の大規模なテーブルの行を選択して並べ替える、実行時間の長い複雑なクエリをときどき送信するとします。別のグループは、1 つまたは 2 つのテーブルから数行のみを選択し、数秒実行される短いクエリを頻繁に送信します。この状況では、実行時間が短いクエリは、実行時間が長いクエリが完了するまでキューで待機しなければならない場合があります。WLM は、このソリューションの管理に役立ちます。

Amazon Redshift WLM は、自動 WLM または手動 WLM で実行するように設定できます。

自動 WLM

システムのスループットを最大化し、リソースを効率的に使用するには、Amazon Redshift で、同時実行クエリを自動 WLM で実行するためのリソースの分割方法を管理できます。自動 WLM は、クエリの実行に必要なリソースを管理します。Amazon Redshift は、ディスパッチされたクエリごとに割り当てる同時実行クエリ数とメモリ量を決定します。自動 WLM を Amazon Redshift コンソールを使用して有効にするには、[Switch WLM mode (WLM モードの切り替え)]、[Auto WLM (自動 WLM)] の順に選択します。このオプションでは、最大 8 個のキューを使用してクエリを管理します。[メモリ] フィールドと [Concurrency on main (メインでの同時実行数)] フィールドはいずれも、[Auto (自動)] に設定されます。各キューにマップするワークロードまたはユーザーのビジネス優先度を反映する優先度を指定できます。デフォルトでは、クエリの優先度は、[Normal] に設定されます。キュー内のクエリの優先度を変更する方法については、「クエリ優先度」を参照してください。詳細については、「自動 WLM の実装」を参照してください。

実行時に、ユーザーグループまたはクエリグループに従って、これらのクエリをキューに配信できます。また、実行時間が長いクエリを制限するようにクエリモニタリングルール (QMR) を設定することもできます。

同時実行スケーリングや自動 WLM を使用すると、一貫した高速のクエリパフォーマンスで、事実上無制限の同時ユーザーと同時クエリをサポートできます。詳細については、「同時実行スケーリングを使用する」を参照してください。

注記

パラメータグループを作成し、自動 WLM を選択してクエリリソースを管理することをお勧めします。手動 WLM から自動 WLM に移行する方法の詳細については、「手動 WLM から自動 WLM に移行する」を参照してください。

手動 WLM

別の方法として、システムパフォーマンスとユーザーエクスペリエンスを管理するには、WLM 設定を変更して、実行時間が長いクエリと短いクエリ用に異なるキューを作成できます。実行時に、ユーザーグループまたはクエリグループに従って、これらのクエリをキューに配信できます。この手動設定を有効にするには、Amazon Redshift コンソールで [Manual WLM (手動 WLM)] に切り替えます。このオプションでは、管理する対象のキューと、[メモリ] フィールドおよび [Concurrency on main (メインでの同時実行数)] フィールドの値を指定します。手動設定では、クエリキューを最大 8 個設定できます。さらに、これらのキューごとに同時実行できるクエリの数を設定できます。

クエリを実行するユーザーや指定したラベルに基づいて特定のキューにクエリをルーティングするためのルールを設定できます。各キューに割り当てるメモリの量を設定することによって、大きいクエリを他のキューよりメモリの多いキューで実行することもできます。また、実行時間が長いクエリを制限するようにクエリモニタリングルール (QMR) を設定することもできます。詳細については、「手動 WLM を実装する」を参照してください。

注記

手動 WLM クエリキューのクエリスロットは合計 15 個以下にすることをお勧めします。詳細については、「同時実行レベル」を参照してください。

WLM キューイングの制限事項

手動 WLM 設定では、キューに割り当てることができる最大スロット数は 50 であることに注意してください。ただし、これは、自動 WLM 設定で Amazon Redshift クラスターが常に 50 個のクエリを同時に実行するという意味ではありません。これは、必要なメモリやクラスター上の他の種類のリソース割り当てに基づいて変わる可能性があります。

自動 WLM と手動 WLM のユースケース

Amazon Redshift で、同時実行クエリを実行するためにリソースの分割方法を管理する場合は、自動 WLM を使用します。自動 WLM を使用すると、手動 WLM よりもスループットが高くなることがよくあります。自動 WLM では、キュー内のワークロードのクエリ優先順位を定義できます。クエリの優先度の詳細については、「クエリ優先度」を参照してください。

同時実行をより細かく制御する場合は、手動 WLM を使用してください。