全部产品
Search
文档中心

AnalyticDB:Kirimkan pekerjaan ekspor secara asinkron

更新时间:Mar 03, 2026

AnalyticDB for MySQL mendukung pengiriman pekerjaan ekspor data secara asinkron.

Skenario

Saat Anda menggunakan pernyataan INSERT INTO atau INSERT OVERWRITE INTO SELECT untuk mengekspor data, eksekusi secara default bersifat sinkron. Jika volume data mencapai ratusan gigabyte, koneksi antara client dan server AnalyticDB for MySQL dapat terputus, sehingga menyebabkan kegagalan ekspor. Untuk volume data besar, kirimkan pekerjaan ekspor secara asinkron.

Kirimkan Pekerjaan Secara Asinkron

Sintaksis

  • Sintaksis dasar

    SUBMIT JOB INSERT OVERWRITE table_name select_statement;
  • Sintaksis lanjutan.

    Anda dapat menentukan alias saat mengirimkan pekerjaan.

    SUBMIT JOB <job_alias_name> AS <query_body>;
    • Keunikan: Alias harus unik.

    • Format: Tipe string. Jangan membungkusnya dengan tanda kutip tunggal atau ganda.

    • Set karakter: Hanya huruf, angka, dan garis bawah yang didukung.

    • Panjang: Maksimal 128 karakter.

Contoh

  • Kirimkan pekerjaan asinkron

    SUBMIT JOB INSERT OVERWRITE test SELECT * FROM test_external_table;

    Setelah menjalankan pernyataan tersebut, ID pekerjaan akan dikembalikan. Anda dapat menggunakan ID pekerjaan ini untuk menanyakan status pekerjaan asinkron.

    +---------------------------------------+
    | job_id                                |
    +---------------------------------------+
    | 2017112122202917203100908203303000715 |
  • Kirimkan pekerjaan asinkron dan tentukan alias

    • Contoh yang benar

      SUBMIT JOB test_123 AS INSERT INTO test SELECT * FROM test_external_table;
    • Contoh yang salah

      Jangan membungkus alias pekerjaan dengan tanda kutip tunggal atau ganda.

      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;

Konfigurasikan Penjadwalan Berbasis Prioritas

Versi 3.1.3.6 dan yang lebih baru mendukung penjadwalan berbasis prioritas. Anda dapat menambahkan hint /*+async_job_priority=n*/ sebelum pernyataan SQL untuk menentukan prioritas pekerjaan asinkron. Nilai prioritas default adalah 1. Nilai yang lebih besar menunjukkan prioritas lebih tinggi, dan sistem akan menjadwalkannya terlebih dahulu.

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

Tanyakan Status Pekerjaan Asinkron

Sintaksis

  • Tanyakan menggunakan ID pekerjaan

    SHOW JOB STATUS WHERE job_id='job_id';
  • Tanyakan menggunakan alias pekerjaan

    SHOW JOB STATUS WHERE job_name='job_alias_name';

Contoh

SHOW JOB STATUS WHERE job_id='2017112122202917203100908203303000715';

Informasi berikut dikembalikan:

+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+
| 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               |
+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+
Catatan

Bidang dalam informasi yang dikembalikan bervariasi tergantung pada versi Milvus kluster. Anda dapat mengurai status pekerjaan asinkron berdasarkan bidang status dalam informasi yang dikembalikan.

Status Pekerjaan dan Pemetaannya

Status di Edisi Data Warehouse

Status di Edisi Data Lakehouse

Deskripsi

INIT

SUBMITTING

Pekerjaan asinkron telah dikirimkan.

SUBMITTED

RUNNING

Pekerjaan asinkron sedang berjalan.

RUNNING

FINISH

SUCCEEDED

Pekerjaan asinkron berhasil.

FAILED

FAILED

Pekerjaan asinkron gagal.

None

CANCELLED

Pekerjaan asinkron dibatalkan.

Catatan
  • CANCELLED adalah status tugas asinkron baru dan tidak dipetakan di Edisi Data Warehouse (V3.0).

Hentikan Pekerjaan

Deskripsi

  • Pekerjaan yang belum dijadwalkan dan pekerjaan yang telah selesai (gagal atau berhasil) akan dihapus dari antrian.

  • Jika pekerjaan yang sedang berjalan dihentikan, data yang diimpor mungkin akan di-rollback. Anda harus menghapus data sisa secara manual.

  • Anda tidak dapat menghentikan pekerjaan secara langsung menggunakan alias-nya user_define_job_name. Anda harus menanyakan ID pekerjaan menggunakan alias tersebut, lalu menghentikan pekerjaan menggunakan ID pekerjaan tersebut.

Sintaksis

CANCEL JOB 'job_id';

Contoh

CANCEL JOB '2017112122202917203100908203303000715';