ALTER DYNAMIC TABLE

功能概述

对已存在的动态表执行运维管理操作:修改刷新间隔、切换计算集群、暂停/恢复调度、修改注释、重命名列。

这些操作均通过

ALTER DYNAMIC TABLE
ALTER DYNAMIC TABLE
语法完成,不会重置刷新基准,不会触发全量刷新。如果需要修改 SQL 定义(WHERE 条件、JOIN 关系、计算表达式)或增减列,必须使用
CREATE OR REPLACE DYNAMIC TABLE
CREATE OR REPLACE DYNAMIC TABLE
,详见注意事项

语法

修改刷新间隔

ALTER DYNAMIC TABLE <dt_name> REFRESH INTERVAL <n> <time_unit>;

同时修改刷新间隔和计算集群

ALTER DYNAMIC TABLE <dt_name> REFRESH INTERVAL <n> <time_unit> VCLUSTER <vc_name>;

暂停调度

ALTER DYNAMIC TABLE <dt_name> SUSPEND;

恢复调度

ALTER DYNAMIC TABLE <dt_name> RESUME;

修改表注释

ALTER DYNAMIC TABLE <dt_name> SET COMMENT '<comment>';

重命名列

ALTER DYNAMIC TABLE <dt_name> RENAME COLUMN <old_col> TO <new_col>;

修改列注释

ALTER DYNAMIC TABLE <dt_name> CHANGE COLUMN <col_name> COMMENT '<comment>';

设置/删除表属性

-- 设置或修改属性 ALTER DYNAMIC TABLE <dt_name> SET PROPERTIES('<key>'='<value>'); -- 删除属性 ALTER DYNAMIC TABLE <dt_name> UNSET PROPERTIES('<key>');

参数说明

REFRESH INTERVAL <n> <time_unit>
REFRESH INTERVAL <n> <time_unit>

修改自动刷新的触发频率。

<time_unit>
<time_unit>
可以是
SECOND
SECOND
MINUTE
MINUTE
HOUR
HOUR
。直接修改,不需要重建动态表,已有数据和刷新基准保留。

VCLUSTER <vc_name>
VCLUSTER <vc_name>

修改执行刷新任务所使用的计算集群。可以单独与

REFRESH INTERVAL
REFRESH INTERVAL
一起指定,在同一条语句中同时修改间隔和集群。

SUSPEND
SUSPEND

暂停自动调度。暂停后,表中已有数据仍然可以正常查询,但系统不再自动触发刷新,手动执行

REFRESH DYNAMIC TABLE
REFRESH DYNAMIC TABLE
也无效。

RESUME
RESUME

恢复自动调度。恢复后,系统在下一个调度周期自动执行刷新,追赶暂停期间积累的上游变更。

SET COMMENT '<comment>'
SET COMMENT '<comment>'

更新动态表的描述信息。传入空字符串可清除注释。

RENAME COLUMN <old_col> TO <new_col>
RENAME COLUMN <old_col> TO <new_col>

重命名列。只修改列名,不影响 SQL 定义和数据内容。

CHANGE COLUMN <col_name> COMMENT '<comment>'
CHANGE COLUMN <col_name> COMMENT '<comment>'

修改指定列的注释说明。

SET PROPERTIES
SET PROPERTIES
/
UNSET PROPERTIES
UNSET PROPERTIES

设置或删除表级属性键值对。目前为保留参数,供扩展使用。

使用示例

修改刷新间隔

将动态表

sales_dt
sales_dt
的刷新间隔从 10 分钟改为 30 分钟:

ALTER DYNAMIC TABLE sales_dt REFRESH INTERVAL 30 MINUTE;

同时修改刷新间隔和计算集群

将刷新间隔改为 1 小时,并切换到

vc_heavy
vc_heavy
集群执行刷新:

ALTER DYNAMIC TABLE sales_dt REFRESH INTERVAL 1 HOUR VCLUSTER vc_heavy;

暂停和恢复调度

暂停调度(常用于上游数据维护窗口、暂时停止消耗计算资源):

ALTER DYNAMIC TABLE sales_dt SUSPEND;

维护完成后恢复,系统在下一个调度周期自动追赶变更:

ALTER DYNAMIC TABLE sales_dt RESUME;

修改表注释

ALTER DYNAMIC TABLE sales_dt SET COMMENT '订单销售汇总,每30分钟刷新';

重命名列

ALTER DYNAMIC TABLE sales_dt RENAME COLUMN order_amt TO order_amount;

修改列注释

ALTER DYNAMIC TABLE sales_dt CHANGE COLUMN order_amount COMMENT '订单金额(元)';

注意事项

哪些操作用

ALTER DYNAMIC TABLE
ALTER DYNAMIC TABLE

  • 修改刷新间隔
  • 切换计算集群
  • 暂停/恢复调度
  • 修改表注释或列注释
  • 重命名列

以上操作均保留现有数据和增量刷新基准,不会触发全量刷新。

哪些操作必须用

CREATE OR REPLACE DYNAMIC TABLE
CREATE OR REPLACE DYNAMIC TABLE

以下操作涉及 SQL 定义变化,必须用

CREATE OR REPLACE
CREATE OR REPLACE

  • 修改 SQL 逻辑(WHERE 条件、JOIN 关系、计算表达式、聚合方式)
  • 增加列(新列参与计算逻辑)
  • 减少列

SUSPEND 期间的行为

  • 表中已有数据可以正常查询
  • 自动调度停止,不再消耗计算资源
  • 手动执行
    REFRESH DYNAMIC TABLE
    REFRESH DYNAMIC TABLE
    无效,命令会被忽略
  • 上游数据的变更在 SUSPEND 期间积累,RESUME 后由下一次调度统一处理

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询