All Products
Search
Document Center

Hologres:Gunakan Serverless Computing untuk menjalankan tugas baca dan tulis

Last Updated:Mar 13, 2026

Serverless Computing didukung di Hologres V2.1.17 dan versi yang lebih baru. Topik ini menjelaskan cara menjalankan tugas menggunakan fitur ini.

Fitur yang didukung oleh Serverless Computing

Serverless Computing mendukung jenis tugas berikut:

  • Versi Hologres V2.1.17 dan yang lebih baru mendukung tugas Data Manipulation Language (DML) utama, seperti INSERT (tidak termasuk INSERT OVERWRITE), INSERT ON CONFLICT (UPSERT), DELETE, dan UPDATE.

  • Versi Hologres V2.2.14 dan yang lebih baru mendukung tugas Data Query Language (DQL).

  • Versi Hologres V3.0.1 dan yang lebih baru mendukung tugas COPY dalam DML.

  • Versi Hologres V3.0.9 dan yang lebih baru mendukung tugas CREATE TABLE AS (CTAS) dalam DML.

  • Versi Hologres V2.2.42, V3.0.19, dan yang lebih baru mendukung tugas RESHARDING.

  • Versi Hologres V3.0.26 dan yang lebih baru mendukung tugas INSERT OVERWRITE (prosedur tersimpan `hg_insert_overwrite`) dalam DML. DML dan DQL dalam prosedur tersimpan juga didukung.

  • Versi Hologres V3.1.0 dan yang lebih baru mendukung sintaks native INSERT OVERWRITE dalam DML dan tugas REBUILD.

  • Versi Hologres V3.1.3 dan yang lebih baru mendukung pembacaan dari dan penulisan ke tabel terenkripsi. Tabel-tabel tersebut mencakup tabel internal terenkripsi di Hologres dan tabel eksternal terenkripsi di MaxCompute. Untuk membaca dari dan menulis ke tabel internal terenkripsi di Hologres, Anda harus mengaktifkan parameter GUC hg_serverless_computing_enable_encrypted_table. Untuk informasi selengkapnya, lihat Enkripsi data.

  • Versi Hologres V3.1.11 dan yang lebih baru mendukung tugas compaction. Untuk informasi selengkapnya, lihat Gunakan Serverless Computing untuk menjalankan tugas compaction.

  • Versi Hologres V4.0 dan yang lebih baru mendukung pembacaan dari dan penulisan ke tabel eksternal Data Lake Formation (DLF). Untuk informasi selengkapnya mengenai format file dan pertimbangan lainnya, lihat Percepat akses ke data di data lake OSS berdasarkan DLF.

Serverless Computing mendukung ekstensi fungsi berikut:

  • ClickHouse

  • Flow Analysis

  • PostGIS

  • RoaringBitmap

  • BSI

  • Proxima

Serverless Computing tidak didukung dalam skenario berikut:

  • Kueri pada instans secondary read-only. Instans primer dan instans virtual warehouse dapat digunakan secara normal.

  • Kueri dengan transaksi DML multi-baris diaktifkan, seperti set hg_experimental_enable_transaction = on.

  • Pernyataan SQL yang menggunakan Fixed Plan.

  • Kueri dan penulisan lintas database.

Gunakan resource Serverless Computing untuk menjalankan tugas baca dan tulis

Hologres menyediakan cara fleksibel untuk menggunakan resource Serverless Computing. Anda dapat mengarahkan satu pernyataan SQL ke resource serverless untuk dieksekusi atau menetapkan aturan agar kumpulan pernyataan SQL dijalankan menggunakan resource serverless.

