全部产品
Search
文档中心

AnalyticDB:BUILD

更新时间:Jul 06, 2025

Pekerjaan BUILD digunakan untuk membangun ulang partisi yang memiliki data baru. Ini membantu meningkatkan kinerja baca dengan membuat indeks, membersihkan data berlebih, dan mengeksekusi pernyataan DDL secara asinkron.

Ikhtisar

Selama pekerjaan BUILD, sistem menggabungkan data real-time dengan partisi historis, membuat indeks, dan mengeksekusi pernyataan DDL secara asinkron. Setelah menjalankan pernyataan INSERT, UPDATE, atau DELETE pada data dalam partisi, Anda dapat menjalankan pekerjaan BUILD untuk membangun ulang partisi tersebut. Partisi tanpa perubahan data tidak akan dibangun ulang.

Pekerjaan BUILD dijadwalkan pada tingkat tabel. Pekerjaan BUILD dari tabel berbeda dapat dijalankan secara paralel. Setelah dimulai, pekerjaan ini dibagi menjadi tugas-tugas pada tingkat shard. Ketiga replika dari sebuah shard masing-masing menjalankan satu tugas. Pekerjaan BUILD selesai ketika semua tugas selesai.

Catatan Penggunaan

  • Selama pekerjaan BUILD, Anda tidak dapat mengeksekusi pernyataan INSERT OVERWRITE SELECT untuk menyisipkan data ke dalam tabel hingga pekerjaan BUILD selesai. Sebagai alternatif, gunakan pernyataan INSERT INTO.

  • Setelah mengirimkan pekerjaan BUILD, Anda tidak dapat membatalkannya.

  • Secara default, jumlah pekerjaan BUILD bersamaan adalah hasil pembulatan ke atas dari Jumlah core/3 dan tidak dapat diubah.

    Sebagai contoh, jika spesifikasi node kluster AnalyticDB for MySQL adalah 32 core dan 128 GB memori, jumlah pekerjaan BUILD bersamaan adalah 11 (hasil pembulatan ke atas dari 32/3).

  • Pekerjaan BUILD mengonsumsi sumber daya CPU, memori, dan I/O. Akibatnya, metrik seperti utilisasi CPU dan penggunaan disk I/O mungkin meningkat. Setelah pekerjaan BUILD selesai, metrik tersebut kembali normal. Disarankan untuk menjalankan pekerjaan BUILD selama jam-jam sepi.

Pemicu Otomatis Pekerjaan BUILD

Pekerjaan BUILD dipicu secara otomatis ketika salah satu kondisi berikut terpenuhi:

  • Jangka waktu sejak pekerjaan BUILD terakhir mencapai interval minimum dan setidaknya 50.000 baris data ditambahkan ke shard dari sebuah tabel.

    • Interval waktu untuk Enterprise Edition, Basic Edition, atau Data Lakehouse Edition: 1,5 jam.

    • Interval waktu untuk Data Warehouse Edition dalam mode elastis: 1,5 jam.

    • Interval waktu untuk Data Warehouse Edition dalam mode cadangan: 0,5 jam.

  • Dua puluh empat jam telah berlalu sejak pekerjaan BUILD terakhir dan setidaknya satu baris data dimodifikasi.

Pemicu Manual Pekerjaan BUILD

Jalankan Pernyataan BUILD pada Partisi yang Mengalami Perubahan Data

  • Tabel XUANWU

    BUILD TABLE <table_name>;

    Metode ini hanya memicu pekerjaan BUILD pada partisi yang datanya dimodifikasi.

    • Tabel XUANWU_V2

      BUILD TABLE <table_name> [BUILD_OPTION];

      BUILD_OPTION: hanya mendukung nilai ttl, yang merupakan parameter opsional. Jika parameter ini dibiarkan kosong, metode ini hanya memicu pekerjaan BUILD pada partisi yang dimodifikasi. Jika ditentukan, metode ini segera menghapus partisi kadaluwarsa setelah pekerjaan BUILD selesai.

    Catatan

    Untuk informasi tentang cara menentukan mesin tabel, lihat bagian "Tentukan Mesin Tabel" dari topik Mesin XUANWU_V2.

Jalankan Pernyataan BUILD pada Partisi Spesifik

