AnalyticDB for MySQL mendukung pengiriman pekerjaan impor data secara asinkron.
Skenario
Saat mengimpor data menggunakan INSERT INTO atau INSERT OVERWRITE SELECT, proses tersebut dieksekusi secara sinkron secara default. Jika volume data mencapai ratusan GB, koneksi dari klien ke server AnalyticDB for MySQL mungkin terputus, yang dapat menyebabkan kegagalan impor data. Oleh karena itu, untuk volume data besar, Anda sebaiknya mengirim pekerjaan impor data secara asinkron.
Kirim Pekerjaan Secara Asinkron
Sintaks
Sintaks dasar
SUBMIT JOB INSERT OVERWRITE table_name select_statement;Sintaks lanjutan.
Anda dapat menentukan alias saat mengirim 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
Kirim pekerjaan asinkron
SUBMIT JOB INSERT OVERWRITE test SELECT * FROM test_external_table;Setelah menjalankan pernyataan tersebut, sebuah job ID akan dikembalikan. Anda dapat menggunakan job ID ini untuk mengecek status pekerjaan asinkron.
+---------------------------------------+ | job_id | +---------------------------------------+ | 2017112122202917203100908203303000715 |Kirim 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;
Konfigurasi 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;Cek Status Pekerjaan Asinkron
Sintaks
Periksa menggunakan job ID
SHOW JOB STATUS WHERE job_id='job_id';Periksa 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 |
+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+Bidang dalam informasi yang dikembalikan bervariasi tergantung pada versi kluster Milvus. 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 dikirim. |
SUBMITTED | RUNNING | Pekerjaan asinkron sedang berjalan. |
RUNNING | ||
FINISH | SUCCEEDED | Pekerjaan asinkron berhasil. |
FAILED | FAILED | Pekerjaan asinkron gagal. |
None | CANCELLED | Pekerjaan asinkron dibatalkan. |
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 langsung menggunakan aliasnya
user_define_job_name. Anda harus mengecek job ID menggunakan alias tersebut, lalu menghentikan pekerjaan menggunakan job ID-nya.
Sintaks
CANCEL JOB 'job_id';Contoh
CANCEL JOB '2017112122202917203100908203303000715';