Hologres mendukung metode berikut untuk menjadwalkan pernyataan SQL agar dijalankan pada resource serverless, diurutkan berdasarkan prioritas menurun:

  1. Tingkat SQL (tingkat sesi): Tetapkan parameter hg_computing_resource ke 'serverless'. Permintaan baca dan tulis dalam koneksi saat ini akan dijalankan pada resource serverless.

  2. Tingkat pengguna: Tetapkan parameter hg_computing_resource ke 'serverless' pada tingkat pengguna. Tugas-tugas tersebut akan dijalankan pada resource serverless.

  3. Tingkat Antrian Kueri: Konfigurasikan semua tugas dalam antrian kueri untuk dijalankan pada resource serverless.

  4. Adaptive Serverless Computing: Setelah Anda mengaktifkan fitur ini, sistem secara otomatis mengidentifikasi tugas besar dan menjalankannya pada resource serverless.

  5. Jika tidak ada kondisi di atas yang terpenuhi, tugas dijalankan pada resource instans saat ini.

Selama eksekusi SQL, Anda juga dapat mengonfigurasi kueri besar agar secara otomatis dicoba ulang pada resource serverless. Hal ini mengurangi beban pada layanan produksi, menurunkan frekuensi error kehabisan memori (OOM), dan meningkatkan stabilitas sistem.

Catatan

Ketika suatu pernyataan SQL dijalankan pada resource serverless, resource komputasi digunakan secara eksklusif oleh pernyataan SQL tersebut. Tidak ada pernyataan SQL lain yang dijalankan secara bersamaan.

Penting

Catatan:

  • Ketika Anda menggunakan Serverless Computing untuk menjalankan permintaan baca dan tulis, permintaan tersebut diarahkan dari resource komputasi instans saat ini ke kolam resource serverless. Proses ini melibatkan pemrosesan metadata dan mengonsumsi sejumlah kecil resource komputasi instans. Konsumsi ini biasanya dapat diabaikan. Namun, hindari jumlah permintaan per detik (QPS) yang terlalu tinggi untuk permintaan Serverless Computing.

  • Untuk instans tujuan umum, pemrosesan metadata mengonsumsi resource komputasi instans.

  • Untuk instans tipe compute group, pemrosesan metadata di atas mengonsumsi resource komputasi dari compute group Leader, terlepas dari apakah Anda terhubung melalui compute group Leader atau Follower dari Table Group.

Konfigurasi tingkat SQL

Anda dapat menjalankan kode berikut untuk mengeksekusi perintah SQL pada resource Serverless Computing. Kami menyarankan agar Anda menetapkan parameter ini pada tingkat sesi.

Metode ini sering digunakan dalam skenario berikut:

  • Tugas impor atau kueri satu kali, seperti refresh data historis dan modifikasi skema atau properti tabel (Rebuild).

  • Tugas impor offline berkala, seperti impor dan ekspor data offline M+1, T+1, atau H+1. Anda dapat menambahkan konfigurasi ini ke tugas terjadwal.

  • Semua skenario lain yang memerlukan penggunaan fleksibel resource serverless.

-- Gunakan resource Serverless Computing untuk menjalankan pernyataan SQL. Nilai default adalah local, yang menunjukkan bahwa resource instans saat ini digunakan.
SET hg_computing_resource = 'serverless';

-- Setelah Anda mengirimkan pernyataan DML, reset konfigurasi untuk memastikan bahwa pernyataan SQL yang tidak perlu tidak menggunakan resource Serverless.
RESET hg_computing_resource;
Penting
  • Jangan melakukan perubahan pada tingkat database.

  • Jalankan `RESET hg_computing_resource` untuk mereset konfigurasi. Hal ini memastikan bahwa pernyataan SQL berikutnya tidak dijalankan secara tidak perlu pada resource serverless.

Contoh:

-- Persiapan Data --
    -- Buat tabel sumber.
CREATE TABLE source_tbl ( id int );
    -- Buat tabel sink.
CREATE TABLE sink_tbl ( id int );
    -- Tulis data sampel ke tabel sumber.
INSERT INTO source_tbl
SELECT * FROM generate_series(1, 99999999);

-- Gunakan resource Serverless Computing untuk menjalankan pernyataan SQL --
    -- Aktifkan fitur pada tingkat sesi.
SET hg_computing_resource = 'serverless';
    -- Jalankan pernyataan SQL.
INSERT INTO sink_tbl SELECT * FROM source_tbl;
    -- Reset konfigurasi.
RESET hg_computing_resource;

Konfigurasi tingkat pengguna

