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 |
+-------------------------------------------+-------------+-----------+--------------+-----------+----------+-------------------------+-------------------------+---------------------------------------------------+-------------------------------------------+------------+----------+------------+-------------+------------+------------------+------------------------+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. |
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';