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

AnalyticDB:インポートジョブを非同期的に送信する

最終更新日:Jun 12, 2024

AnalyticDB for MySQLを使用すると、インポートジョブを非同期に送信できます。

シナリオ

INSERT INTOまたはINSERT OVERWRITE SELECTステートメントを実行してデータをインポートすると、このステートメントはデフォルトで同期的に実行されます。 数百ギガバイトのデータがインポートされると、クライアントとAnalyticDB for MySQLサーバー間の接続が閉じられる可能性があります。 この場合、データインポートジョブは失敗します。 大量のデータが含まれる場合は、インポートジョブを非同期に送信することをお勧めします。

ジョブを非同期的に送信する

構文

ジョブ挿入の上書きtable_nameを送信
select_statement; 

ジョブ挿入上書きテストSELECT * FROM test_external_table;

上記のステートメントを実行すると、ジョブIDが返されます。 ジョブIDを使用して、非同期ジョブのステータスを照会できます。

+ --------------------------------------- +
| job_id |
+ --------------------------------------- +
| 2017112122202917203100908203303000715 | 

優先度ベースのスケジューリングの設定

AnalyticDB for MySQL V3.1.3.6以降は、優先度ベースのスケジューリングをサポートしています。 ジョブ送信ステートメントの先頭に /* + async_job_priority=n */ ヒントを追加して、非同期ジョブの優先度を指定できます。 デフォルトの優先度値は1です。 値が大きいほど、ジョブのスケジューリングの優先度が高くなります。

/* + async_job_priority=10 * /ジョブ挿入上書きテストSELECT * FROM test_external_table;

非同期ジョブのステータスの照会

構文

SHOW JOB STATUS WHERE job='job_id';

仕事のステータスを表示する場所JOB='2017112122202917203100908203303000715';

次の情報が返されます。

+ --------------------------------------- ---------- ---------------------------------- + ----------------------- + ----------------------- +
| job_id | schema_name | status | fail_msg | create_time | update_time | 定義 |
+ --------------------------------------- + ----------------------------------------- + ----------------------- + ----------------------- +
| 2017112122202917203100908203303000715 | test | RUNNING | NULL | 2023-06-21 22:20:31.0 | 2023-06-21 22:20:40.0 | INSERT OVERWRITEテストSELECT * FROM test_external_table | 
説明

返される情報のフィールドは、クラスターマイナーバージョンによって異なります。 statusフィールドに基づいて非同期ジョブを解析することを推奨します。

ジョブのステータスとマッピング

Data Warehouse Editionのステータス

Data Lakehouse Editionのステータス

説明

INIT

SUBMITTING

ジョブが送信されます。

提出済み

RUNNING

ジョブは実行中です。

RUNNING

仕上げ

SUCCEEDED

仕事は成功しました。

FAILED

FAILED

ジョブが失敗します。

なし

キャンセル

ジョブがキャンセルされました。

説明
  • CANCELLED状態は新しく、Data Warehouse Edition (V3.0) では使用できません。

ジョブの終了

説明

  • 予定外、失敗、および成功したジョブはキューから削除されます。

  • 実行中のジョブが終了すると、そのジョブによってインポートされたデータがロールバックされる場合があります。 残りのデータを手動で削除することを推奨します。

構文

キャンセルジョブ 'JOB_id';

キャンセルジョブ '2017112122202917203100908203303000715';