BUILD TABLE test force partitions='partition1,partition2';
Penting

Anda dapat menjalankan pernyataan BUILD pada partisi spesifik hanya untuk kluster AnalyticDB for MySQL versi V3.1.6.0 atau lebih baru. Untuk informasi tentang cara melihat versi minor kluster AnalyticDB for MySQL, lihat Bagaimana cara melihat versi minor dari kluster? Untuk memperbarui versi minor kluster, hubungi dukungan teknis.

Jika sebuah tabel berisi volume data besar, pernyataan BUILD TABLE <table_name> force = true; mungkin memerlukan waktu lama untuk dieksekusi. AnalyticDB for MySQL memungkinkan Anda menentukan partisi tempat Anda ingin menjalankan pekerjaan BUILD. Ini membantu mengurangi penggunaan sumber daya dan meningkatkan kinerja pekerjaan BUILD.

Jalankan Pernyataan BUILD pada Seluruh Tabel

BUILD TABLE <table_name> force = true;

Metode ini memicu pekerjaan BUILD dan membuat ulang indeks untuk semua partisi tabel. Secara default, fitur ini dinonaktifkan.

Penting

Metode ini membuat ulang indeks untuk semua data dalam tabel, yang membutuhkan waktu lama. Kami merekomendasikan agar Anda menjalankan pernyataan BUILD pada partisi spesifik. Sebelum menjalankan pernyataan BUILD pada seluruh tabel, evaluasi efek dan risiko. Untuk mengaktifkan fitur ini, submit a ticket.

Konfigurasikan Penjadwalan Otomatis untuk Pekerjaan BUILD

  • Metode Konfigurasi

    SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`<start>,<end>`;

    Parameter start dan end menentukan rentang waktu penjadwalan pekerjaan BUILD. Atur parameter dalam rentang 0 hingga 24 dan tutup rentang waktu dengan backticks (` `). Anda dapat mengonfigurasi beberapa rentang waktu, pisahkan dengan titik koma (;).

    Sebagai contoh, atur parameter start ke 0 dan parameter end ke 6 untuk menjadwalkan pekerjaan BUILD dalam rentang 00:00 hingga 06:59.

    Penting

    Rentang waktu yang ditentukan digunakan untuk penjadwalan pekerjaan, bukan untuk eksekusi pekerjaan. Oleh karena itu, sistem mungkin belum menyelesaikan eksekusi pekerjaan ketika rentang waktu berakhir.

  • Contoh

    Konfigurasikan pekerjaan BUILD untuk dijadwalkan dalam rentang waktu berikut: 00:00 hingga 06:59 dan 18:00 hingga 22:59.

    SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`0,6;18,22`;

    Setelah mengeksekusi pernyataan di atas, sistem akan menjadwalkan pekerjaan BUILD dalam rentang 00:00 hingga 06:59 dan 18:00 hingga 22:59.

Konfigurasikan Prioritas Penjadwalan untuk Pekerjaan BUILD

Urutan penjadwalan pekerjaan BUILD didasarkan pada jumlah data yang ditambahkan ke shard individu dari tabel. Semakin besar jumlah data yang ditambahkan, semakin awal pekerjaan dijadwalkan dan dieksekusi. Anda juga dapat menggunakan petunjuk atau mengeksekusi pernyataan SET ADB_CONFIG untuk mengonfigurasi prioritas penjadwalan pekerjaan BUILD untuk tabel.

Penting
  • Anda hanya dapat mengonfigurasi prioritas penjadwalan pekerjaan BUILD untuk kluster AnalyticDB for MySQL versi V3.1.5.0 atau lebih baru.

    Untuk melihat dan memperbarui versi minor kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan buka bagian Configuration Information dari halaman Cluster Information.

  • Sebuah petunjuk hanya mendukung satu tabel. Prioritas yang dikonfigurasi hanya berlaku untuk pekerjaan BUILD saat ini.

  • Pernyataan SET ADB_CONFIG mendukung satu atau lebih tabel. Prioritas yang dikonfigurasi tetap berlaku hingga Anda mengonfigurasi prioritas penjadwalan baru untuk pekerjaan BUILD pada tabel tersebut.

  • Jika Anda menggunakan petunjuk dan pernyataan SET ADB_CONFIG untuk mengonfigurasi prioritas penjadwalan berbeda untuk pekerjaan BUILD pada sebuah tabel, prioritas penjadwalan berbasis petunjuk akan didahulukan dalam pekerjaan saat ini.

