Amazon Redshift で特定のクエリキューを作成し、優先順位を付けたいと考えています。
簡単な説明
Amazon Redshift では、抽出変換ロード (ETL) クエリを作成し、優先順位に従って異なるキューに分けることができます。クエリは、ユーザーグループ、クエリグループ、およびクエリ割り当てルールに従って優先順位付けできます。
クエリに優先順位を付けるには、Amazon Redshift ワークロード管理 (WLM) を使用します。Amazon Redshift では、次の WLM 設定がサポートされています。
- 自動 WLM: 自動 WLM を有効にすると、クエリの同時実行性とメモリ割り当ては Amazon Redshift によって管理されます。Amazon Redshift は、クエリに必要なリソースの量を決定し、それに応じて量を調整します。手動 WLM とは異なり、自動 WLM では、ワークロードの相対的な優先度を示すクエリの優先度の値を設定できます。自動 WLM と手動 WLM の両方で、個別のクエリキューを作成できます。
- 手動 WLM: 手動 WLM は、Amazon Redshift で複数の WLM キューを管理するために使用されます。手動 WLM では、WLM クエリ同時実行スロットおよびメモリ割り当てプロパティの値を指定する必要があります。自動 WLM と手動 WLM の両方で、個別のクエリキューを作成できます。手動 WLM の場合、デフォルトの同時実行値は 5 つのクエリで、メモリ割り当ては等しく分割されます。独自のワークロードを管理したり、リソースを手動でクエリに割り当てたりする場合は、手動 WLM を使用します。
クエリに優先順位を付けるには、ユースケースに最適な WLM 設定を選択します。
解決方法
自動 WLM
自動 WLM を有効にすると、各クエリにリソースを割り当てる方法が Amazon Redshift によって自動的に決定されます。同時実行は、ワークロードに応じて調整されます。
注: 設定を運用環境に移行する前に、既存のクエリまたはワークロードで自動 WLM をテストすることをお勧めします。
自動 WLM を使用して Amazon Redshift のワークロードに優先順位を付けるには、次のステップを実行します。
- AWS マネジメントコンソールにサインインします。
- Amazon Redshift コンソールを開きます。
- ナビゲーションメニューから [CONFIG] を選択します。
- [Workload management] (ワークロード管理) を選択します。
- 変更するパラメータグループを選択します。
- 現在の WLM 設定を表示するには、[Workload management] (ワークロード管理) タブを選択します。
- (オプション) WLM パラメータグループが [Automatic WLM] (自動 WLM) モードに設定されている場合、更新は必要ありません。
- (オプション) WLM パラメータグループが [Manual WLM] (手動 WLM) モードに設定されている場合、パラメータグループの WLM 設定を変更します。[Edit workload queues] (ワークロードキューを編集) を選択して、WLM 設定を編集します。その後、[Switch WLM mode] (WLM モードを切り替え) を選択して、[Automatic WLM] (自動 WLM) に切り替えます。
- 追加のワークロードキューを追加するには、[Add queue] (キューを追加) を選択します。ワークロードごとに別々のキュー (最大 8 個のキュー) を作成し、キューをユーザーグループまたはクエリグループに関連付けることができます。
- [Save] (保存) を選択します。
- キューにクエリを割り当てます。
- キューの優先順位ステータスを設定します 。デフォルトでは、各キューには「Normal」(標準) の優先順位ステータスが割り当てられます。
注: スーパーユーザーは、クエリに「Critical」(重大) の優先度ステータス (最も高い優先度レベル) を適用できます。ワークロードが [Critical] (重大) の優先順位としてマークされている場合、一度に 1 つのクエリしか実行できません。
- (オプション) クエリとキューのパフォーマンス境界 (時間制限や同時実行レベルなど) を定義する WLM クエリモニタリングルールを作成します。たとえば、実行中のクエリが 40 秒を超える場合に、クエリの優先度ステータスを変更するようにクエリ監視ルールを設定できます。
手動 WLM
手動 WLM を有効にすると、各キューには、クラスターが使用できるメモリの一部が割り当てられます。キューのメモリは、キューのクエリスロット間で等しく分割されます。複数の WLM キューを管理している場合は、ワークロード管理 (WLM) キューを設定して、クエリ処理を改善できます。
手動 WLM を使用して Amazon Redshift のワークロードに優先順位を付けるには、次のステップを実行します。
- AWS マネジメントコンソールにサインインします。
- Amazon Redshift コンソールを開きます。
- ナビゲーションメニューから [CONFIG] を選択します。
- [Workload management] (ワークロード管理) を選択します。
- 変更するパラメータグループを選択します。
- 現在の WLM 設定を表示するには、[Workload management] (ワークロード管理) タブを選択します。
- (オプション) WLM パラメータグループが [Manual WLM] (手動 WLM) モードに設定されている場合、更新は必要ありません。
- (オプション) WLM パラメータグループが [Automatic WLM] (自動 WLM) モードに設定されている場合、パラメータグループの WLM 設定を変更します。[Edit workload queues] (ワークロードキューを編集) を選択して、WLM 設定を編集します。その後、[Switch WLM mode] (WLM モードを切り替え) を選択して、[Manual WLM] (手動 WLM) に切り替えます。
- 追加のワークロードキューを追加するには、[Add queue] (キューを追加) を選択します。ワークロードごとに別々のキュー (最大 8 個のキュー) を作成し、キューをユーザーグループまたはクエリグループに関連付けることができます。
- [Save] (保存) を選択します。
- クエリ割り当てルールを作成および定義します。
注: クエリは、ユーザーまたはクエリグループに従って割り当てられます。割り当てられていないクエリは、デフォルトのキューで実行されます。
- WLM 動的メモリ割り当てを使用して、各キューに割り当てられるメモリの量を設定します。WLM 動的メモリ設定は、メモリ使用量に応じてワークロードを優先順位付けするのに役立ちます。
- (オプション) メトリクス境界に到達するクエリを管理するためのクエリモニタリングルールを作成および定義します。たとえば、クエリ監視ルールを使用して、長時間実行されるクエリをホップまたはキャンセルできます。
関連情報
WLM キュー割り当てルール
WLM システムテーブルとビュー
STV_WLM_QUERY_QUEUE_STATE
STV_WLM_QUERY_STATE
STV_WLM_SERVICE_CLASS_CONFIG