AnalyticDB for MySQL のジョブ再送信機能を使用すると、特定の条件を満たすインタラクティブなリソースグループからのクエリジョブを、指定されたリソースグループに再送信できます。これにより、これらのジョブがソースリソースグループ内の他のクエリに影響を与えるのを防ぎます。このトピックでは、ジョブ再送信機能を有効にして使用する方法について説明します。
AnalyticDB for MySQL では、一部のクエリが多くのリソースを消費し、長時間実行されます。これらのクエリは、他のクエリのパフォーマンスを低下させ、リソース競合を引き起こし、システムの安定性を損なう可能性があります。ジョブ再送信機能を使用して、そのようなクエリを専用のリソースグループにルーティングして実行します。これにより、他のクエリへの影響を最小限に抑えます。一般的なシナリオは次のとおりです。
大量のメモリを使用し、メモリ不足 (OOM) エラーが発生しやすいクエリ。
時折、大量のデータスキャンを伴うアドホッククエリ。
時間に制約がなく、固定スケジュールで実行される ETL クエリ。
機能概要
AnalyticDB for MySQL のジョブ再実行機能は、自動再実行と手動再実行の両方に対応しています。次の表では、これら 2 つの方法を比較します。
項目 | 自動配信 (推奨) | 手動配信 |
サポートされている製品エディション | Enterprise Edition、Basic Edition、および Data Lakehouse Edition。 | Enterprise Edition、Basic Edition、Data Lakehouse Edition、および Data Warehouse Edition in elastic mode。 |
クラスターカーネルバージョン | 3.2.2.7 以降。 | 3.1.8.4 以降。 |
有効化方法 | この機能はデフォルトで無効になっています。SET コマンドを使用して有効にします。有効にすると、この機能はクラスター内のすべてのインタラクティブなリソースグループに適用されます。 | 単一のインタラクティブなリソースグループに対して再送信ルールを手動で構成します。 |
再送信ルール | 手動での構成は不要です。メモリ不足により失敗したクエリは自動的に再送信されます。 | コンソールまたは WLM コマンドを使用してルールを手動で構成します。 たとえば、実行時間のしきい値のクエリ が 30 秒を超える場合や、メモリ使用量ピーク値 (MB) の照会 のしきい値が 24 MB を超える場合があります。 |
再送信ルールをサポートするソースリソースグループ | XIHE エンジンを使用するインタラクティブなリソースグループ。これには、デフォルトのリソースグループ use_default が含まれます。 | XIHE エンジンを使用するインタラクティブなリソースグループ。デフォルトリソースグループ use_default を除きます。 |
再送信をサポートする宛先リソースグループ | クエリはジョブリソースグループにのみ再送信できます。 | クエリは次のリソースグループに再送信できます。
|
料金 | 自動ジョブ再送信の有効化は無料です。自動的に再送信されたクエリによって消費されたリソースに対して課金されます。 クラスターでは毎月の無料クォータが提供されており、それを超過したリソースは [AnalyticDB Compute Unit (ACU) Elastic Resources] について従量課金制で課金されます。詳細については、「料金」をご参照ください。 無料クォータのルールは次のとおりです。
説明 Data Lakehouse Edition クラスターの場合、予約済みリソース = 予約済み計算リソース + 予約済みストレージリソース。 | 手動ジョブ再送信の有効化は無料です。手動で再送信されたクエリによって消費されたリソースに対して課金されます。 無料クォータは提供されません。クエリの実行に使用されたリソースに対して従量課金されます。詳細については、「料金」をご参照ください。 |
システム自動配信 (推奨)
前提条件
クラスターカーネルバージョンは 3.2.2.7 以降である必要があります。
マイナーバージョンの表示および更新については、「マイナーバージョンの表示および更新」をご参照ください。AnalyticDB for MySQL コンソールで、構成情報 セクションを含む クラスター情報 ページに移動します。
自動再送信の有効化
自動ジョブ再送信機能はデフォルトで無効になっています。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 を使用できます。この制限はカスタマイズできます。
構文
SET ADB_CONFIG SERVERLESS_ROUTER_MAX_ACU = <n>;例
単一のクエリが最大 24 ACU を使用できるように指定します。
SET ADB_CONFIG SERVERLESS_ROUTER_MAX_ACU = 24;ジョブが自動的に再送信されたかどうかの確認
カーネルバージョン 3.2.2.12 以降のクラスターの場合:
SELECT process_id, reason, status FROM information_schema.ELASTIC_JOB_LIST WHERE process_id = <process_id>カーネルバージョン 3.2.2.12 より前のクラスターの場合:
SELECT process_id, reason, status FROM information_schema.kepler_meta_elastic_job_list WHERE process_id = <process_id>
戻り値の説明:
次の表のすべてのフィールドが空の場合、クエリは自動的に再送信されませんでした。
パラメーター | 説明 |
process_id | クエリ ID。 |
reason | クエリが自動的に再送信された理由。有効な値:
|
status | 宛先リソースグループに再送信された後のクエリの実行ステータス。 |
ジョブで使用される ACU のクエリ
AnalyticDB for MySQL コンソールにログインして、を選択します。表示されるページで、ジョブ使用統計 タブをクリックして、自動再送信されたクエリで使用された ACU を確認します。
手動デリバリー
前提条件
クラスターカーネルバージョンは 3.1.8.4 以降である必要があります。
説明マイナーバージョンの表示および更新を行うには、マイナーバージョンの表示および更新を実行し、AnalyticDB for MySQL コンソールの 構成情報 セクションに移動します。このセクションは、クラスター情報 ページにあります。AnalyticDB for MySQL コンソール。
お使いのクラスターが データウェアハウス エディション(弾力的モード) クラスターである場合、以下の条件も満たす必要があります:
少なくとも 2 つのリソースグループが作成済みである必要があります。詳細については、「リソースグループの作成」をご参照ください。
計算リソースは、32 コアおよび 128 GB 以上である必要があります。
注意事項
クエリは、宛先のリソースグループ内で再実行されます。これにより、当該グループの計算リソースが消費され、クエリの応答時間が延長します。その結果、宛先のリソースグループにおけるクエリの安定性に影響を及ぼす可能性があります。コアビジネスワークロードを実行しているリソースグループには、クエリを再送信しないでください。
操作手順
ジョブの再送信ルールは、以下の2つの方法で構成できます。
AnalyticDB for MySQL コンソールでの構成:コンソールでは、再送信ルールを簡便かつ迅速に構成できます。
ワークロードマネージャー(WLM)コマンドによる構成:WLM コマンドは、カスタマイズ性や高度な要件に対応する柔軟性を提供します。詳細については、「WLM」をご参照ください。
以降のセクションでは、AnalyticDB for MySQL コンソールにおける再送信ルールの構成手順について説明します。
Enterprise Edition、Basic Edition、およびData Lakehouse Edition
AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅からリージョンを選択し、左側ナビゲーションウィンドウで クラスターリスト をクリックします。管理対象のクラスターを見つけ、クラスター ID をクリックします。
左側ナビゲーションウィンドウで、クラスター管理 > リソース管理 を選択します。リソース管理ページで、リソースグループ管理 タブをクリックします。リソースグループタブの右上隅にある 新規リソースグループ をクリックします。
ジョブ配信ルールを構成します。
リソースグループタブの右上隅にある 新規リソースグループ をクリックします。リソースグループを作成する際に、ジョブの再送信ルールを構成します。
対象のリソースグループの 操作 列にある 変更 をクリックして、ジョブの再送信ルールを構成します。
ジョブ配信ルールの構成パラメーター:
パラメーター名
説明
データシッピング先のリソースグループ
送信先リソースグループの名称です。
説明リソースグループ作成時のその他のパラメーターについては、「リソースグループの作成と管理」をご参照ください。
を決定 をクリックします。
(任意)ジョブの再送信ルールを管理します。
ジョブの再送信ルールを変更するには、リソースグループの変更 パネルで、構成済みのパラメーターを編集します。
ジョブ再送信ルールの削除:「リソースグループの変更」パネルで、「データシッピング先のリソースグループ」フィールド内の指定されたリソースグループの右側にある
ボタンをクリックします。この場合、ジョブ再送信ルールは無効になります。
データウェアハウスエディション
AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅からリージョンを選択し、左側ナビゲーションウィンドウで クラスターリスト をクリックします。Data Warehouse Edition タブで、管理対象のクラスターを見つけ、クラスター ID をクリックします。
左側ナビゲーションウィンドウで、ワークロード管理 をクリックします。
ジョブのデータシッピング をクリックして、ジョブ配信ルールを表示します。
右上隅の リソースグループ ドロップダウンリストから、リソースグループを選択します。
右上隅で ジョブデータシッピングルールの設定 をクリックします。ジョブデータシッピングルールの設定 パネルが表示されるので、以下のパラメーターを構成します。
パラメーター
メトリックの説明
例
ピークメモリ使用量のしきい値
クエリが消費する計算リソースです。単位は MB です。デフォルト値は null です。
24
実行時間のしきい値
クエリの実行にかかる時間です。単位は ms です。デフォルト値は null です。
24
メモリ不足によるクエリ失敗時の結果
クエリがメモリ不足で失敗した場合の動作を指定します。デフォルト値は いいえ です。
いいえ
宛先リソースグループ
送信先リソースグループの名称です。
test
重要クエリが再送信ルールのいずれかの条件を満たす場合、指定されたリソースグループへ再送信されて実行されます。
確認 をクリックします。
(任意)ジョブの再送信ルールを管理します。
ジョブの再送信ルールを変更するには、ジョブデータシッピングルールの設定 パネルで、構成済みのパラメーターを編集します。
ジョブの再送信ルールを削除するには、ジョブデータシッピングルールの設定 パネルで、「ピークメモリ使用量のしきい値」と「実行時間のしきい値」の値を削除し、「OOM エラー発生時の結果」を「いいえ」に設定します。これにより、ジョブの再送信ルールは無効化されます。
ジョブデータシッピングクエリの数 セクションで、別のリソースグループへ正常に再送信されたクエリジョブの数を確認できます。