Parameter task_priority menentukan prioritas penjadwalan pekerjaan BUILD. Nilainya harus berupa bilangan bulat. Nilai default adalah 0. Nilai yang lebih besar menentukan prioritas penjadwalan yang lebih tinggi. Setelah mengonfigurasi prioritas untuk pekerjaan BUILD, node frontend menjadwalkan pekerjaan BUILD berdasarkan prioritas. Jika Anda mengatur parameter task_priority ke nilai kurang dari 0 untuk sebuah tabel, penjadwalan otomatis pekerjaan BUILD dinonaktifkan untuk tabel tersebut.

Metode konfigurasi:

  • Gunakan Petunjuk

    /*build_task_priority = <task_priority> */ BUILD TABLE <db_name>.<table_name>;

    Sebagai contoh, atur prioritas penjadwalan pekerjaan BUILD ke 30 untuk tabel test dalam database adb_demo.

    /*build_task_priority = 30 */ Build TABLE adb_demo.test;
  • Gunakan Pernyataan SET ADB_CONFIG

    • Konfigurasikan prioritas penjadwalan pekerjaan BUILD untuk beberapa tabel di database yang berbeda.

      SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `<db1_name>.<table1_name>.<task_priority>;<db2_name>.<table2_name>.<task_priority>`;
      Catatan

      Pisahkan beberapa tabel dengan titik koma (;).

      Sebagai contoh, atur prioritas penjadwalan pekerjaan BUILD ke 30 untuk tabel test1 dalam database adb_demo1 dan 10 untuk tabel test2 dalam database adb_demo2.

      SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `adb_demo1.test1.30;adb_demo2.test2.10`;
    • Konfigurasikan prioritas penjadwalan yang sama untuk semua tabel dalam sebuah database.

      SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `<db1_name>.*.<task_priority>`;

      Sebagai contoh, atur prioritas penjadwalan pekerjaan BUILD ke 30 untuk semua tabel dalam database adb_demo1.

      SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `adb_demo1.*.30`;
    • Konfigurasikan prioritas penjadwalan berbeda antara sebuah tabel dan tabel lainnya dalam database yang sama.

      SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `<db1_name>.*.<task_priority>;<db1_name>.<table_name>.<task_priority>`;

      Sebagai contoh, atur prioritas penjadwalan pekerjaan BUILD ke 30 untuk tabel test1 dalam database adb_demo1 dan 10 untuk semua tabel lainnya dalam database tersebut.

      SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `adb_demo1.*.10;adb_demo1.test1.30`;

Anda dapat mengeksekusi pernyataan SHOW ADB_CONFIG untuk menanyakan prioritas penjadwalan saat ini untuk pekerjaan BUILD.

Periksa Status Pekerjaan BUILD

Setelah pekerjaan BUILD dipicu secara otomatis atau manual, Anda dapat mengeksekusi pernyataan SQL berikut untuk menanyakan status pekerjaan BUILD dalam tiga hari terakhir:

SELECT table_name, schema_name, status FROM INFORMATION_SCHEMA.KEPLER_META_BUILD_TASK ORDER BY create_time DESC LIMIT 10;

Tabel berikut menjelaskan status pekerjaan BUILD berdasarkan nilai parameter status.

Nilai dari status

Deskripsi

INIT

Pekerjaan sedang diinisialisasi.

RUNNING

Pekerjaan sedang berjalan.

FINISH

Pekerjaan selesai.

FAQ

Mengapa penjadwalan otomatis pekerjaan BUILD gagal berlaku?

Penyebab: Parameter terkait waktu tidak diapit oleh backticks (` `). Akibatnya, parameter gagal diproses.

Solusi: Saat mengeksekusi pernyataan SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD untuk mengonfigurasi penjadwalan otomatis, apit parameter start dan end dengan backticks (` `). Sebagai contoh, SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`0,6`; menentukan bahwa sistem menjadwalkan pekerjaan BUILD dalam rentang 00:00 hingga 06:59.