すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:対話型リソースグループの優先キューとキュー同時実行性の設定

最終更新日:Aug 14, 2024

AnalyticDB for MySQLは、対話型リソースグループの優先キュー機能を提供し、同時クエリの数を正確に制御できます。 各リソースグループは、LOWEST、LOW、NORMAL、およびHIGHキューである優先度キューのセットを有する。 クエリの優先度を設定して、クエリが異なる優先度キューに入ることを許可できます。 キューの同時クエリ数を設定することもできます。 このトピックでは、キューのクエリ優先度と同時クエリ数を設定する方法について説明します。

前提条件

V3.1.6.3以降のAnalyticDB for MySQLクラスターが作成されます。

説明
  • AnalyticDB For MySQLのマイナーバージョンを表示する方法の詳細については、 Data Lakehouse Editionクラスターについては、「クラスターのマイナーバージョンを表示する方法」をご参照ください。 クラスターのマイナーバージョンを更新するには、テクニカルサポートにお問い合わせください。

  • AnalyticDB For MySQL Data Warehouse Editionクラスターのマイナーバージョンを表示および更新する方法については、「クラスターのマイナーバージョンの更新」をご参照ください。

概要

クエリの優先度

各対話型リソースグループは、LOWEST、LOW、NORMAL、およびHIGHキューである優先度キューのセットを有する。 デフォルトでは、一般的なSELECTクエリがNORMALキューに入り、INSERT INTO SELECTDELETE SELECTおよびINSERT OVERWRITE SELECTクエリなどの抽出、変換、読み込み (ETL) クエリがLOWESTキューに入ります。 クエリの優先度を設定して、クエリが異なる優先度キューに入ることを許可できます。 各優先度キューでは、優先度の高いクエリが優先的に実行される。 例えば、query_priorityパラメーターが8に設定されたクエリは、query_priorityパラメーターが6に設定されたクエリよりも優先的に実行されます。

各優先度キューの優先度範囲を次の図に示します。优先级队列

キューの同時実行

優先度キューごとに、実行できるクエリの最大数とキューイングできるクエリの最大数を設定できます。

  • 優先度キューで実行されているクエリの数が、実行可能なクエリの最大数以上の場合、新しいクエリはキュー状態になります。

  • 優先度キュー内のキューに入れられたクエリの数が、キューに入れることができるクエリの最大数と実行できるクエリの最大数の合計以上の場合、新しいクエリは拒否されます。

  • クエリが実行された後、最高の優先順位を持つキューに入れられたクエリは実行状態に入ります。 2つのクエリが同じ優先度を有する場合、それらは先入れ先出し (FIFO) 順序で実行される。

クエリの優先キュー機能の有効化

  • デフォルトでは、優先キュー機能はV3.1.8.2以降のAnalyticDB for MySQLクラスターで有効になっています。

  • V3.1.6.3〜V3.1.8.1のAnalyticDB for MySQLクラスターの優先キュー機能を有効にするには、次のステートメントを実行します。

    SET ADB_CONFIG XIHE_ENV_QUERY_PRIORITY_QUEUE_ENABLE=true;

クエリ優先度の設定

デフォルトでは、優先度レベルの値は、ETLクエリの場合はLOWEST (5) 、一般的なSELECTクエリの場合はNORMAL (25) です。 次のセクションでは、クエリの優先度を設定する方法について説明します。

使用上の注意

INSERT INTOの優先順位を設定できません... VALUES(...) ステートメント。

設定方法

  • (推奨) WLMステートメントを実行して、クエリにヒントを追加します。 詳細については、WLMトピックのADD_PROPERTIESパラメーターの設定方法をご参照ください。

  • クエリ文の前にヒントを追加します。 構文:

    /*+ query_priority=<priority level>*/ select_statement

    priority level: 値は0から39までの整数です。 より大きな値は、より高い優先度を指定する。 値は、整数5、15、25、および35に相当するLOWEST、LOW、NORMAL、およびHIGHを含む文字列にすることもできます。

  • クエリの優先度をHIGHに設定して、クエリがHIGHキューに入るようにします。

    /*+ query_priority=HIGH*/ SELECT * FROM test_table;
  • クエリの優先度を35に設定して、クエリがHIGHキューに入るようにします。

    /*+ query_priority=35*/ SELECT * FROM test_table;

キューの同時クエリ数の設定

優先キューにキューできる同時クエリの数と最大クエリ数を設定できます。 クラスターまたはリソースグループ内のキューの同時クエリ数を設定できます。

設定方法

  • 次のステートメントを実行して、クラスター内のキューの同時クエリ数を設定します。SET ADB_CONFIG <concurrency parameter> = <value>

  • 次のステートメントを実行して、リソースグループ内のキューの同時クエリ数を設定します。SET ADB_CONFIG <resource group name>.<concurrency parameter> = <value>

重要

予約モードのData Warehouse Editionクラスターのリソースグループ内のキューの同時クエリ数を設定することはできません。

同時実行パラメーター

説明
  • priority queueパラメータの値は、フロントエンドノードのキューサイズを指定します。 クラスターの合計キューサイズは、次の式を使用して計算できます。クラスターの合計キューサイズ=キューのサイズ × フロントエンドノードの数。

  • 優先キューパラメーターの設定は、すべてのフロントエンドノードに対して同時に有効になります。

  • フロントエンドノードの詳細については、「アクセス層の高可用性」をご参照ください。

キュー

パラメーター

デフォルト値

説明 (リソースグループごと)

LOWEST (ETL) キュー

XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE

20

フロントエンドノードのLOWESTキューに対して実行できるクエリの最大数は20です。

XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE

200

フロントエンドノードのLOWESTキューにキューイングできるクエリの最大数は200です。

LOWキュー

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE

20

フロントエンドノードのLOWキューに対して実行できるクエリの最大数は20です。

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE

200

フロントエンドノードのLOWキューにキューイングできるクエリの最大数は200です。

通常のキュー

XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE

20

フロントエンドノードのNORMALキューに対して実行できるクエリの最大数は20です。

XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE

200

フロントエンドノードのNORMALキューにキューイングできるクエリの最大数は200です。

ハイキュー

XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE

40

フロントエンドノードのHIGHキューに対して実行できるクエリの最大数は40です。

XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE

400

フロントエンドノードのHIGHキューにキューイングできるクエリの最大数は400です。

  • クラスター内のLOWキューに対して実行できるクエリの最大数を5に変更します。

    SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE = 5;
  • rg1リソースグループのLOWキューに対して実行できるクエリの最大数を5に変更します。

    SET ADB_CONFIG rg1.XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE = 5;

キューの同時実行性の照会

  • 次の文を実行して、クラスター内で実行およびキューに入れることができるクエリの最大数を照会します。SHOW ADB_CONFIG KEY=<concurrency parameter>;

  • 次のステートメントを実行して、リソースグループで実行およびキューに入れることができるクエリの最大数を照会します。SHOW ADB_CONFIG KEY=<resource group name>.<concurrency parameter>;