全部產品
Search
文件中心

Hologres:REFRESH DYNAMIC TABLE

更新時間:Sep 03, 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後,會清空分區狀態,並重新重新整理指定的分區資料。