全部產品
Search
文件中心

Hologres:ALTER DYNAMIC TABLE

更新時間:Sep 19, 2024

Dynamic Table支援修改部分屬性。本文為您介紹Alter Dynamic Table用法。

修改重新整理任務

暫停重新整理任務

設定暫停後,此表後續所有的重新整理任務都會停止運行。

-- auto_refresh_enable:是否開啟自動重新整理。false:暫停不開啟。
ALTER [DYNAMIC] TABLE [IF EXISTS] [<schema_name>.]<table_name> SET (auto_refresh_enable = false);

重新啟動重新整理任務

對於已暫停表重新整理任務,支援重新啟動。啟動後,將沿用原有的表重新整理設定,重新執行重新整理任務。

-- auto_refresh_enable:是否開啟自動重新整理。true:開啟。
ALTER [DYNAMIC] TABLE [IF EXISTS] [<schema_name>.]<table_name> SET (auto_refresh_enable = true);

修改重新整理模式

當前僅支援增量重新整理修改為全量重新整理。

說明
  • 修改為全量重新整理模式後,會將原有的增量重新整理任務停止。請根據業務需要,重新設定重新整理開始時間和重新整理間隔。

  • 系統會自動將增量重新整理的狀態表清理掉,減少儲存佔用。

--修改重新整理模式refresh_mode,只能增量(incremental)重新整理改為全量(full)重新整理。
ALTER [DYNAMIC] TABLE <schema_name>.<table_name> SET (refresh_mode = 'full');

修改重新整理開始時間

修改重新整理的開始時間,只能修改為一個未來的指定時間。

--修改重新整理的開始時間full_auto_refresh_schd_start_time。
ALTER [DYNAMIC] TABLE [IF EXISTS] [<schema>.]<table_name> SET (<incremental/full>_auto_refresh_schd_start_time = '<timestamptz>');

修改重新整理時間間隔

支援修改Dynamic Table的重新整理時間間隔。修改後的重新整理任務將會使用新設定的重新整理間隔執行。

--修改重新整理的時間間隔full_auto_refresh_interval,如三分鐘為'3 minutes'。
ALTER [DYNAMIC] TABLE [IF EXISTS] [<schema>.]<table_name> SET (<incremental/full>_auto_refresh_interval = '[<num> { minutes | hours}]');

修改重新整理計算資源和規格

支援修改重新整理的計算資源,可以選擇本執行個體資源(local)或者Serverless資源(serverles)。如果是Serverles資源,支援修改計算規格。可以根據業務情況適當的調大/調小重新整理的規格,但執行個體能使用的規格有一定的限制,詳情請參見Serverles Computing使用指南

--修改單個表的refresh資源
ALTER [DYNAMIC] TABLE [ IF EXISTS ] [<schema>.]<table_name> 
SET <incremental/full>_guc_hg_computing_resource ='[local|serverless]'

--如果是serverless模式,還可以修改serverless的計算規格
ALTER DYNAMIC TABLE [ IF EXISTS ] [<schema>.]<table_name> 
SET <incremental/full>_guc_hg_experimental_serverless_computing_required_cores='<num>'

修改Query定義

Dynamic Table支援修改Query定義。

說明
  • 修改Query定義後,只會修改表的Query定義,並不會修改原來的欄位名、欄位屬性等。

  • 請謹慎執行修改Query定義,如果新query的欄位跟原欄位不一致,可能會導致refresh報錯,或者可能會出現資料不一致等問題。

ALTER [DYNAMIC] TABLE [IF EXISTS] [<schema>.]<table_name> SET (task_definition = '<new_query>'); 

修改Dynamic Table表屬性

Dynamic Table支援修改表屬性,但僅支援修改如下屬性,其餘未列出的暫不支援修改。詳情請參見ALTER TABLE

--重命表名
ALTER TABLE [IF EXISTS] <name> RENAME TO <new_name>;

--修改定義
ALTER [DYNAMIC] TABLE [IF EXISTS] <name> SET TASK_DEFINITION = 'select xxx';

--修改dictionary
ALTER [DYNAMIC] TABLE [<schema_name>].<table_name> SET (dictionary_encoding_columns = '[columnName{:[on|off|auto]}[,...]]'); 

--修改bitmap
ALTER [DYNAMIC] TABLE [<schema_name>].<table_name> SET (bitmap_columns = '[columnName{:[on|off]}[,...]]');

--修改TTL
ALTER [DYNAMIC] TABLE [<schema_name>].<table_name> SET (time_to_live_in_seconds = 'num');

--修改schema
ALTER [DYNAMIC] TABLE [IF EXISTS] [<schema>.]<table_name> SET SCHEMA <new_schema>;