Topik ini menjelaskan cara memberikan izin akses data ke virtual warehouse di Hologres.
Catatan penggunaan
-
Saat Anda membuat Table Group menggunakan virtual warehouse A, virtual warehouse tersebut menjadi virtual warehouse pemimpin (leader) default untuk Table Group tersebut.
-
Status memori disinkronkan di seluruh virtual warehouse dengan latensi tingkat milidetik. Saat Anda menulis data ke virtual warehouse pemimpin, sistem menyinkronkan data dalam memori ke virtual warehouse pengikut (follower). Proses ini mengonsumsi sejumlah kecil sumber daya CPU dan memori pada virtual warehouse pengikut. Kami menyarankan agar perbedaan spesifikasi antar virtual warehouse dalam satu instance tidak melebihi rasio 4×.
-
Hanya virtual warehouse default dari suatu instans yang dapat menulis ke tabel eksternal (foreign tables).
-
Di Hologres V2.0, virtual warehouse mendukung tugas baca dan tulis sebagai berikut:
-
Virtual warehouse pengikut (follower virtual warehouse)—yaitu warehouse yang telah memuat Table Group—hanya dapat melakukan tugas baca pada tabel dalam Table Group tersebut. Tugas tulis tidak didukung.
-
Virtual warehouse pemimpin (leader virtual warehouse)—yaitu warehouse yang ditetapkan sebagai pemimpin untuk suatu Table Group—dapat melakukan tugas baca dan tulis pada tabel dalam Table Group tersebut.
-
Virtual warehouse yang belum memuat Table Group tidak dapat membaca atau menulis ke Table Group tersebut.
-
-
Hologres V4.0 meningkatkan arsitektur instans untuk virtual warehouse. Dukungan terhadap tugas baca dan tulis adalah sebagai berikut:
-
Anda harus mengaktifkan parameter GUC
hg_warehouse_enable_use_local_resource. Untuk informasi lebih lanjut, lihat Parameter GUC. -
Untuk tugas baca dan tulis yang tidak dioptimalkan oleh Fixed Plan, Anda dapat mengeksekusinya tanpa memuat Table Group ke dalam virtual warehouse.
-
Untuk mengetahui tugas baca dan tulis mana saja yang dapat dioptimalkan oleh Fixed Plan, lihat Percepat eksekusi SQL dengan Fixed Plan.
-
Semua tugas tulis, termasuk tulis real-time dan tulis batch, tetap dapat diarahkan ke virtual warehouse pemimpin untuk dieksekusi menggunakan fitur DML auto-routing.
-
|
Jenis Tugas/Jenis Gudang Virtual |
Leader virtual warehouse |
Virtual warehouse pengikut |
Virtual warehouse lainnya |
|
tulis real-time |
Didukung |
Tidak didukung |
Tidak didukung |
|
tulis batch |
Didukung |
Didukung |
Didukung |
|
Kueri titik Key/Value dan Prefixscan |
Didukung |
Didukung |
Tidak didukung |
|
Tugas baca lainnya |
Didukung |
Didukung |
Didukung |
Lihat izin akses Table Group
-
Sintaksis
Untuk melihat informasi izin Table Group untuk semua virtual warehouse dalam instans saat ini, jalankan pernyataan SQL berikut.
SELECT * FROM hologres.hg_warehouse_table_groups; -
Parameter
Tabel berikut menjelaskan kolom-kolom dalam tabel hg_warehouse_table_groups.
Parameter
Tipe
Deskripsi
Contoh
warehouse_name
TEXT
Nama Virtual Warehouse.
init_warehouse
warehouse_id
INTEGER
ID unik virtual warehouse.
1
database_name
TEXT
Nama database.
wh_demo
tablegroup_name
TEXT
Nama Table Group.
wh_demo_tg_default
leader
BOOLEAN
Menunjukkan apakah virtual warehouse tersebut merupakan virtual warehouse pemimpin untuk Table Group.
t
replica_count
INTEGER
Jumlah replika.
1
Memuat kelompok tabel ke dalam gudang virtual
Memuat Table Group ke dalam virtual warehouse menjadikannya virtual warehouse pengikut untuk Table Group tersebut.
-
Setelah virtual warehouse memuat Table Group, Anda dapat menggunakan virtual warehouse tersebut untuk mengoperasikan tabel dalam Table Group.
-
Memuat Table Group ke dalam virtual warehouse memerlukan izin Superuser untuk instans tersebut.
-
Sintaksis:
CALL hg_table_group_load_to_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>', <replica_count>); -
Parameter:
Parameter
Tipe
Deskripsi
database_name
TEXT
Nama database.
table_group_name
TEXT
Nama Table Group.
warehouse_name
TEXT
Nama virtual warehouse tempat Table Group dimuat.
replica_count
INTEGER
Jumlah replika. Parameter ini opsional. Nilai default: 1.
-
Contoh:
-- Muat table_group_1 di database db1 ke virtual warehouse warehouse_1 dengan satu replika. CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1'); -- Muat table_group_1 di database db1 ke virtual warehouse warehouse_1 dengan dua replika. CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1',2);
Tetapkan gudang virtual pemimpin
-
Catatan penggunaan
-
Hanya virtual warehouse pemimpin yang dapat melakukan operasi DML, seperti menulis data, pada tabel dalam Table Group.
-
Table Group hanya dapat memiliki satu virtual warehouse pemimpin. Mengganti pemimpin menyebabkan restart, jadi pertimbangkan dampak bisnisnya.
-
Menetapkan virtual warehouse pemimpin untuk Table Group memerlukan izin Superuser untuk instans tersebut.
-
-
Sintaksis
CALL hg_table_group_set_leader_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>'); -
Parameter
Parameter
Tipe
Deskripsi
database_name
TEXT
Nama database.
table_group_name
TEXT
Nama Table Group.
warehouse_name
TEXT
Nama virtual warehouse yang akan ditetapkan sebagai pemimpin.
Bongkar kelompok tabel
-
Catatan penggunaan
-
Melepas Table Group dari virtual warehouse memerlukan izin Superuser untuk instans tersebut.
-
Anda tidak dapat melepas Table Group dari virtual warehouse pemimpinnya. Anda harus mengganti pemimpin terlebih dahulu.
-
-
Sintaksis
CALL hg_table_group_unload_from_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>'); -
Parameter
Parameter
Tipe
Deskripsi
database_name
TEXT
Nama database.
table_group_name
TEXT
Nama Table Group.
warehouse_name
TEXT
Nama virtual warehouse tempat Table Group dilepaskan.
Ubah jumlah replika
-
Catatan: Mengubah jumlah replika untuk Table Group yang dimuat dalam virtual warehouse memerlukan izin Superuser untuk instans tersebut.
-
Sintaksis
CALL hg_table_group_set_warehouse_replica_count ('<database_name>.<table_group_name>', <replica_count>,'<warehouse_name>'); -
Parameter
Parameter
Tipe
Deskripsi
database_name
TEXT
Nama database.
table_group_name
TEXT
Nama Table Group.
replica_count
INTEGER
Jumlah replika.
warehouse_name
TEXT
Nama virtual warehouse tempat jumlah replika akan diubah.
DML auto-routing untuk virtual warehouse (Beta)
-
Catatan penggunaan
Table Group hanya memiliki satu virtual warehouse pemimpin, yang merupakan satu-satunya warehouse yang dapat melakukan operasi DML padanya. Mulai Hologres V2.2, Anda dapat secara otomatis mengarahkan operasi DML ke virtual warehouse pemimpin Table Group. Setelah fitur ini diaktifkan, tugas tulis secara otomatis menggunakan sumber daya virtual warehouse pemimpin untuk eksekusi, tetapi metrik tugas tulis, seperti QPS, tetap dicatat pada virtual warehouse pengikut.
CatatanSetelah Anda mengaktifkan fitur transaksi campuran multi-DML, Anda tidak dapat menggunakan fitur DML auto-routing untuk virtual warehouse. Untuk informasi lebih lanjut tentang fitur transaksi campuran multi-DML, lihat Kemampuan transaksi SQL.
-
Aktifkan atau nonaktifkan DML auto-routing
Anda dapat menggunakan parameter GUC berikut untuk mengaktifkan atau menonaktifkan DML auto-routing untuk virtual warehouse di tingkat session atau database.
CatatanParameter GUC untuk DML auto-routing untuk virtual warehouse,
hg_experimental_enable_warehouse_dml_auto_routing, diaktifkan secara default.-
Tingkat session
-- Aktifkan DML auto-routing untuk virtual warehouse. SET hg_experimental_enable_warehouse_dml_auto_routing = ON; -- Nonaktifkan DML auto-routing untuk virtual warehouse. SET hg_experimental_enable_warehouse_dml_auto_routing = OFF; -
Tingkat database
-- Aktifkan DML auto-routing untuk virtual warehouse. ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = ON; -- Nonaktifkan DML auto-routing untuk virtual warehouse. ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;Parameter
Parameter
Tipe
Deskripsi
database_name
TEXT
Nama database.
-
-
Contoh
-
Buka halaman pengembangan HoloWeb. Untuk informasi lebih lanjut, lihat Terhubung ke HoloWeb dan jalankan kueri.
-
Pada bilah menu atas halaman HoloWeb, klik Security Center.
-
Pada panel navigasi kiri halaman Security Center, klik Virtual Warehouse Management.
-
Pada tab Virtual Warehouse Resource Management, klik Create Virtual Warehouse untuk membuat virtual warehouse bernama
read_wh1.CatatanSatu instans dapat memiliki maksimal 10 virtual warehouse. Sumber daya untuk setiap virtual warehouse harus minimal 32 CU dan maksimal 512 CU. Jika Anda memiliki kurang dari 32 CU sumber daya komputasi yang belum dialokasikan, Anda tidak dapat membuat virtual warehouse baru. Untuk menambah kapasitas, lihat Scale up a virtual warehouse.
Setelah virtual warehouse dibuat, tab Virtual Warehouse Resource Management menampilkan virtual warehouse read_wh1 dengan status Running. Anda dapat melakukan operasi seperti Scale, Restart, dan Stop.
-
Pada tab Management on Permissions of Virtual Warehouses on Table Groups, klik Grant Permissions to Virtual Warehouse untuk menetapkan virtual warehouse
read_wh1sebagai virtual warehouse pengikut untuk Table Group target.CatatanUntuk membuat Table Group, lihat Manage Table Groups.
Setelah izin diberikan, daftar menunjukkan init_warehouse sebagai virtual warehouse pemimpin. Pada kolom Actions untuk read_wh1, opsi Set as Leader dan Revoke Permissions ditampilkan.
-
Pada SQL Editor, atur virtual warehouse saat ini ke
read_wh1dan jalankan pernyataan DML saat DML auto-routing untuk virtual warehouse diaktifkan dan dinonaktifkan.-
Saat DML auto-routing untuk virtual warehouse diaktifkan, pernyataan DML secara otomatis diarahkan ke virtual warehouse pemimpin Table Group, yaitu init_warehouse, untuk dieksekusi.
Alihkan virtual warehouse saat ini ke read_wh1, jalankan
SET hg_experimental_enable_warehouse_dml_auto_routing = ON;untuk mengaktifkan DML auto-routing, lalu jalankan pernyataan INSERT untuk menulis data. Pernyataan berhasil dijalankan (99 baris, sekitar 53 ms), yang mengonfirmasi bahwa operasi DML secara otomatis diarahkan ke virtual warehouse pemimpin untuk dieksekusi. -
Dengan DML auto-routing dinonaktifkan, pernyataan DML tidak diarahkan ke pemimpin, init_warehouse. Sebaliknya, virtual warehouse saat ini, read_wh1, mencoba mengeksekusinya. Hal ini gagal dengan error karena hanya virtual warehouse pemimpin yang dapat melakukan operasi DML pada Table Group.
Perintah untuk menonaktifkan DML auto-routing adalah
SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;. Pesan error berikut dikembalikan:ERROR: Dispatch query failed: internal error: Failed to get available shards for query. Pesan HINT menyarankan untuk memeriksa apakah Table Group (misalnya, demo.demo_tg_default) merupakan pemimpin di virtual warehouse saat ini.
-
-