All Products
Search
Document Center

AnalyticDB:Pengembangan SQL XIHE BSP

Last Updated:Mar 25, 2026

AnalyticDB for MySQL mendukung pengiriman pekerjaan SQL XIHE bulk synchronous parallel (BSP) melalui Editor Pengembangan SQL atau Java Database Connectivity (JDBC). Topik ini menjelaskan skenario, metode pengiriman, parameter konfigurasi umum, serta pertanyaan yang sering diajukan (FAQ) terkait pengembangan pekerjaan SQL XIHE BSP.

Prasyarat

  • Kelompok sumber daya pekerjaan telah dibuat untuk kluster Enterprise Edition, Basic Edition, atau Data Lakehouse Edition AnalyticDB for MySQL.

  • Akun database telah dibuat untuk kluster Enterprise Edition, Basic Edition, atau Data Lakehouse Edition AnalyticDB for MySQL.

Skenario

Pekerjaan SQL XIHE BSP dieksekusi oleh mesin XIHE BSP dan cocok untuk skenario extract, transform, and load (ETL), kueri besar, serta lonjakan kueri prioritas rendah. Untuk informasi lebih lanjut mengenai mesin XIHE BSP, lihat Compute engines.

Skenario ETL

Alur ETL khas ditunjukkan pada gambar berikut.

image

Operasi seperti pembersihan dan transformasi data dari sumber data ke lapisan Application Data Service (ADS) biasanya memakan waktu lama dan melibatkan volume data yang besar. Dalam skenario ini, waktu respons kueri bukanlah faktor utama. Namun, keandalan sangat penting, dan sistem harus mendukung fitur seperti retry otomatis. Anda dapat mengeksekusi kueri ini dalam mode XIHE BSP untuk memanfaatkan throughput tinggi, keandalan yang ditingkatkan, serta biaya lebih rendah dari mesin XIHE BSP.

Untuk kueri pada lapisan ADS, waktu respons kueri merupakan faktor yang lebih kritis dan sering kali diharapkan berada pada tingkat detik bahkan milidetik. Anda dapat mengeksekusi kueri ini dalam mode XIHE Massively Parallel Processing (MPP) untuk memanfaatkan kecepatan tinggi mesin XIHE MPP.

Kueri besar yang tidak dapat dieksekusi dalam mode XIHE MPP

Karena keterbatasan mode eksekusi XIHE MPP, beberapa kueri yang melibatkan volume data besar dapat menyebabkan error memori atau exception kueri lainnya. Untuk menjalankan kueri ini dalam mode XIHE MPP, Anda harus melakukan operasi seperti scale-out untuk menambahkan lebih banyak resource, yang tidak efisien dari segi biaya. Dalam skenario ini, Anda dapat menjalankan kueri dalam mode XIHE BSP. Kueri dieksekusi dalam kelompok sumber daya pekerjaan tertentu dan data ditulis ke disk. Metode ini lebih sesuai untuk kueri besar. Selain itu, sumber daya untuk kelompok sumber daya pekerjaan diminta dan dibayar sesuai kebutuhan, sehingga pendekatan ini lebih hemat biaya.

Burst kueri prioritas rendah

Waktu respons biasanya bukan faktor kritis untuk kueri prioritas rendah. Namun, sifat lonjakannya dapat menyebabkan kekurangan sumber daya sistem, yang berpotensi memengaruhi eksekusi kueri lain. Dalam skenario ini, Anda dapat menempatkan kueri prioritas rendah tersebut dalam kelompok sumber daya pekerjaan untuk dijalankan dalam mode XIHE BSP. Pendekatan ini mengurangi tekanan pada sumber daya sistem dan mencegah gangguan antar kueri.

Batasan

  • Anda tidak dapat menulis ke tabel Hudi dalam mode XIHE BSP.

  • Anda tidak dapat membaca dari atau menulis ke tabel Delta dalam mode XIHE BSP.

Mengembangkan pekerjaan XIHE BSP

Anda dapat mengembangkan pekerjaan XIHE BSP dengan salah satu cara berikut.

Gunakan editor pengembangan SQL untuk mengirim pekerjaan XIHE BSP

