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

AnalyticDB:ジョブの再送信

最終更新日:Mar 01, 2025

AnalyticDB for MySQL は、特定の条件を満たすインタラクティブリソースグループのクエリジョブを特定のリソースグループに再送信できるジョブ再送信機能を提供します。これにより、クエリジョブが他のクエリジョブの実行に影響を与えるのを防ぎます。このトピックでは、ジョブの再送信機能を有効化して使用する方法について説明します。

AnalyticDB for MySQL では、一部のクエリは大量のリソースを消費し、実行時間が長くなります。これは、他のクエリのパフォーマンスに影響を与え、リソース競合を引き起こし、システムの安定性にリスクをもたらす可能性があります。ジョブの再送信機能を使用すると、このようなクエリジョブを特定のリソースグループに再送信して実行することで、他のクエリへの影響を最小限に抑えることができます。一般的なシナリオ:

  • 大量のメモリを使用し、メモリ不足(OOM)エラーが発生しやすいクエリ。

  • 時折大量のスキャンを伴うアドホッククエリ。

  • 実行時間に影響されず、定期的に実行される抽出、変換、ロード(ETL)クエリ。

概要

AnalyticDB for MySQL のジョブ再送信機能は、自動ジョブ再送信と手動ジョブ再送信に分類されます。次の表は、自動ジョブ再送信と手動ジョブ再送信の違いを示しています。

項目

自動ジョブ再送信(推奨)

手動ジョブ再送信

サポートされているプロダクトエディション

Enterprise Edition、Basic Edition、および Data Lakehouse Edition

Enterprise EditionBasic EditionData Lakehouse Edition、およびelastic モードの Data Warehouse Edition

マイナーバージョン

V3.2.2.7 以降。

V3.1.8.4 以降。

有効化方法

デフォルトでは、自動ジョブ再送信機能は無効になっています。 SET 文を実行することで、この機能を有効にできます。この機能が有効になると、クラスター内のすべてのインタラクティブリソースグループに適用されます。

単一のインタラクティブリソースグループに対してジョブ再送信ルールを手動で設定します。

ジョブ再送信ルール

ジョブ再送信ルールを手動で設定する必要はありません。次の組み込みルールが適用されます。

  • メモリ不足のために失敗したクエリは自動的に再送信されます。

  • P50 実行時間が 5 分を超える長時間クエリは自動的に再送信されます。

AnalyticDB for MySQL コンソールで、または WLM 構文を使用して、ジョブ再送信ルールを手動で設定できます。

たとえば、実行時間のしきい値のクエリ パラメーターを 30 秒に設定するか、メモリ使用量ピーク値 (MB) の照会 しきい値を 24 MB に設定します

ジョブ再送信ルールをサポートするソースリソースグループ

XIHE エンジンを使用するインタラクティブリソースグループ(デフォルトのリソースグループ use_default を含む)。

XIHE エンジンを使用するインタラクティブリソースグループ(デフォルトのリソースグループ use_default を除く)。

ジョブ再送信機能をサポートする宛先リソースグループ

クエリジョブは、ジョブリソースグループにのみ再送信できます。

クエリジョブは、次のリソースグループに再送信できます。

  • use_default という名前のデフォルトのリソースグループを含む、XIHE エンジンを利用するインタラクティブリソースグループ。

  • ジョブリソースグループ。

課金ルール

自動ジョブ再送信機能を有効にしても課金されません。自動的に再送信されるクエリジョブによって消費されるリソースに対して課金されます。

AnalyticDB for MySQL は毎月の無料クォータを提供します。使用リソース量が無料クォータを超えた場合、従量課金制に基づいて [analyticdb 計算ユニット(acu)elastic リソース] に対して課金されます。詳細については、「料金」をご参照ください。

リソースの無料クォータ:

  • 予約リソース量が 100 ACU 以下の場合、毎月 1,000 ACU。

  • 予約リソース量が 100 ACU より大きく 500 ACU 未満の場合、毎月 2000 ACU。

  • 予約リソース数が 500 ACU 以上の場合、毎月 3000 ACU。

説明

Data Lakehouse Edition クラスターの場合:予約リソース = 予約計算リソース + 予約ストレージリソース。

手動ジョブ再送信機能を有効にしても課金されません。手動で再送信されるクエリジョブによって消費されるリソースに対して課金されます。

AnalyticDB for MySQL は無料クォータを提供しません。従量課金制に基づいて、クエリの実行に使用されるリソースに対して課金されます。詳細については、「料金」をご参照ください。

自動ジョブ再送信(推奨)

前提条件

