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

AnalyticDB:非同期インポートジョブの送信

最終更新日:Mar 03, 2026

AnalyticDB for MySQL は、データインポートジョブの非同期送信をサポートしています。

利用シーン

INSERT INTO または INSERT OVERWRITE SELECT を使用してデータをインポートする場合、プロセスはデフォルトで同期的に実行されます。データ量が数百 GB に達すると、クライアントから AnalyticDB for MySQL サーバーへの接続が中断され、データインポートが失敗する可能性があります。そのため、大量のデータの場合、データインポートジョブを非同期で送信する必要があります。

非同期ジョブの送信

構文

  • 基本構文

    SUBMIT JOB INSERT OVERWRITE table_name select_statement;
  • 拡張構文。

    ジョブの送信時にエイリアスを指定できます。

    SUBMIT JOB <job_alias_name> AS <query_body>;
    • 一意性: エイリアスは一意である必要があります。

    • フォーマット: 文字列型。シングルクォーテーションまたはダブルクォーテーションで囲まないでください。

    • 文字セット: 文字、数字、アンダースコアのみがサポートされています。

    • 長さ: 最大 128 文字。

  • 非同期ジョブの送信

    SUBMIT JOB INSERT OVERWRITE test SELECT * FROM test_external_table;

    文の実行後、ジョブ ID が返されます。このジョブ ID を使用して、非同期ジョブのステータスをクエリできます。

    +---------------------------------------+
    | job_id                                |
    +---------------------------------------+
    | 2017112122202917203100908203303000715 |
  • 非同期ジョブを送信し、エイリアスを指定

    • 正しい例

      SUBMIT JOB test_123 AS INSERT INTO test SELECT * FROM test_external_table;
    • 誤った例

      ジョブエイリアスをシングルクォーテーションまたはダブルクォーテーションで囲まないでください。

      SUBMIT JOB 'test_123' AS INSERT INTO test SELECT * FROM test_external_table;
      SUBMIT JOB "test_123" AS INSERT INTO test SELECT * FROM test_external_table;

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

バージョン 3.1.3.6 以降は、優先度ベースのスケジューリングをサポートしています。SQL 文の前にヒントワード /*+async_job_priority=n*/ を追加して、非同期ジョブの優先度を指定できます。デフォルトの優先度値は 1 です。値が大きいほど優先度が高くなり、システムが最初にスケジュールします。

/*+async_job_priority=10*/ SUBMIT JOB INSERT OVERWRITE test SELECT * FROM test_external_table;

非同期ジョブステータスのクエリ

構文

  • ジョブ ID を使用したクエリ

    SHOW JOB STATUS WHERE job_id='job_id';
  • ジョブエイリアスを使用したクエリ

    SHOW JOB STATUS WHERE job_name='job_alias_name';

SHOW JOB STATUS WHERE job_id='2017112122202917203100908203303000715';

以下の情報が返されます。

+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+
| job_id                                    | schema_name | status    | process_rows | fail_rows | fail_msg | create_time             | update_time             | definition                                        | exec_job_id                               | total_rows | progress | start_time | result_rows | result_url | query_priority   | user_define_job_name   |
+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+
| 2026022710213902101709304503151000743     | test_db     | SUCCEEDED |            4 |         0 | NULL     | 2026-02-27 10:21:39.0   | 2026-02-27 10:21:45.0   | INSERT INTO test SELECT * FROM test_external_table| 2026022710214402101706516803151005717     |          0 | NULL     | NULL       |           0 | NULL       | NORMAL           | test_123               |
+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+
説明

返される情報のフィールドは、クラスターの Milvus バージョンによって異なります。返される情報の status フィールドに基づいて、非同期ジョブのステータスを解析できます。

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

Data Warehouse Edition でのステータス

Data Lakehouse Edition でのステータス

説明

INIT

SUBMITTING

非同期ジョブが送信されます。

SUBMITTED

RUNNING

非同期ジョブが実行中です。

RUNNING

FINISH

SUCCEEDED

非同期ジョブが成功しました。

FAILED

FAILED

非同期ジョブが失敗しました。

None

CANCELLED

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

説明
  • CANCELLED は新しい非同期タスクの状態であり、Data Warehouse Edition (V3.0) にはマッピングされていません。

ジョブの終了

説明

  • スケジュールされていないジョブ、および完了した (失敗または成功した) ジョブはキューから削除されます。

  • 実行中のジョブが終了された場合、インポートされたデータがロールバックされる可能性があります。残りのデータは手動で削除する必要があります。

  • エイリアス user_define_job_name を使用してジョブを直接終了することはできません。エイリアスを使用してジョブ ID をクエリし、そのジョブ ID を使用してジョブを終了する必要があります。

構文

CANCEL JOB 'job_id';

CANCEL JOB '2017112122202917203100908203303000715';