全部产品
Search
文档中心

实时数仓Hologres:REFRESH DYNAMIC TABLE

更新时间:Sep 02, 2026

Hologres自V3.0版本起,支持通过REFRESH DYNAMIC TABLE命令对Dynamic Table的数据进行手动刷新或自动刷新。

语法介绍

说明

单独执行一次Refresh操作视为手动刷新,若在执行CREATE DYNAMIC TABLE命令时配置了刷新策略,则为自动刷新。

--所有版本都支持的refresh语法
REFRESH  DYNAMIC TABLE [<schema_name>.]<table_name>;

--V3.1版本开始,支持的refresh语法
REFRESH [OVERWRITE] DYNAMIC TABLE [<schema_name>.]<table_name>
[PARTITION (<partition_key> = '<partition_value>') ]
[WITH (
  refresh_mode = '{full|incremental}',
  cascading = {true|false}
)];

参数说明如下。

参数

描述

schema_name

表所在的Schema名称。

table_name

非分区表或分区子表的表名。

OVERWRITE

支持对Dynamic Table使用overwrite的语法。

说明

仅Hologres V3.1及以上版本支持。

PARTITION (<partition_key> = '<partition_value>')

目标表为分区表时的配置。

partition_key为分区键,partition_value为对应的分区值。

WITH (

refresh_mode = '{full|incremental}'

)

支持在刷新时指定刷新模式。

说明

仅Hologres V3.1及以上版本支持。

cascading={true|false}

手动刷新当前Dynamic Table时,是否级联触发其下游Dynamic Table刷新。取值如下:

  • true:默认值。当前表刷新成功后,按照推送模型逐级触发下游Dynamic Table刷新。在A→B→C的链路中,A刷新成功后触发B,B刷新成功后再触发C,A不会直接触发C。

  • false:仅刷新当前Dynamic Table,不触发下游Dynamic Table。

说明
  • 仅Hologres V5.0及以上版本支持。

  • 级联刷新为异步触发。REFRESH DYNAMIC TABLE命令在当前表刷新完成后即返回,不等待下游刷新完成。

  • 仅当存在通过freshness = 'upstream'建立的下游依赖时,该参数才会产生实际效果。级联刷新的详细说明,请参见CREATE DYNAMIC TABLE。

computing_resource={'local' | 'serverless' | 'warehouse_name'}

支持在刷新时指定刷新资源,资源的详细使用见设置Dynamic Table刷新资源。概要如下:

  • Serverless:默认值。

  • local:可选值,使用本实例资源。

  • warehouse_name:如果是计算组实例,支持指定warehouse执行刷新。从V4.0.7版本开始支持该参数。如果没指定,手动执行refresh时默认使用当前连接的warehouse资源;自动刷新时使用建表时连接的warehouse。

  • 如果是分区表,必须带上分区字段,且只能对单分区进行Refresh。

  • 当Dynamic Table处于不同的Refresh mode时,手动执行Refresh相关语法的效果如下:

    命令

    表为增量刷新(incremental)时的行为

    表为全量刷新(full)时的行为

    refresh

    增量刷新

    全量刷新

    refresh overwrite

    重新执行增量刷新,不保留之前的状态

    全量刷新

    refresh with full

    报错

    全量刷新

    refresh with incremental

    增量刷新

    报错

    refresh overwrite with incremental

    重新执行增量刷新,不保留之前的状态

    报错

    refresh overwrite with full

    执行一次全量刷新,并且停止增量刷新。

    全量刷新

使用限制

  • 如果Dynamic Table是普通分区表,仅支持REFRESH DYNAMIC TABLE命令,不支持刷新父表,但可以刷新子表。

  • 当Dynamic Table为逻辑分区表时:

    • 如果手动刷新时指定了refresh_mode,则刷新后,系统会将分区刷新模式转为指定模式,并且不会再对此分区执行自动刷新。

    • 执行OVERWRITE后,会清空分区状态,并重新刷新指定的分区数据。