V3.2.2.7 以降の AnalyticDB for MySQL クラスターが作成されていること。

説明

AnalyticDB for MySQL Data Lakehouse Edition クラスターのマイナーバージョンをクエリするには、SELECT adb_version(); 文を実行します。クラスターのマイナーバージョンを更新するには、テクニカルサポートにお問い合わせください。

自動ジョブ再送信機能を有効にする

デフォルトでは、自動ジョブ再送信機能は無効になっています。 SET 文を実行することで、この機能を有効にできます。この機能が有効になると、AnalyticDB for MySQL クラスター内のすべてのインタラクティブリソースグループに適用されます。ジョブ再送信ルールの条件を満たすすべてのインタラクティブリソースグループのクエリジョブは、宛先リソースグループに再送信されます。

  • 自動ジョブ再送信機能を有効または無効にします。

    SET ADB_CONFIG SERVERLESS_ROUTER_LEVEL=0|1|2;

    有効な値:

    • 0(デフォルト):自動ジョブ再送信機能を無効にします。

    • 1:毎月の無料クォータが利用可能な場合にのみ、自動ジョブ再送信機能を有効にします。

    • 2:毎月の無料クォータが使い果たされた場合でも、自動ジョブ再送信機能を有効にします。

  • 自動ジョブ再送信機能が有効になっているかどうかをクエリします。

    SHOW ADB_CONFIG key=SERVERLESS_ROUTER_LEVEL;

宛先リソースグループを設定する

デフォルトでは、自動ジョブ再送信機能が有効になると、AnalyticDB for MySQL クラスター内のジョブ再送信ルールの特定の条件を満たすすべてのクエリジョブは、serverless という名前のジョブリソースグループに再送信されます。カスタムの宛先リソースグループを指定することもできます。

構文

SET ADB_CONFIG SERVERLESS_ROUTER_TARGET = <resource_name>;

宛先リソースグループを testjob に設定します。

SET ADB_CONFIG SERVERLESS_ROUTER_TARGET = testjob;

単一クエリジョブの最大 ACU 数を設定する

デフォルトでは、自動的に再送信される単一のクエリジョブは最大 128 ACU を使用できます。ビジネス要件に基づいて、単一のクエリジョブで使用できる最大 ACU 数を指定できます。

構文

SET ADB_CONFIG SERVERLESS_ROUTER_MAX_ACU = <n>;

単一クエリジョブの最大 ACU 数を 24 ACU に設定します。

SET ADB_CONFIG SERVERLESS_ROUTER_MAX_ACU = 24;

ジョブが自動的に再送信されるかどうかをクエリする

  • V3.2.2.12 以降の AnalyticDB for MySQL クラスターに対して、次の文を実行します。

    SELECT process_id, reason, status FROM information_schema.ELASTIC_JOB_LIST WHERE process_id = <process_id>
  • V3.2.2.12 より前の AnalyticDB for MySQL クラスターに対して、次の文を実行します。

    SELECT process_id, reason, status FROM information_schema.kepler_meta_elastic_job_list WHERE process_id = <process_id>

次の表は、レスポンスパラメーターを示しています。

説明

次の表のすべてのパラメーターが空の場合、クエリジョブは自動的に再送信されません。

パラメーター

説明

process_id

ジョブ ID。

reason

ジョブが自動的に再送信される理由。有効な値:

  • out of memory:メモリ不足。

  • long running:実行時間が長い。

status

ジョブが宛先リソースグループに再送信された後のクエリジョブのステータス。

ジョブで使用される ACU をクエリする

AnalyticDB for MySQL コンソール にログインし、クラスター管理 > リソースグループ管理 を選択します。表示されるページで、ジョブ使用統計 タブをクリックして、自動的に再送信されたクエリで使用された ACU を表示します。

手動ジョブ再送信

前提条件

  • V3.1.8.4 以降の AnalyticDB for MySQL クラスターが作成されていること。

    説明
    • AnalyticDB for MySQL Data Lakehouse Edition クラスターのマイナーバージョンをクエリするには、SELECT adb_version(); 文を実行します。クラスターのマイナーバージョンを更新するには、テクニカルサポートにお問い合わせください。

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

  • AnalyticDB for MySQL クラスターが elastic モードの Data Warehouse Edition の場合、クラスターは次の要件を満たしている必要があります。

    • クラスターに少なくとも 2 つのリソースグループが作成されていること。詳細については、「リソースグループを作成する」をご参照ください。

    • クラスターが 32 コア 128 GB 以上のメモリ計算リソースを提供していること。

使用上の注意

