全部产品
Search
文档中心

AnalyticDB:Menyerahkan pekerjaan impor secara asinkron

更新时间:Jun 26, 2025

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

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.

Catatan
  • 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';