ALTER DYNAMIC TABLE

更新时间: 2024-09-18 21:02:04

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>;
上一篇: CREATE DYNAMIC TABLE 下一篇: DROP DYNAMIC TABLE
阿里云首页 实时数仓 Hologres 相关技术圈