Metode ini sering digunakan dalam skenario berikut:

  • Penggunaan harian oleh pengguna dengan hak istimewa tinggi, seperti Superuser.

  • Dasbor data prioritas tinggi. Anda dapat mengonfigurasi akun dalam sumber data yang sesuai dengan dasbor tersebut.

Anda dapat menjalankan kode berikut untuk mengonfigurasi semua pernyataan SQL yang diprakarsai oleh USER atau ROLE tertentu agar secara default dijalankan pada resource Serverless Computing.

Catatan

Prioritas metode konfigurasi ini lebih tinggi daripada konfigurasi GUC tingkat database dan lebih rendah daripada konfigurasi GUC tingkat sesi. Untuk informasi selengkapnya, lihat Parameter GUC.

-- Konfigurasikan pengguna agar menjalankan pernyataan SQL pada resource Serverless Computing secara default dalam database tertentu.
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_computing_resource = 'serverless';

-- Batalkan konfigurasi di atas.
ALTER USER "<role_name>" IN DATABASE <db_name> RESET hg_computing_resource;

Konfigurasi tingkat Antrian Kueri

Di Hologres, Anda dapat mengonfigurasi antrian kueri agar semua pernyataan SQL-nya dijalankan pada resource Serverless Computing. Untuk informasi selengkapnya tentang cara mengonfigurasi antrian kueri, lihat Antrian Kueri. Fitur ini memungkinkan Anda menggunakan kemampuan klasifikasi Antrian Kueri untuk menjalankan semua pernyataan SQL jenis tertentu pada resource serverless, seperti:

  • Berdasarkan jenis kueri: seperti INSERT, SELECT, UPDATE, dan DELETE.

  • Berdasarkan mesin kueri: seperti HQE, PQE, SQE, dan HiveQE. Misalnya, semua tugas non-direct-read untuk tabel eksternal MaxCompute (tugas SQE) dapat dijalankan pada resource serverless.

  • Berdasarkan sidik jari SQL: Jika pola kueri mengonsumsi resource signifikan dan menimbulkan risiko stabilitas, Anda dapat mengonfigurasi sidik jari SQL yang sesuai agar selalu dijalankan pada resource serverless.

  • Berdasarkan mode penyimpanan: hot atau cold. Misalnya, semua kueri penyimpanan dingin dapat dijalankan pada resource serverless.

Anda dapat menjalankan kode berikut untuk mengonfigurasi fitur ini:

  • Instans tujuan umum

    -- Konfigurasikan semua kueri dalam antrian target agar dijalankan pada resource Serverless.
    CALL hg_set_query_queue_property('<query_queue_name>', 'computing_resource', 'serverless');
    
    -- (Opsional) Tetapkan prioritas untuk kueri dalam antrian target saat menggunakan resource Serverless. Nilai yang valid: 1 hingga 5. Nilai default: 3.
    CALL hg_set_query_queue_property('<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');
  • instans gudang virtual

    -- Konfigurasikan semua kueri dalam antrian target agar dijalankan pada resource Serverless.
    CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'computing_resource', 'serverless');
    
    -- (Opsional) Tetapkan prioritas untuk kueri dalam antrian target saat menggunakan resource Serverless. Nilai yang valid: 1 hingga 5. Nilai default: 3.
    CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');

Adaptive Serverless Computing

Hologres dapat secara otomatis mengidentifikasi tugas besar dalam sistem dan menjalankannya pada resource serverless. Untuk informasi selengkapnya, lihat Adaptive Serverless Computing.

Percobaan ulang otomatis untuk tugas besar

Jika suatu pernyataan SQL sudah berjalan pada resource instans saat ini, Anda dapat mendefinisikannya sebagai kueri besar untuk meningkatkan stabilitas sistem dan mencegahnya mengonsumsi resource berlebihan. Anda dapat mendefinisikan kueri besar sebagai pernyataan SQL yang berjalan lebih dari jumlah detik tertentu atau menyebabkan error OOM. Kueri besar tersebut kemudian secara otomatis dicoba ulang pada resource serverless. Untuk informasi selengkapnya, lihat Kontrol kueri besar.

