AnalyticDB for MySQL memungkinkan Anda untuk menyerahkan pekerjaan impor secara asinkron.
Skenario
Saat menjalankan pernyataan INSERT INTO atau INSERT OVERWRITE SELECT untuk mengimpor data, pernyataan tersebut dijalankan secara sinkron secara default. Jika ratusan gigabyte data diimpor, koneksi antara klien dan server AnalyticDB for MySQL mungkin terputus. Dalam situasi ini, pekerjaan impor data gagal. Untuk sejumlah besar data, disarankan agar Anda menyerahkan pekerjaan impor secara asinkron.
Menyerahkan tugas secara asinkron
Sintaksis
SUBMIT JOB INSERT OVERWRITE table_name
select_statement;Contoh
SUBMIT JOB INSERT OVERWRITE test SELECT * FROM test_external_table;Setelah menjalankan pernyataan di atas, ID tugas akan dikembalikan. Anda dapat menggunakan ID tugas untuk memeriksa status tugas asinkron.
+---------------------------------------+
| job_id |
+---------------------------------------+
| 2017112122202917203100908203303000715 |Konfigurasikan penjadwalan berbasis prioritas
AnalyticDB for MySQL V3.1.3.6 dan versi lebih baru mendukung penjadwalan berbasis prioritas. Anda dapat menambahkan hint /*+async_job_priority=n*/ ke awal pernyataan pengiriman tugas untuk menentukan prioritas tugas asinkron. Nilai prioritas default adalah 1. Nilai yang lebih tinggi menunjukkan prioritas yang lebih tinggi untuk penjadwalan tugas.
/*+async_job_priority=10*/ SUBMIT JOB INSERT OVERWRITE test SELECT * FROM test_external_table;Memeriksa status tugas asinkron
Sintaksis
SHOW JOB STATUS WHERE job='job_id';Contoh
SHOW JOB STATUS WHERE job='2017112122202917203100908203303000715';Informasi berikut dikembalikan:
+---------------------------------------+-------------+---------+----------+-----------------------+-----------------------+----------------------------------------------------------------+
| job_id | schema_name | status | fail_msg | create_time | update_time | definition |
+---------------------------------------+-------------+---------+----------+-----------------------+-----------------------+----------------------------------------------------------------+
| 2017112122202917203100908203303000715 | test | RUNNING | NULL | 2023-06-21 22:20:31.0 | 2023-06-21 22:20:40.0 | INSERT OVERWRITE test SELECT * FROM test_external_table |Bidang dalam informasi yang dikembalikan bervariasi berdasarkan versi minor kluster. Disarankan untuk mem-parsing tugas asinkron berdasarkan bidang status.
Status tugas dan pemetaannya
Status di Data Warehouse Edition | Status di Data Lakehouse Edition | Deskripsi |
INIT | SUBMITTING | Tugas telah diserahkan. |
SUBMITTED | RUNNING | Tugas sedang berjalan. |
RUNNING | ||
FINISH | SUCCEEDED | Tugas berhasil. |
FAILED | FAILED | Tugas gagal. |
None | CANCELLED | Tugas dibatalkan. |
Status CANCELLED merupakan fitur baru dan tidak tersedia di Data Warehouse Edition (V3.0).
Menghentikan tugas
Deskripsi
Tugas yang belum dijadwalkan, gagal, dan berhasil dihapus dari antrian.
Jika tugas yang sedang berjalan dihentikan, data yang diimpor oleh tugas tersebut mungkin akan dikembalikan. Disarankan untuk secara manual menghapus data sisa.
Sintaksis
CANCEL JOB 'job_id';Contoh
CANCEL JOB '2017112122202917203100908203303000715';