クエリジョブは、宛先リソースグループで応答時間が延長されて再実行され、リソースグループの計算リソースを消費します。これは、リソースグループのクエリの安定性に影響を与えます。コアワークロードを処理するリソースグループにクエリジョブを再送信しないことをお勧めします。

手順

次のいずれかの方法を使用して、ジョブ再送信ルールを設定できます。

  • AnalyticDB for MySQL コンソール:この方法では、簡単かつ迅速にジョブ再送信ルールを設定できます。

  • WLM 構文:この方法は、カスタムの高度な要件に適しています。詳細については、「WLM」をご参照ください。

次のセクションでは、AnalyticDB for MySQL コンソールでジョブ再送信ルールを設定する方法について説明します。

Enterprise Edition、Basic Edition、および Data Lakehouse Edition

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。Data Lakehouse Edition タブで、管理するクラスターを見つけ、クラスター ID をクリックします。

  2. 左側のナビゲーションウィンドウで、クラスター管理 > リソース管理 をクリックし、リソースグループ管理 タブをクリックします。次に、リソースグループリストの右上隅にある 新規リソースグループ をクリックします。

  3. ジョブ再送信ルールを設定します。

    • [リソースグループ] タブの右上隅にある 新規リソースグループ をクリックします。リソースグループを作成するときに、ジョブ再送信ルールを設定します。

    • [リソースグループ] タブで、ジョブ再送信ルールを変更するリソースグループを見つけ、[操作 列の 変更 をクリックします。

    次の表は、[リソースグループの変更] パネルの [ジョブ再送信ルール] セクションのパラメーターを示しています。

    パラメーター

    説明

    データシッピング先のリソースグループ

    クエリジョブの再送信先のリソースグループの名前。

    実行時間のしきい値のクエリ

    クエリジョブの実行に消費される時間。単位:秒。このパラメーターはデフォルトでは空のままです

    説明

    リソースグループの作成に必要なパラメーターの詳細については、「リソースグループを作成および管理する」をご参照ください。

  4. [OK] をクリックします。

  5. (オプション)ジョブ再送信ルールを管理するには、次の操作を実行します。

    • ジョブ再送信ルールを変更する:[リソースグループの変更 パネルで、[ジョブ再送信ルール] をクリックし、設定済みのパラメーターを変更します。

    • ジョブ再送信ルールを削除する:[リソースグループの変更 パネルで、[ジョブ再送信ルール] をクリックし、imageデータシッピング先のリソースグループ フィールドで指定したリソースグループの右側にある アイコンをクリックします。この場合、ジョブ再送信ルールは無効になります。

Data Warehouse Edition

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。Data Warehouse Edition タブで、管理するクラスターを見つけ、クラスター ID をクリックします。

  2. 左側のナビゲーションウィンドウで、ワークロード管理 をクリックします。

  3. ジョブのデータシッピング タブをクリックして、ジョブ再送信ルールを表示します。

  4. タブの右上隅にある リソースグループ ドロップダウンリストからリソースグループを選択します。

  5. タブの右上隅にある ジョブデータシッピングルールの設定 をクリックします。[ジョブデータシッピングルールの設定] パネルで、次の表に示すパラメーターを設定します。

    パラメーター

    説明

    ピークメモリのしきい値

    クエリジョブによって消費される計算リソースの量。単位:MB。デフォルト値:null

    24

    実行時間のしきい値

    クエリジョブの実行に必要な時間。単位:ミリ秒。デフォルト値:null

    24

    OOM エラーの結果

    クエリジョブがメモリ不足のために失敗するかどうかを指定します。デフォルト値:いいえ

    いいえ

    [宛先リソースグループ]

    クエリジョブの再送信先のリソースグループの名前。

    test

    重要

    クエリジョブがジョブ再送信ルールのいずれかの条件を満たしている場合、クエリジョブは指定されたリソースグループに再送信されて実行されます。

  6. 確認 をクリックします。

  7. (オプション)ジョブ再送信ルールを管理するには、次の操作を実行します。

    • ジョブ再送信ルールを変更する:[ジョブデータシッピングルールの設定] パネルで、設定済みのパラメーターを変更します。

    • ジョブ再送信ルールを削除する:[ジョブデータシッピングルールの設定] パネルで、ピークメモリのしきい値と実行時間のしきい値の値を削除します。次に、OOM エラーの結果の値を [いいえ] に設定します。この場合、ジョブ再送信ルールは無効になります。

  8. ジョブデータシッピングクエリの数 セクションで、指定されたリソースグループに再送信されたクエリジョブの数を確認します。