Hologres mendukung pelaksanaan tugas dengan sumber daya komputasi tanpa server. Sumber daya serverless yang tersedia dibatasi baik pada tingkat instans maupun SQL. Topik ini menjelaskan batasan sumber daya untuk komputasi tanpa server dan cara mengelola sumber daya serverless untuk kueri SQL Anda.
Kuota Sumber Daya Serverless
Kuota Sumber Daya Serverless adalah jumlah maksimum sumber daya serverless yang dapat diminta oleh sebuah instans Hologres. Kuota ini ditentukan oleh sumber daya komputasi khusus dari instans tersebut. Tabel di bawah ini menguraikan hubungan ini.
Sumber daya Khusus (CUs) | Kuota Sumber Daya Serverless |
Kurang dari 32 CUs | Komputasi Serverless tidak didukung. |
32 CUs hingga 688 CUs | Kuotanya adalah 3 kali lipat dari sumber daya komputasi khusus instans. Sebagai contoh, sebuah instans dengan 32 CUs khusus memiliki kuota sebesar 32 * 3 = 96 CUs. Mulai Hologres v3.0.33, kuota meningkat menjadi 5 kali lipat dari sumber daya komputasi khusus instans, dengan batas maksimum 2048 CUs. Batas ini dinaikkan menjadi 4096 CUs mulai v3.1.9. |
688 CUs atau lebih | Kuotanya dibatasi hingga 2048 CUs. Batas ini meningkat menjadi 4096 CUs mulai v3.1.9. |
Kuota sumber daya serverless adalah jumlah maksimum sumber daya serverless bersamaan yang dapat digunakan oleh semua kueri SQL aktif (dalam keadaan
EXECUTE) pada sebuah instans.Kolam sumber daya serverless di setiap zona dibagikan oleh semua instans dalam zona tersebut.
Jika kuota sumber daya serverless sebuah instans terlampaui atau kolam sumber daya serverless di zona tersebut habis, kueri SQL baru akan dimasukkan ke dalam antrian (masuk ke keadaan
QUEUE) sampai sumber daya serverless tersedia.
Tetapkan sumber daya serverless untuk kueri SQL
Alokasi sumber daya kueri SQL ditentukan oleh nilai minimum dari tiga faktor dalam tabel di bawah ini. Sumber daya diminta dalam penambahan 15 CU.
Faktor (Parameter) | Deskripsi |
Resource quota | Jumlah maksimum sumber daya komputasi serverless yang dapat digunakan oleh sebuah instans Hologres. |
Max resources ( | Menentukan batas atas resource tanpa server yang dapat dialokasikan untuk satu kueri SQL. Parameter ini dapat dikonfigurasi. Nilai default:
|
Required resources ( | Resource tanpa server yang diperkirakan oleh Hologres diperlukan oleh suatu kueri SQL. Nilai default |
Set max resources
Jalankan pernyataan berikut untuk menetapkan batas atas sumber daya serverless untuk satu kueri SQL.
Untuk memastikan ketersediaan sumber daya yang memadai bagi eksekusi SQL, hindari mengubah parameter ini. Jika Anda harus mengubahnya, lakukan pengujian menyeluruh terlebih dahulu.
-- Tetapkan jumlah maksimum CU untuk dialokasikan untuk satu tugas komputasi serverless. Default: 512.
SET hg_experimental_serverless_computing_max_cores = 512;
-- Reset konfigurasi.
reset hg_experimental_serverless_computing_max_cores;Contoh:
-- Aktifkan komputasi serverless untuk kueri.
SET hg_computing_resource = 'serverless';
-- Tetapkan jumlah maksimum CU untuk satu kueri SQL menjadi 32.
SET hg_experimental_serverless_computing_max_cores = 32;
-- Jalankan kueri SQL.
INSERT INTO sink_tbl SELECT * FROM source_tbl;
-- Reset konfigurasi.
reset hg_computing_resource;
reset hg_experimental_serverless_computing_max_cores;Set required resources
Secara default, Hologres secara otomatis memperkirakan sumber daya yang diperlukan untuk kueri berdasarkan kompleksitasnya. Estimasi otomatis ini memberikan keseimbangan antara pemanfaatan sumber daya dan waktu eksekusi kueri.
Untuk meningkatkan performa kueri dengan mengalokasikan lebih banyak sumber daya serverless, jalankan pernyataan berikut.
Kami tidak merekomendasikan mengubah parameter ini. Mengalokasikan terlalu sedikit sumber daya dapat menyebabkan error OOM. Jika Anda harus mengubahnya, lakukan pengujian menyeluruh terlebih dahulu.
Untuk memastikan stabilitas, jika parameter ini ditentukan secara manual, Hologres akan menggunakan nilai yang lebih besar antara nilai yang Anda tentukan atau 50% dari estimasinya sendiri.
-- Nilai default 0 mengaktifkan estimasi sumber daya otomatis.
SET hg_experimental_serverless_computing_required_cores = XX;
-- Reset konfigurasi.
reset hg_experimental_serverless_computing_required_cores;Contoh:
-- Enable serverless computing for the query.
SET hg_computing_resource = 'serverless';
-- Manually request 96 CUs. Actual requested resources is max (96, Hologres' estimate * 0.5)
SET hg_experimental_serverless_computing_required_cores = 96;
-- Execute the SQL query.
INSERT INTO sink_tbl SELECT * FROM source_tbl;
-- Reset the configuration.
reset hg_computing_resource;
reset hg_experimental_serverless_computing_required_cores;Atur ulang strategi estimasi otomatis
Jika estimasi sumber daya otomatis secara konsisten tidak akurat, sesuaikan strategi estimasi dengan memodifikasi parameter hg_experimental_serverless_computing_resource_allocation_ratio.
Nilai defaultnya adalah
4, yang mewakili strategi netral.Jika Hologres secara konsisten meremehkan sumber daya, tingkatkan nilai ini. Sebagai contoh, menetapkannya ke
8melipatgandakan sumber daya yang diperkirakan (misalnya, estimasi 60 CU menjadi 120 CUs).Jika Hologres secara konsisten melebih-lebihkan sumber daya, kurangi nilai ini. Sebagai contoh, menetapkannya ke
2membagi dua sumber daya yang diperkirakan (misalnya, estimasi 60 CU menjadi 30 CUs).
-- Modifikasi pada tingkat SQL
SET hg_experimental_serverless_computing_resource_allocation_ratio = 4;
-- Modifikasi pada tingkat pengguna
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_experimental_serverless_computing_resource_allocation_ratio = 4;
-- Modifikasi pada tingkat DB
ALTER DATABASE <db_name> SET hg_experimental_serverless_computing_resource_allocation_ratio = 4;