Pelajari cara melihat, membuat, menghapus, dan menskalakan gudang virtual.
Catatan
Kompatibilitas versi: Hanya Hologres V2.0.4 dan versi yang lebih baru yang mendukung instans gudang virtual. Untuk versi sebelumnya, hubungi dukungan teknis untuk peningkatan.
Batas instans: Setiap instans dapat menampung maksimal 10 gudang virtual. Setiap gudang virtual harus memiliki sumber daya antara 32 CU (Compute Unit) hingga 512 CU.
V3.0.10 dan yang lebih baru: Spesifikasi maksimum ditingkatkan menjadi 1024 CU.
V3.0.27 dan yang lebih baru: Batas spesifikasi maksimum untuk gudang virtual dihapus.
Gudang virtual default: Saat Anda membeli instans gudang virtual baru, gudang virtual default bernama
init_warehousesecara otomatis dibuat. Setiap instans hanya boleh memiliki satu gudang virtual default. Anda tidak dapat menghapusnya, tetapi dapat mengubah nama dan spesifikasinya. Perintah SQL tidak dapat digunakan untuk menghentikan atau melanjutkan gudang virtual default. Secara default, semua pengguna memiliki izin untuk menggunakan gudang virtual default.Pernyataan DDL: Pernyataan DDL dapat dieksekusi pada semua gudang virtual.
Isolasi sumber daya: Instans gudang virtual tidak mendukung kelompok sumber daya (akan ditinggalkan). Untuk mengisolasi sumber daya, buat beberapa gudang virtual. Untuk informasi selengkapnya, lihat Mengelola kelompok sumber daya (beta).
Penagihan: Lihat Ikhtisar penagihan.
Membuat gudang virtual
Catatan
Hanya Akun Alibaba Cloud atau Pengguna RAM dengan izin Superuser untuk instans yang dapat membuat gudang virtual.
Membuat gudang virtual adalah proses asinkron yang berjalan di latar belakang. Untuk memastikan bahwa gudang virtual siap digunakan, gunakan fungsi
hg_get_warehouse_statusuntuk menanyakan statusnya.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Klik Create Virtual Warehouse. Di dialog tersebut, konfigurasikan parameter berikut dan klik OK.
Parameter
Deskripsi
Virtual Warehouse Name
Nama gudang virtual yang akan dibuat.
Single-cluster Specs
Sumber daya yang dicadangkan untuk setiap kluster dalam gudang virtual.
Reserved Clusters
Jumlah awal kluster dalam gudang virtual. Sumber daya komputasi untuk kluster yang dicadangkan ini diambil dari sumber daya cadangan Instans.
Untuk informasi selengkapnya, lihat Ikhtisar skalabilitas sumber daya.
Gunakan perintah SQL
Sintaks
CALL hg_create_warehouse ('<warehouse_name>', <cu>);Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual baru. Konvensi penamaan:
Hanya boleh berisi angka, huruf, dan garis bawah.
Panjang maksimal 127 karakter.
cu
INTEGER
Jumlah CU untuk gudang virtual.
Nilai maksimum: 512.
Nilai minimum: 32.
Harus kelipatan 16.
Menghapus gudang virtual
Catatan
Hanya Akun Alibaba Cloud atau Pengguna RAM dengan izin Superuser untuk instans yang dapat menghapus gudang virtual.
Anda tidak dapat menghapus gudang virtual default suatu instans.
Anda tidak dapat menggunakan perintah SQL untuk menghapus gudang virtual leader dari Table Group.
Menghapus gudang virtual adalah proses asinkron yang berjalan di latar belakang. Untuk memastikan bahwa gudang virtual telah dihapus, gunakan fungsi
hg_get_warehouse_statusuntuk menanyakan status gudang virtual tersebut.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Actions gudang virtual target, klik Stop dan konfirmasi tindakan tersebut.
Setelah gudang virtual dihentikan, klik Delete di kolom Actions untuk menghapusnya.
Gunakan perintah SQL
Sintaks
CALL hg_drop_warehouse ('<warehouse_name>');Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan dihapus.
Skalakan gudang virtual
Izin
Sebelum V3.0.28, hanya Akun Alibaba Cloud atau Pengguna RAM yang dapat menskalakan gudang virtual. Mulai dari V3.0.28, Peran RAM juga dapat melakukan operasi ini.
Untuk menskalakan gudang virtual, Anda harus memiliki izin berikut:
Izin Peran RAM:
AliyunHologresWarehouseFullAccessatauAliyunHologresFullAccess.Izin Superuser dalam instans.
Untuk informasi tentang skalabilitas elastis untuk gudang virtual, lihat Ikhtisar skalabilitas sumber daya.
Skalakan naik gudang virtual
Catatan
Sebelum menskalakan naik gudang virtual, pastikan instans Anda memiliki sumber daya yang belum dialokasikan secara cukup dengan terlebih dahulu menskalakan naik instans di konsol. Menyesuaikan sumber daya instans akan memicu startup Pod baru; Pod ini tidak memuat metadata shard atau berpartisipasi dalam komputasi, dan penskalaan instans tidak memengaruhi kueri atau penulisan yang sedang berlangsung.
Setelah instans diskalakan naik dan memiliki sumber daya yang belum dialokasikan secara memadai, sumber daya tersebut dapat digunakan untuk menskalakan naik gudang virtual. Instans yang kekurangan sumber daya yang belum dialokasikan tidak dapat mendukung penskalaan naik gudang virtual.
Penyeimbangan ulang otomatis: Mulai dari Hologres V2.2, ketika gudang virtual memiliki Pod kosong setelah penskalaan, Hologres secara otomatis melakukan penyeimbangan ulang untuk memuat metadata shard ke Pod baru tersebut. Sumber daya yang baru dialokasikan menjadi tersedia untuk digunakan setelah penyeimbangan ulang selesai. Untuk versi sebelumnya, Anda harus melakukan penyeimbangan ulang secara manual setelah menskalakan naik gudang virtual.
Dampak penyeimbangan ulang: Penyeimbangan ulang akan mengganggu pembacaan dan penulisan selama sekitar 15 detik. Mulai dari Hologres V3.0.28, penyeimbangan ulang bebas downtime, tetapi pekerjaan Flink terkait mungkin mengalami failover.
CatatanSaat penskalaan naik, transaksi DML multi-baris tetap terganggu. Ini mencakup transaksi DML dengan parameter
hg_experimental_enable_transactionyang diaktifkan secara eksplisit, pernyataan INSERT OVERWRITE native, dan pembaruan bertahap untuk Tabel Dinamis.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Actions gudang virtual target, klik Modify Configuration. Tingkatkan nilai Single-cluster Specs dan klik OK.
(Opsional) Klik Rebalance di kolom Actions untuk mendistribusikan ulang shard ke Pod yang baru ditambahkan.
Gunakan perintah SQL
Skalakan naik gudang virtual:
CALL hg_alter_warehouse ('<warehouse_name>',<cu>);Parameter:
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan dimodifikasi.
cu
INTEGER
Jumlah target CU untuk gudang virtual.
Nilai maksimum: 512.
Nilai minimum: 32.
Harus kelipatan 16.
Tanyakan status gudang virtual.
Proses penskalaan bersifat asinkron. Untuk memastikan bahwa operasi telah selesai, gunakan fungsi
hg_get_warehouse_status:select hg_get_warehouse_status('<warehouse_name>');Ketika fungsi mengembalikan
Running, gudang virtual berada dalam status berjalan dan siap untuk operasi lebih lanjut.Lakukan penyeimbangan ulang shard.
Lakukan penyeimbangan ulang shard pada gudang virtual yang telah diskalakan naik.
SELECT hg_rebalance_warehouse ('<warehouse_name>');Tanyakan progres penyeimbangan ulang.
Proses penyeimbangan ulang bersifat asinkron. Untuk memastikan selesai, tanyakan statusnya.
Gunakan fungsi
hg_get_rebalance_warehouse_status:SELECT hg_get_rebalance_warehouse_status ('<warehouse_name>');Ketika fungsi mengembalikan
DOING, penyeimbangan ulang sedang berlangsung;DONEmenunjukkan penyeimbangan ulang telah selesai.Gunakan fungsi
hg_wait_until_rebalance_warehouse_doneuntuk mengembalikan hasil ketika gudang virtual berada dalam statusRunning:select hg_wait_until_rebalance_warehouse_done('<warehouse_name>',<timeout_seconds>);Parameter
timeout_secondsbersifat opsional dan menentukan periode timeout dalam detik. Ketika fungsi mengembalikanDONE, penyeimbangan ulang telah selesai.
Contoh: Gunakan pernyataan SQL berikut untuk menskalakan naik gudang virtual read_warehouse_1 menjadi 64 CU.
-- Tingkatkan sumber daya gudang virtual
CALL hg_alter_warehouse ('read_warehouse_1',64);
-- Tunggu hingga gudang virtual selesai penskalaan naik
SELECT wait_until_warehouse_running ('read_warehouse_1');
-- Lakukan penyeimbangan ulang shard
SELECT hg_rebalance_warehouse ('read_warehouse_1');
-- Tunggu hingga penyeimbangan ulang selesai
SELECT hg_wait_until_rebalance_warehouse_done ('read_warehouse_1');Skalakan turun gudang virtual
Catatan
Saat menskalakan turun gudang virtual, Hologres terlebih dahulu memigrasikan shard dari Pod yang akan dihentikan ke Pod aktif. Dampak:
Sebelum Hologres V3.1: Penskalaan turun akan mengganggu pembacaan dan penulisan pada shard yang terpengaruh selama sekitar 15 detik. Pod tambahan dihentikan setelah proses penyeimbangan ulang.
(Beta) Hologres V3.1+: Penskalaan turun tidak akan mengganggu kueri dan penulisan utama. Koneksi ke Pod yang dihentikan akan mengalami pemutusan singkat dalam hitungan detik, dan pekerjaan Flink terkait mungkin mengalami failover. Namun, operasi jangka panjang (lebih dari 60 menit) yang aktif saat penskalaan turun dimulai akan gagal 60 menit setelah penskalaan turun dimulai.
CatatanSaat penskalaan turun, transaksi DML multi-baris tetap terganggu. Ini mencakup transaksi DML dengan parameter
hg_experimental_enable_transactionyang diaktifkan secara eksplisit, pernyataan INSERT OVERWRITE native, dan pembaruan bertahap untuk Tabel Dinamis.Setelah penskalaan turun, sumber daya yang dilepaskan dikembalikan ke kolam sumber daya instans yang belum dialokasikan. Sumber daya ini kemudian dapat digunakan untuk membuat gudang virtual baru atau menskalakan naik gudang virtual lain yang sudah ada. Atau, Anda dapat melepaskan sumber daya ini dengan menskalakan turun instans itu sendiri.
Prosedur
(Direkomendasikan) Gunakan UI
Ikuti langkah-langkah di Skalakan naik gudang virtual, tetapi kurangi Single-cluster Specs.
Gunakan perintah SQL
Skalakan turun gudang virtual.
CALL hg_alter_warehouse ('<warehouse_name>',<cu>);Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan diskalakan.
cu
INTEGER
Jumlah target CU untuk gudang virtual.
Nilai maksimum: 512.
Nilai minimum: 32.
Harus kelipatan 16.
Tanyakan status gudang virtual.
Proses penskalaan turun bersifat asinkron. Untuk memastikan bahwa operasi telah selesai, gunakan fungsi
hg_get_warehouse_status.select hg_get_warehouse_status('<warehouse_name>');Jika penskalaan turun telah selesai, fungsi mengembalikan
Running.
Perluas gudang virtual (Tambahkan kluster)
Catatan penggunaan
Lihat bagian "Catatan" untuk Skalakan naik gudang virtual.
Prosedur
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Actions gudang virtual target, klik Modify Configuration, tingkatkan Reserved Clusters, dan klik OK.
Kurangi gudang virtual (Kurangi kluster)
Catatan
Lihat bagian "Catatan" untuk Skalakan turun gudang virtual.
Prosedur
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Actions gudang virtual target, klik Adjust Configuration, kurangi Reserved Clusters, dan klik OK.
O&M
Lihat gudang virtual
Perintah
Tampilan sistem
hologres.hg_warehousesmenyimpan informasi tentang semua gudang virtual dalam Instans saat ini.SELECT * FROM hologres.hg_warehouses;Lihat gudang virtual saat ini:
SELECT current_warehouse();
Parameter
Tampilan sistem
hologres.hg_warehousesmencakup bidang-bidang berikut:Bidang
Tipe
Deskripsi
Contoh
warehouse_id
INTEGER
ID unik gudang virtual.
1warehouse_name
TEXT
Nama gudang virtual.
init_warehousecpu
INTEGER
vCPU gudang virtual.
32mem
INTEGER
Memori gudang virtual dalam GB.
128cluster_min_count
INTEGER
Jumlah minimum kluster untuk gudang virtual.
1cluster_max_count
INTEGER
Jumlah maksimum kluster untuk gudang virtual.
1target_status
INTEGER
Status akhir gudang virtual. Karena pembaruan status bersifat asinkron, bidang ini mencerminkan status target. Nilai yang mungkin:
1: Berjalan
2: Dihentikan secara manual
1status
INTEGER
Status saat ini dari gudang virtual. Statusnya adalah:
0: Menginisialisasi
1: Berjalan
2: Dihentikan secara manual
3: Pemrosesan gagal. Periksa bidang
status_detailuntuk mengetahui penyebab kegagalan.4: Memproses
1status_detail
TEXT
Rincian tentang status gudang virtual.
is_default
BOOLEAN
Menunjukkan apakah ini adalah gudang virtual default.
t: Benar
f: Salah
tconfig
TEXT
Konfigurasi gudang virtual.
comment
TEXT
Komentar untuk gudang virtual.
Hentikan gudang virtual
Catatan
Anda memerlukan izin Superuser untuk instans agar dapat menghentikan gudang virtual.
Gudang virtual leader untuk Table Group tidak dapat dihentikan.
Menghentikan gudang virtual adalah proses asinkron. Untuk memastikan operasi selesai, gunakan fungsi
hg_get_warehouse_statusuntuk menanyakan statusnya.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Actions gudang virtual target, klik Stop.
Gunakan perintah SQL
Sintaks
CALL hg_suspend_warehouse ('<warehouse_name>');Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan dihentikan.
Lanjutkan gudang virtual
Catatan
Anda memerlukan izin Superuser untuk instans agar dapat melanjutkan gudang virtual.
Melanjutkan gudang virtual adalah proses asinkron. Untuk memastikan operasi selesai, gunakan fungsi
hg_get_warehouse_statusuntuk menanyakan statusnya.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Actions gudang virtual target, klik Start.
Perintah SQL
Sintaks
CALL hg_resume_warehouse ('<warehouse_name>');Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan dilanjutkan.
Mulai ulang gudang virtual
Peringatan
Anda memerlukan Izin Superuser untuk Instans agar dapat memulai ulang gudang virtual.
Memulai ulang gudang virtual adalah proses asinkron. Untuk memastikan operasi selesai, gunakan fungsi
hg_get_warehouse_statusuntuk menanyakan statusnya.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Di kolom Operation gudang virtual target, klik Restart dan konfirmasi tindakan tersebut.
Perintah SQL
Sintaks
CALL hg_restart_warehouse('<warehouse_name>');Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan dimulai ulang.
Dapatkan status gudang virtual
Sintaks
Dapatkan status saat ini dari gudang virtual:
select hg_get_warehouse_status('<warehouse_name>');Operasi seperti membuat atau menskalakan gudang virtual bersifat asinkron. Gunakan fungsi
wait_until_warehouse_runninguntuk menunggu hingga gudang virtual mencapai statusRunningdan mengembalikan hasil:select wait_until_warehouse_running('<warehouse_name>',<timeout_seconds>);
Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual.
timeout_seconds
INTEGER
Opsional. Periode timeout dalam detik.
Contoh
Contoh berikut menskalakan naik gudang virtual sebelum mengimpor data dan menskalakan turun setelahnya.
-- Skalakan naik warehouse_1 menjadi 64 CU. CALL hg_alter_warehouse ('warehouse_1',64); -- Tunggu hingga warehouse_1 selesai penskalaan naik. SELECT wait_until_warehouse_running('warehouse_1'); -- Tulis data. INSERT INTO res_data SELECT * FROM org_data; -- Skalakan turun warehouse_1 menjadi 32 CU. CALL hg_alter_warehouse ('warehouse_1',32);
Ubah nama gudang virtual
Catatan
Anda memerlukan izin Superuser untuk instans agar dapat mengubah nama gudang virtual.
Prosedur
(Direkomendasikan) Gunakan UI
Masuk ke Konsol Hologres. Di bilah menu atas, pilih wilayah tempat instans Anda berada.
Di menu kiri, pilih Instances. Klik ID instans Anda untuk membuka halaman detailnya.
Di submenu kiri, klik Virtual Warehouse Management dan buka tab Virtual Warehouse Resource Management.
Temukan gudang virtual target, lalu klik ikon
setelah namanya.
Gunakan perintah SQL
Sintaks
CALL hg_rename_warehouse('<org_warehouse_name>','<new_warehouse_name>');Parameter
Parameter
Tipe
Deskripsi
org_warehouse_name
TEXT
Nama saat ini dari gudang virtual.
new_warehouse_name
TEXT
Nama baru untuk gudang virtual.
Operasi lanjutan
Lakukan penyeimbangan ulang gudang virtual
Saat berjalan, Node Pekerja setiap gudang virtual Hologres memuat metadata shard secara merata. Namun, dalam beberapa skenario, seperti setelah pemulihan cepat atau operasi penskalaan naik, shard mungkin menjadi tidak merata didistribusikan di seluruh Node Pekerja. Anda kemudian dapat memicu penyeimbangan ulang untuk mendistribusikan ulang shard data secara merata di seluruh Node Pekerja.
Izin
Anda memerlukan izin Superuser untuk instans agar dapat memicu penyeimbangan ulang.
Catatan
V2.1 ke atas: Hologres secara otomatis memulai penyeimbangan ulang untuk gudang virtual yang tidak memiliki Shard yang dimuat di Node Pekerjanya.
V2.2 ke atas: Hologres kini mendukung pengulangan otomatis untuk kueri
SELECTselama penyeimbangan ulang gudang virtual. Fitur ini memungkinkan kueri selesai dengan sedikit peningkatan waktu eksekusi, mencegah kegagalan sepertiERROR: fail to execute query internal error: Get rundown is not allowed in recovering state.
Sintaks
SELECT hg_rebalance_warehouse ('<warehouse_name>');Parameter
Parameter
Tipe
Deskripsi
warehouse_name
TEXT
Nama gudang virtual yang akan diseimbangkan ulang.
Nilai kembalian
Setelah Anda memicu penyeimbangan ulang, Hologres mengembalikan salah satu hasil berikut:
true: Penyeimbangan ulang berhasil dipicu.false: Penyeimbangan ulang tidak diperlukan.Error: Gagal memicu penyeimbangan ulang karena penyebab seperti Pod rusak.
CatatanSelama penyeimbangan ulang, Hologres menilai kebutuhan redistribusi dan bertujuan untuk distribusi shard yang optimal. Secara khusus, jumlah shard pada dua Node Pekerja mana pun tidak akan berbeda lebih dari satu. Misalnya:
Dengan 2 Node Pekerja dan 2 shard, setiap node menerima 1 shard.
Dengan 2 Node Pekerja dan 3 shard, satu node menerima 1 shard, dan yang lain menerima 2.
Penyeimbangan ulang biasanya memakan waktu 2 hingga 3 menit, dengan durasi meningkat berdasarkan jumlah Table Group yang dimuat. Penulisan terganggu selama sekitar 15 detik selama proses ini.
Penyeimbangan ulang adalah proses asinkron. Periksa progresnya menggunakan perintah SQL ini:
SELECT hg_get_rebalance_warehouse_status('<warehouse_name>');Perintah ini mengembalikan
DOINGuntuk menunjukkan penyeimbangan ulang sedang berlangsung;DONEmenunjukkan penyeimbangan ulang selesai.
Tetapkan durasi timeout untuk gudang virtual
Durasi timeout dapat dikonfigurasi di tingkat sesi, database, atau gudang virtual menggunakan parameter statement_timeout. Untuk detailnya, lihat Parameter GUC.
Pengaturan timeout di tingkat gudang virtual memiliki prioritas lebih rendah daripada konfigurasi tingkat sesi atau tingkat database. Untuk memastikan pengaturan ini berlaku, hapus terlebih dahulu pengaturan timeout tingkat database yang ada.
-- Nonaktifkan pengaturan timeout tingkat database.
ALTER DATABASE <db_name> RESET statement_timeout;
-- Tetapkan durasi timeout untuk gudang virtual menjadi 600 detik.
CALL hg_alter_warehouse ('<warehouse_name>', <cu>, '{"configs":{"gucs":{"statement_timeout":"600000"}}}');