Pada halaman SQL Development, pilih kelompok sumber daya pekerjaan dan mesin XIHE untuk mengirim pekerjaan XIHE BSP.

Prosedur

  1. Login ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.

  2. Di panel navigasi sebelah kiri, pilih Job Development > SQL Development.

  3. Pada tab SQLConsole, pilih kelompok sumber daya pekerjaan dan mesin XIHE.

  4. Masukkan pernyataan SQL yang akan dieksekusi dan klik Execute.

  5. Setelah pernyataan SQL dieksekusi, hasilnya ditampilkan pada tab Execution Results.

    Pada tab Execution Records, klik Result di kolom Actions untuk mengunduh hasil eksekusi.

Gunakan JDBC atau klien MySQL untuk mengirim pekerjaan XIHE BSP secara sinkron

Tambahkan hint untuk menentukan kelompok sumber daya pekerjaan guna mengirim pekerjaan XIHE BSP secara sinkron.

Sintaks

/*+ resource_group=<resource_group_name>*/ <SQL Statement>;
  • resource_group_name: nama kelompok sumber daya pekerjaan.

  • SQL Statement: pernyataan SQL yang akan dieksekusi. Anda harus menambahkan hint sebelum setiap pernyataan SQL.

Contoh

/*+ resource_group=bsptest*/SELECT count(*) from test_db.ods_hudi;

Gunakan JDBC atau klien MySQL untuk mengirim pekerjaan XIHE BSP secara asinkron

Tambahkan hint untuk menentukan kelompok sumber daya pekerjaan dan atur jenis pengiriman menjadi asinkron guna mengirim pekerjaan XIHE BSP secara asinkron.

Sintaks

/*+ resource_group=<resource_group_name>, query_submission_type=async*/ <SQL Statement>;
  • resource_group_name: nama kelompok sumber daya pekerjaan.

  • query_submission_type=async: menentukan bahwa metode pengiriman bersifat asinkron.

  • SQL Statement: pernyataan SQL yang akan dieksekusi. Anda harus menambahkan hint sebelum setiap pernyataan SQL.

Contoh

/*+ resource_group=bsptest, query_submission_type=async*/SELECT count(*) from test_db.ods_hudi;

Setelah Anda mengirim tugas asinkron, Job_id langsung dikembalikan. Setelah tugas selesai, Anda dapat menggunakan pernyataan SHOW job result WHERE job='Job_id'; untuk menanyakan hasil eksekusi. Untuk informasi lebih lanjut, lihat Query the status of an asynchronous task.

Konfigurasi pekerjaan XIHE BSP

Anda dapat mengatur sumber daya, periode timeout default, dan prioritas untuk pekerjaan XIHE BSP.

Metode konfigurasi

Konfigurasi pekerjaan BSP dapat diterapkan untuk satu pekerjaan saja, semua pekerjaan dalam kelompok sumber daya pekerjaan, atau semua pekerjaan dalam kluster.

Berlaku untuk satu pekerjaan

Untuk menerapkan konfigurasi pada satu pekerjaan, tambahkan hint /*+ resource_group=<resource_group_name>,<config_name>*/.

Dalam hint ini, resource_group_name adalah nama kelompok sumber daya, dan config_name adalah nama item konfigurasi dari daftar Configuration items.

Contoh: Contoh ini menentukan bahwa pekerjaan dijalankan dalam kelompok sumber daya pekerjaan bsptest dan menggunakan maksimal 20 ACU.

/*+ resource_group=bsptest,elastic_job_max_acu=20*/SELECT count(*) from test_db.ods_hudi;

Berlaku dalam kelompok sumber daya

Untuk menerapkan konfigurasi pada semua pekerjaan dalam kelompok sumber daya pekerjaan, jalankan pernyataan SET adb_config <resource_group_name>.<config_name>.

Dalam pernyataan ini, resource_group_name adalah nama kelompok sumber daya, dan config_name adalah nama item konfigurasi dari daftar Configuration items.

Contoh: Contoh ini menentukan bahwa untuk semua pekerjaan yang dijalankan dalam kelompok sumber daya pekerjaan bsptest, setiap pekerjaan dapat menggunakan maksimal 20 ACU.

