Topik ini menjelaskan resource refresh untuk tabel dinamis Hologres.
Sintaks
Di Hologres, Anda dapat menentukan resource refresh untuk tabel dinamis menggunakan parameter computing_resource. Sintaks pengaturan parameter ini berbeda tergantung pada versi Hologres.
Deskripsi parameter
Parameter | Wajib | Deskripsi | Contoh |
computing_resource | Tidak | Jenis resource untuk merefresh Tabel Dinamis:
| Atur jenis resource ke serverless: |
Sintaks SQL
Sintaks SQL untuk mengatur resource refresh tabel dinamis yang dijelaskan di sini berlaku untuk Hologres V4.0.7 dan versi yang lebih baru. Untuk sintaks pada versi V4.0.1 hingga V4.0.6, V3.2, V3.1, dan V3.0, lihat Auto-refresh resources.
Sintaks SQL berikut mengatur resource refresh saat membuat tabel:
-- Sintaks dalam contoh ini berlaku untuk Hologres V4.0.7 dan yang lebih baru.
-- Tentukan resource refresh saat membuat tabel.
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
-- Properti tabel dinamis.
freshness = '<num> {minutes | hours}', -- Wajib.
[computing_resource = {'local' | 'serverless' | '<warehouse_name>'},] -- Opsional.
)
AS
<query>; -- Definisi kueri.Sintaks SQL berikut mengatur resource refresh saat melakukan refresh manual pada tabel:
-- Sintaks dalam contoh ini berlaku untuk Hologres V4.0.7 dan yang lebih baru.
-- Tentukan resource refresh selama refresh manual.
refresh dynamic table [<schema_name>.]<table_name> with(computing_resource='local' | 'serverless' | '<warehouse_name>',]);Catatan
Jika Anda menetapkan computing_resource ke warehouse_name saat membuat tabel dinamis, lalu menghapus instans compute group, operasi refresh akan gagal.
Jika Anda menetapkan computing_resource ke warehouse_name saat membuat tabel dinamis, lalu mengganti nama warehouse tersebut, operasi refresh tetap berjalan normal. Nama warehouse baru akan muncul dalam Data Definition Language (DDL).
Jika Anda menetapkan computing_resource ke serverless, tetapi definisi kueri tabel dinamis tidak memenuhi kondisi eksekusi Serverless, perilaku berikut terjadi:
Refresh otomatis fallback menggunakan resource local.
Untuk instans compute group, resource local merujuk pada warehouse leader dari kelompok tabel (TG) tempat tabel dinamis berada. Untuk tabel dinamis eksternal, resource local merujuk pada warehouse default instans tersebut.
Untuk instans non-compute group, resource local merujuk pada resource yang dicadangkan oleh instans tersebut.
Saat melihat DDL menggunakan hg_dump_script, nilai computing_resource tetap serverless. Jika kueri memenuhi kondisi eksekusi serverless, operasi refresh akan menggunakan resource serverless. Untuk mengetahui resource yang digunakan setiap refresh, periksa log kueri lambat.
Metode resource refresh
Hologres menyediakan dua metode untuk merefresh resource tabel dinamis: auto-refresh dan refresh manual. Perilaku default untuk metode ini berbeda tergantung versinya.
Resource auto-refresh
Bagian berikut menjelaskan sintaks dan perilaku default untuk mengatur resource refresh saat membuat tabel pada berbagai versi.
V4.0.7 dan yang lebih baru
Sintaks SQL adalah sebagai berikut:
-- Tentukan resource refresh saat membuat tabel.
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
-- Properti tabel dinamis.
freshness = '<num> {minutes | hours}', -- Wajib.
[computing_resource = {'local' | 'serverless' | '<warehouse_name>'},] -- Opsional.
)
AS
<query>; -- Definisi kueri.Perilaku default untuk resource refresh adalah sebagai berikut:
Kelas tabel | Pola refresh | Resource refresh | |
Instans non-compute group | Instans compute group | ||
Dynamic Table | Incremental refresh & full refresh |
|
|
External Dynamic Table | Incremental refresh & full refresh |
|
|
V4.0.1 hingga V4.0.6
Sintaks SQL adalah sebagai berikut:
-- Tentukan resource refresh saat membuat tabel.
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
-- Properti tabel dinamis.
freshness = '<num> {minutes | hours}', -- Wajib.
[computing_resource = {'local' | 'serverless' },] -- Opsional.
)
AS
<query>; -- Definisi kueri.Perilaku default untuk resource refresh adalah sebagai berikut:
Kelas tabel | Pola refresh | Resource refresh | |
Instans non-compute group | Instans compute group | ||
Dynamic Table | Incremental refresh & full refresh |
|
|
External Dynamic Table | Incremental refresh & full refresh |
|
|
V3.1 hingga V3.2
Sintaks SQL adalah sebagai berikut:
-- Tentukan resource refresh saat membuat tabel.
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
-- Properti tabel dinamis.
freshness = '<num> {minutes | hours}', -- Wajib.
[computing_resource = {'local' | 'serverless' },] -- Opsional.
)
AS
<query>; -- Definisi kueri.Perilaku default untuk resource refresh adalah sebagai berikut:
Kelas tabel | Pola refresh | Resource refresh | |
Instans non-compute group | Instans compute group | ||
Dynamic Table | Incremental refresh & full refresh |
|
|
V3.0
Sintaks SQL adalah sebagai berikut:
CREATE DYNAMIC TABLE [IF NOT EXISTS] <schema.tablename>(
[col_name],
[col_name]
) [PARTITION BY LIST (col_name)]
WITH (
[refresh_mode='[full|incremental]',]
[incremental_auto_refresh_schd_start_time='[immediate|<timestamptz>]',]
[incremental_auto_refresh_interval='[<num> {minute|minutes|hour|hours]',]
[incremental_guc_hg_computing_resource='[ local | serverless]',]
[full_guc_hg_computing_resource='[ local | serverless]',]
)
AS
<query> --Definisi kueriPerilaku default untuk resource refresh adalah sebagai berikut:
Kelas tabel | Pola refresh | Segarkan sumber daya | |
Instans non-compute group | Instans compute group | ||
Dynamic Table | Incremental refresh & full refresh |
|
|
Resource refresh manual
Bagian berikut menjelaskan sintaks dan perilaku default untuk refresh resource manual pada berbagai versi.
V4.0.7 dan yang lebih baru
Sintaks SQL adalah sebagai berikut:
--Tentukan resource refresh selama refresh manual.
refresh dynamic table [<schema_name>.]<table_name> with(computing_resource='local' | 'serverless' | '<warehouse_name>',]);Saat melakukan refresh manual tanpa secara eksplisit menyetel parameter computing_resource, operasi refresh menggunakan nilai computing_resource dari DDL tabel secara default.
Jika Anda melakukan refresh manual dan secara eksplisit menyetel parameter computing_resource, operasi tersebut menggunakan nilai tersebut, meskipun berbeda dari nilai computing_resource dalam DDL tabel.
Untuk instans berbasis compute group, Anda dapat menyetel salah satu dari tiga nilai:
local | serverless | warehouse_name, di mana local menentukan warehouse untuk koneksi saat ini.Untuk instans non-kelompok komputasi, hanya dua nilai yang diizinkan:
local | serverless, dengan `local` menunjukkan sumber daya instans saat ini.
V4.0.1 hingga V4.0.6
Sintaks SQL adalah sebagai berikut:
refresh dynamic table [<schema_name>.]<table_name> with([computing_resource='local' | 'serverless' ,]);Untuk instans compute group, Anda dapat menyetel parameter ke local atau serverless. Resource local merujuk pada warehouse leader dari TG tabel dasar dan warehouse leader dari TG tabel dinamis. Beberapa warehouse mungkin digunakan.
Untuk instans non-compute group, Anda hanya dapat menyetel parameter ke local atau serverless. local merujuk pada resource dari instans saat ini.
V3.1 hingga V3.2
Sintaks SQL adalah sebagai berikut:
refresh dynamic table [<schema_name>.]<table_name> with([computing_resource='local' | 'serverless' ,]);Untuk instans compute group, Anda dapat menyetel parameter ke local atau serverless. Resource local merujuk pada warehouse leader dari TG tabel dasar dan warehouse leader dari TG tabel dinamis. Beberapa warehouse mungkin digunakan.
Untuk instans non-compute group, Anda hanya dapat menyetel parameter ke local atau serverless. local merujuk pada resource dari instans saat ini.
V3.0
Sintaks SQL adalah sebagai berikut:
refresh dynamic table [<schema_name>.]<table_name> with(
[incremental_guc_hg_computing_resource='[ local | serverless]',]
[full_guc_hg_computing_resource='[ local | serverless]',]);Untuk instans compute group, Anda dapat menyetel parameter ke local atau serverless. Resource local merujuk pada warehouse leader dari TG tabel dinamis.
Untuk instans non-compute group, Anda hanya dapat menyetel parameter ke local atau serverless. local merujuk pada resource dari instans saat ini.
Catatan peningkatan
Tabel berikut menjelaskan bagaimana peningkatan instans Hologres memengaruhi tabel dinamis dalam skenario auto-refresh dan refresh manual. Perubahan mencakup resource refresh default, misalnya dari Local ke Serverless, serta aturan untuk menentukan resource. Perbedaan utama terletak pada perilaku tabel yang dibuat menggunakan sintaks baru versus lama. Gunakan tabel ini untuk memahami dampak potensial dari peningkatan dan memastikan transisi bisnis yang lancar.
Penyegaran otomatis peningkatan sumber daya
Versi sumber
Versi target
Jenis tabel
Refresh Mode
Resource refresh
Instans tanpa compute group
Instans dengan compute group
3.0
3.1
3.2
4.0.1-4.0.6
Dynamic Table
Incremental & full refresh
Tabel baru (menggunakan sintaks baru):
Resource default berubah dari Local ke Serverless.
Anda dapat menyetel resource refresh ke Local.
Tabel lama (sintaks 3.0):
Resource default tetap Local.
Anda dapat mengubah resource refresh ke Serverless.
Tabel baru (menggunakan sintaks baru):
Resource default berubah dari Local ke Serverless.
Anda dapat menyetel resource refresh ke Local. Refresh kemudian dieksekusi oleh warehouse leader dari kelompok tabel (TG) untuk tabel dasar dan warehouse leader dari TG untuk tabel dinamis. Proses ini mungkin melibatkan beberapa warehouse.
Tabel lama (menggunakan sintaks lama 3.0):
Resource default tetap Local. Secara default, refresh dieksekusi oleh warehouse leader dari TG tabel dinamis. Menentukan warehouse_name tidak didukung.
Anda dapat mengubah resource refresh ke Serverless.
Setelah sintaks tabel lama diperbarui ke sintaks baru, jika Anda menggunakan resource local, warehouse yang mengeksekusi berubah. Perubahan tersebut dari warehouse leader dari TG tabel dinamis menjadi warehouse leader dari TG tabel dasar dan warehouse leader dari TG tabel dinamis. Proses ini mungkin melibatkan beberapa warehouse.
3.0
4.0.7 dan yang lebih baru
Dynamic Table
Incremental & full refresh
Tabel baru (menggunakan sintaks baru):
Resource default berubah dari Local ke Serverless.
Anda dapat menyetel resource refresh ke Local.
Tabel lama (menggunakan sintaks V3.0):
Resource default tetap Local.
Anda dapat mengubah resource refresh ke Serverless.
Tabel baru (menggunakan sintaks baru):
Resource default berubah dari Local ke Serverless.
Anda dapat menentukan warehouse_name untuk mengeksekusi refresh.
Jika Anda menyetel resource refresh ke Local tetapi tidak secara eksplisit menentukan warehouse_name, sistem menggunakan warehouse yang terhubung saat Tabel Dinamis dibuat untuk mengeksekusi refresh secara default.
Tabel lama (menggunakan sintaks lama 3.0):
Resource default tetap Local. Secara default, refresh dieksekusi oleh warehouse leader dari TG tabel dinamis. Menentukan warehouse_name tidak didukung.
Anda dapat mengubah resource refresh ke Serverless.
Setelah sintaks tabel lama diperbarui ke sintaks baru, jika Anda menggunakan resource local, warehouse yang mengeksekusi tetap warehouse leader dari TG Tabel Dinamis.
3.1
3.2
4.0.1-4.0.6
4.0.7 dan yang lebih baru
Dynamic Table
Incremental & full refresh
Tabel baru (menggunakan sintaks baru):
Resource default tetap Serverless.
Anda dapat menyetel resource refresh ke Local.
Tabel yang menggunakan sintaks lama 3.0:
Resource default tetap Local.
Anda dapat mengubah resource refresh ke Serverless.
Tabel baru (menggunakan sintaks baru):
Resource default tetap Serverless.
Anda dapat menentukan warehouse_name untuk mengeksekusi refresh.
Jika Anda menyetel resource refresh ke Local tetapi tidak secara eksplisit menentukan warehouse_name, sistem menggunakan warehouse yang sedang terhubung untuk mengeksekusi refresh secara default.
Tabel yang menggunakan sintaks lama 3.0:
Resource default tetap Local. Secara default, refresh dieksekusi oleh warehouse leader dari TG Tabel Dinamis. Menentukan warehouse_name tidak didukung.
Anda dapat mengubah resource refresh ke Serverless.
Setelah sintaks tabel lama diperbarui ke sintaks baru, jika Anda menggunakan resource local, warehouse yang mengeksekusi berubah dari warehouse leader dari TG tabel dasar dan warehouse leader dari TG Tabel Dinamis menjadi warehouse leader dari TG Tabel Dinamis.
4.0.1-4.0.6
4.0.7 dan yang lebih baru
External Dynamic Table
Incremental & full refresh
Tabel baru (menggunakan sintaks baru):
Resource default adalah Serverless.
Anda dapat menyetel resource refresh ke Local.
Tabel baru (menggunakan sintaks baru):
Resource default tetap Serverless.
Anda dapat menentukan warehouse_name untuk mengeksekusi refresh.
Jika Anda menyetel resource refresh ke Local tetapi tidak secara eksplisit menentukan warehouse_name, sistem menggunakan warehouse yang sedang terhubung untuk mengeksekusi refresh secara default.
Tabel lama (dibuat pada versi 4.0.1-4.0.6):
Resource default tetap Serverless.
Jika Anda menyetel resource refresh ke local, sistem menggunakan Default Warehouse instans secara default.
Peningkatan resource refresh manual
Versi sumber
Versi target
Jenis tabel
Refresh mode
Resource refresh
Instans tanpa compute group
Instans dengan compute group
3.0
3.1
3.2
4.0.1-4.0.6
Dynamic Table
Incremental & full refresh
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam Data Definition Language (DDL) tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless atau local.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless atau local.
Untuk tabel yang dibuat dengan sintaks baru: Resource Local berubah dari warehouse leader dari TG Tabel Dinamis menjadi warehouse leader dari TG tabel dasar dan warehouse leader dari TG Tabel Dinamis. Proses ini mungkin melibatkan beberapa warehouse.
Untuk tabel yang masih menggunakan sintaks lama (sintaks V3.0): Resource Local merepresentasikan warehouse leader dari TG Tabel Dinamis.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
3.0
4.0.7 dan yang lebih baru
Dynamic Table
Incremental & full refresh
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless atau local.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless, local, atau warehouse_name.
Untuk tabel yang dibuat dengan sintaks baru: Resource Local berubah dari warehouse leader dari TG Tabel Dinamis menjadi warehouse yang sedang terhubung.
Untuk tabel yang masih menggunakan sintaks lama (sintaks V3.0): Resource Local merepresentasikan warehouse leader dari TG Tabel Dinamis.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
3.1
3.2
4.0.1-4.0.6
4.0.7 dan yang lebih baru
Dynamic Table
Incremental & full refresh
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless atau local.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless, local, atau warehouse_name.
Untuk tabel yang dibuat dengan sintaks baru: Resource Local berubah dari warehouse leader dari TG tabel dasar dan warehouse leader dari TG Tabel Dinamis menjadi warehouse yang sedang terhubung.
Untuk tabel yang masih menggunakan sintaks lama (sintaks V3.0): Resource Local merepresentasikan warehouse leader dari TG Tabel Dinamis.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
4.0.1-4.0.6
4.0.7 dan yang lebih baru
External Dynamic Table
Incremental & full refresh
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Anda dapat secara eksplisit menentukan resource refresh sebagai serverless atau local.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.
Jika tidak ada resource refresh yang ditentukan, resource yang ditetapkan dalam DDL tabel digunakan secara default.
Tentukan secara eksplisit resource refresh sebagai serverless, local, atau warehouse_name.
Resource Local merepresentasikan warehouse yang sedang terhubung.
Resource refresh yang ditentukan secara eksplisit memiliki prioritas lebih tinggi.