Tetapkan prioritas tugas Serverless Computing

Hologres memungkinkan Anda menetapkan prioritas untuk pernyataan SQL yang dijalankan pada Serverless Computing. Dengan menetapkan batas resource untuk setiap pernyataan SQL dan menggunakan mekanisme antrian berbasis prioritas, Anda dapat memastikan bahwa pernyataan SQL dijalankan pada Serverless Computing secara stabil dan teratur.

Pertimbangkan skenario berikut:

Instans Anda memiliki tipe instans 32 core, dan maksimum resource Serverless Computing yang tersedia untuk instans tersebut adalah 96 core. SQL A sedang berjalan dan menggunakan 64 core resource serverless. Pada saat yang sama, antrian tugas serverless berisi SQL B, yang membutuhkan 48 core dan memiliki prioritas 5, serta SQL C, yang membutuhkan 32 core dan memiliki prioritas 3. Dalam kasus ini, sistem menunggu SQL A selesai. Kemudian, sistem mengalokasikan 48 core untuk menjalankan SQL B terlebih dahulu, bukan menggunakan sisa 32 core untuk menjalankan SQL C.

  • Anda dapat menjalankan kode berikut untuk menetapkan prioritas eksekusi untuk pernyataan SQL pada resource Serverless Computing.

    Prioritas dapat bernilai 1 hingga 5. Nilai default adalah 3. Nilai yang lebih besar menunjukkan prioritas yang lebih tinggi. Resource dialokasikan terlebih dahulu ke tugas dengan prioritas lebih tinggi, terlepas dari jumlah resource yang diminta.

    -- Konfigurasi tingkat sesi
    SET hg_experimental_serverless_computing_query_priority = 5;
    -- Reset konfigurasi.
    RESET hg_experimental_serverless_computing_query_priority;
    
    -- Konfigurasi tingkat pengguna
    ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_experimental_serverless_computing_query_priority = 5;
    -- Reset konfigurasi.
    ALTER USER "<role_name>" IN DATABASE <db_name> RESET hg_experimental_serverless_computing_query_priority;
  • Contoh

    -- Gunakan resource Serverless Computing untuk menjalankan pernyataan SQL.
    SET hg_computing_resource = 'serverless';
    
    -- Tetapkan prioritas pernyataan SQL ke 5.
    SET hg_experimental_serverless_computing_query_priority to 5;
    
    -- Jalankan pernyataan SQL.
    INSERT INTO sink_tbl SELECT * FROM source_tbl;
     
    -- Reset konfigurasi.
    RESET hg_computing_resource;
    RESET hg_experimental_serverless_computing_query_priority;

Verifikasi Serverless Computing

Anda dapat menjalankan kode berikut untuk melihat rencana eksekusi pernyataan SQL.

-- Gunakan resource Serverless Computing untuk menjalankan pernyataan SQL.
SET hg_computing_resource = 'serverless';

-- Jalankan pernyataan SQL.
EXPLAIN INSERT INTO sink_tbl SELECT * FROM source_tbl;

-- Reset konfigurasi.
RESET hg_computing_resource;

Hasil berikut dikembalikan. Jika hasil berisi Computing Resource: Serverless, pernyataan SQL tersebut dijalankan pada resource Serverless Computing.

                                        QUERY PLAN                                        
------------------------------------------------------------------------------------------
 Gather  (cost=0.00..5.18 rows=100 width=4)
   ->  Insert  (cost=0.00..5.18 rows=100 width=4)
         ->  Redistribution  (cost=0.00..5.10 rows=100 width=4)
               ->  Local Gather  (cost=0.00..5.10 rows=100 width=4)
                     ->  Decode  (cost=0.00..5.10 rows=100 width=4)
                           ->  Seq Scan on source_tbl  (cost=0.00..5.00 rows=100 width=4)
 Computing Resource: Serverless
 Optimizer: HQO version 2.1.0
(8 rows)

Anda juga dapat melihat tugas yang sedang berjalan dan tugas historis pada resource serverless. Untuk informasi selengkapnya, lihat Pantau dan kelola Serverless Computing.