SET adb_config bsptest.elastic_job_max_acu=20;

Verifikasi bahwa konfigurasi telah berlaku

Untuk memverifikasi bahwa konfigurasi untuk kelompok sumber daya telah berlaku, jalankan pernyataan SHOW ADB_CONFIG KEY=<resource_group_name>.<config_name>.

Berlaku dalam kluster

Untuk menerapkan konfigurasi pada semua pekerjaan dalam kluster, jalankan pernyataan SET adb_config <config_name>. Dalam pernyataan ini, config_name adalah nama item konfigurasi dari daftar Configuration items.

Contoh: Contoh ini menentukan bahwa untuk semua pekerjaan yang dijalankan dalam kluster, setiap pekerjaan dapat menggunakan maksimal 20 ACU.

SET adb_config elastic_job_max_acu=20;

Verifikasi bahwa konfigurasi telah berlaku

Untuk memverifikasi bahwa konfigurasi untuk kluster telah berlaku, jalankan pernyataan SHOW ADB_CONFIG KEY=<config_name>.

Item konfigurasi

Tabel berikut menjelaskan item konfigurasi yang didukung oleh pekerjaan XIHE BSP.

Kategori

Nama item konfigurasi

Deskripsi

Nilai default

Resource

elastic_job_max_acu

Jumlah maksimum AnalyticDB Compute Units (ACU) yang dapat digunakan oleh satu pekerjaan XIHE BSP. Ini mencakup AppMaster dan node komputasi.

Nilai ini tidak boleh melebihi jumlah maksimum ACU untuk kelompok sumber daya.

Catatan

Node AppMaster bertanggung jawab atas penguraian, penjadwalan, dan eksekusi satu kueri.

9

Timeout

batch_query_timeout

Periode timeout untuk pekerjaan BSP, dalam milidetik (ms). Jika waktu eksekusi pekerjaan BSP melebihi nilai ini, pekerjaan tersebut akan dibatalkan secara otomatis.

7200000

Priority

query_priority

Prioritas pekerjaan BSP.

Nilai yang valid: HIGH, NORMAL, LOW, dan LOWEST.

Untuk informasi lebih lanjut, lihat Priority queues for job resource groups.

NORMAL

FAQ

Bagaimana cara memeriksa status pekerjaan BSP?

  • Jika pekerjaan BSP dikirim dari editor pekerjaan, Anda dapat melihat statusnya pada tab Execution Records di bagian bawah halaman Job Editor > SQL Development.

  • Jika pekerjaan BSP dikirim menggunakan metode lain, Anda dapat menanyakan tabel information_schema.kepler_meta_elastic_job_list. Contohnya:

    SELECT status FROM information_schema.kepler_meta_elastic_job_list WHERE process_id='<job_id>';
    Catatan

    Tabel information_schema.kepler_meta_elastic_job_list menyimpan informasi tentang 1.000 tugas BSP terakhir yang dikirim dalam 30 hari terakhir. Anda dapat melakukan analisis statistik lebih lanjut, seperti agregasi, pada tabel ini. Contoh berikut menunjukkan cara menghitung jumlah pekerjaan BSP dalam setiap status.

    SELECT status,count(*) FROM information_schema.kepler_meta_elastic_job_list GROUP BY status;

Bagaimana memilih antara pengiriman sinkron dan asinkron untuk pekerjaan BSP?

Tidak ada perbedaan fungsional antara pengiriman sinkron dan asinkron. Satu-satunya perbedaan adalah apakah klien perlu menunggu hingga kueri selesai.

Pengiriman asinkron memiliki batasan berikut:

  • Set hasil dapat berisi maksimal 10.000 baris.

  • Maksimal 1.000 set hasil, termasuk tautan unduhan file CSV-nya, disimpan hingga 30 hari.

Pengiriman asinkron direkomendasikan untuk kueri yang memakan waktu lama dan intensif komputasi tetapi menghasilkan set hasil kecil, seperti INSERT INTO SELECT, INSERT OVERWRITE SELECT, dan CREATE TABLE AS SELECT.