All Products
Search
Document Center

Hologres:Menghubungkan ke virtual warehouse

Last Updated:Aug 13, 2026

Ketika sebuah instans Hologres memiliki beberapa virtual warehouse, Anda dapat menargetkan salah satunya pada saat koneksi — atau beralih warehouse di tengah sesi tanpa perlu menyambung ulang. Halaman ini menjelaskan cara menentukan virtual warehouse dalam string koneksi JDBC dan psql, serta cara beralih warehouse menggunakan SQL setelah terhubung.

Menghubungkan menggunakan JDBC

Format string koneksi

Tanpa virtual warehouse (menggunakan virtual warehouse default Anda):

jdbc:postgresql:<Endpoint>:<Port>/<database_name>

Dengan virtual warehouse:

jdbc:postgresql://<Endpoint>:<Port>/<database_name>@<warehouse_name>

Parameter

ParameterWajibDeskripsi
EndpointYaEndpoint instans Hologres. Buka konsol Hologres, klik Instances di panel navigasi kiri, klik instans target, lalu temukan endpoint di bagian Network Information pada halaman Instance Details. Pilih endpoint yang sesuai dengan lingkungan jaringan Anda — penggunaan endpoint yang salah akan menyebabkan koneksi gagal.
PortYaPort instans Hologres. Ditemukan di bagian Network Information yang sama.
database_nameYaNama database Hologres. Setelah instans dibuat, sistem secara otomatis membuat database postgres. Database postgres memiliki resource terbatas; untuk beban kerja bisnis, buat database khusus sebagai gantinya. Contoh: demo.
warehouse_nameTidakVirtual warehouse yang akan digunakan untuk koneksi ini. Jika diabaikan, koneksi akan menggunakan virtual warehouse default Anda. Untuk beralih warehouse setelah terhubung, gunakan SET current_warehouse.

Contoh

Tanpa virtual warehouse — terhubung ke database demo menggunakan virtual warehouse default:

jdbc:postgresql://hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80/demo

Dengan virtual warehouse — terhubung ke database demo menggunakan warehouse_1:

jdbc:postgresql://hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80/demo@warehouse_1

Prioritas rute virtual warehouse

Ketika string koneksi tidak secara eksplisit menentukan virtual warehouse, Hologres menyelesaikan virtual warehouse untuk koneksi tersebut dengan urutan prioritas berikut:

  1. Virtual warehouse yang ditentukan dalam string koneksi, seperti yang ditunjukkan dalam contoh sebelumnya.

  2. Virtual warehouse default pengguna Anda, jika Anda telah menetapkannya dengan memanggil hg_set_user_default_warehouse.

  3. Virtual warehouse default instans, init_warehouse, yang hanya digunakan jika kedua opsi di atas tidak ditetapkan.

Untuk memeriksa virtual warehouse mana yang sebenarnya digunakan oleh koneksi saat ini, jalankan:

SELECT current_warehouse();

Perutean otomatis untuk permintaan tulis (DML)

Parameter Grand Unified Configuration (GUC) hg_experimental_enable_warehouse_dml_auto_routing mengontrol bagaimana permintaan tulis (DML) dirutekan lintas virtual warehouse. Parameter ini diatur ke on secara default. Untuk mengonfirmasi nilai saat ini, jalankan SHOW hg_experimental_enable_warehouse_dml_auto_routing;. Saat parameter ini bernilai on, permintaan tulis secara otomatis dirutekan ke virtual warehouse leader untuk dieksekusi, sehingga penulisan berhasil meskipun koneksi Anda menggunakan virtual warehouse non-leader.

Jika Anda mengubah parameter ini menjadi off, permintaan tulis yang dikeluarkan pada virtual warehouse non-leader akan ditolak. Permintaan tulis yang dikeluarkan langsung pada virtual warehouse leader tidak terpengaruh dan tetap berhasil.

Menghubungkan menggunakan psql

Format string koneksi

Tanpa virtual warehouse (menggunakan virtual warehouse default Anda):

PGUSER="<AccessKey_ID>" PGPASSWORD="<AccessKey_Secret>" psql -h <Endpoint> -p <Port> -d <database_name>

Dengan virtual warehouse:

PGUSER="<AccessKey_ID>" PGPASSWORD="<AccessKey_Secret>" psql -h <Endpoint> -p <Port> -d <database_name>@<warehouse_name>
Catatan

Flag -d menerima <database_name>@<warehouse_name> sebagai satu nilai. Bagian @<warehouse_name> bukanlah flag terpisah — bagian ini ditambahkan langsung ke nama database.

Parameter

ParameterWajibDeskripsi
AccessKey_IDYaAkun Alibaba Cloud: AccessKey ID Anda. Dapatkan dari Manajemen AccessKey. Akun kustom: Nama pengguna Anda, misalnya BASIC$abc.
AccessKey_SecretYaAkun Alibaba Cloud: AccessKey secret Anda. Akun kustom: Kata sandi Anda.
EndpointYaEndpoint instans Hologres. Ditemukan pada halaman Instance Details di konsol Hologres.
PortYaPort instans Hologres. Ditemukan pada halaman Instance Details yang sama.
database_nameYaNama database Hologres. Setelah instans dibuat, sistem secara otomatis membuat database postgres. Database postgres memiliki resource terbatas; untuk beban kerja bisnis, buat database khusus sebagai gantinya. Contoh: demo.
warehouse_nameTidakVirtual warehouse yang akan digunakan untuk koneksi ini. Ditambahkan ke database_name sebagai <database_name>@<warehouse_name>. Jika diabaikan, koneksi akan menggunakan virtual warehouse default Anda.

Contoh

Baris perintah — tanpa virtual warehouse:

PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com -p 80 -d demo

Baris perintah — dengan virtual warehouse:

PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com -p 80 -d demo@warehouse_1

Beralih virtual warehouse menggunakan SQL

Tersedia di Hologres V4.0 dan versi lebih baru.

Gunakan SET current_warehouse untuk beralih virtual warehouse untuk koneksi saat ini tanpa perlu menyambung ulang. Untuk memeriksa warehouse aktif kapan saja, jalankan SHOW current_warehouse.

Penggunaan dasar:

-- Beralih ke virtual warehouse lain.
SET current_warehouse = <warehouse_name>;

-- Verifikasi virtual warehouse aktif.
SHOW current_warehouse;

Beralih dan pulihkan — jika Anda perlu sementara menggunakan warehouse lain lalu kembali ke warehouse asli:

-- Catat warehouse saat ini.
SHOW current_warehouse;

-- Beralih ke warehouse lain.
SET current_warehouse = warehouse_2;

-- Verifikasi peralihan.
SHOW current_warehouse;

-- Pulihkan warehouse asli setelah selesai.
SET current_warehouse = <original_warehouse_name>;

Catatan penggunaan

  • Peralihan warehouse mempertahankan semua status sesi, termasuk variabel Grand Unified Configuration (GUC) dan prepared statement.

  • Pengaturan ini hanya berlaku pada tingkat sesi. Upaya untuk menetapkannya pada tingkat database atau pengguna akan mengembalikan error: This can only be set at session level.

  • Pengguna saat ini harus memiliki izin pada virtual warehouse target. Tanpa izin yang diperlukan, perintah akan mengembalikan: Permission denied for warehouse "xxx".

  • Peralihan tidak didukung untuk koneksi yang memiliki tabel sementara (TEMP TABLE) aktif.