全部產品
Search
文件中心

Hologres:Dynamic Table重新整理資源

更新時間:Nov 29, 2025

本文將會為您介紹Hologres的Dynamic Table重新整理資源。

文法說明

在Hologres中,Dynamic Table的重新整理資源可以通過computing_resource參數指定,設定該參數時需要根據Hologres版本確定具體的設定文法。

參數說明

參數名稱

是否必填

參數說明

參數樣本

computing_resource

Dynamic Table重新整理資源類型:

  • local:本執行個體資源,當執行個體是通用型執行個體時,Local代表執行個體的資源,與其他Query共用執行個體資源,無Query間的資源隔離能力。當處於業務高峰期時,可能會有資源爭搶等問題發生。

  • serverless:為遠端的全託管Serverless Computing資源集區,無需預留固定規格的計算資源,引擎根據Query情況自動推導重新整理啟動並執行資源,可以實現Query層級的資源隔離和彈性擴縮容,詳見Serverless Computing概述

  • warehouse_name:當執行個體為計算群組型執行個體時,可以指定任意warehouse執行重新整理,實現warehouse層級的資源隔離,詳見計算群組執行個體快速入門

    說明

    僅Hologres V4.0.7及以上版本支援參數值為warehouse_name

設定資源類型為serverless:computing_resource='serverless'

SQL文法

重要

此處設定Dynamic Table重新整理資源SQL文法基於Hologres V4.0.7及以上版本。V4.0.1-4.0.6、V3.2、V3.1和V3.0版本文法參見下文自動重新整理資源

  • 建表時設定重新整理資源的SQL文法如下:

-- 本樣本文法基於Hologres V4.0.7及以上版本
-- 建表時指定重新整理資源
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
  [ (<col_name> [, ...] ) ]
  [LOGICAL PARTITION BY LIST(<partition_key>)]
  WITH (
  -- dynamic table的屬性
  freshness = '<num> {minutes | hours}', -- 必填
  [computing_resource = {'local' | 'serverless' | '<warehouse_name>'},] -- 非必填
  )
  AS
  <query>; -- query的定義
  • 手動重新整理時設定重新整理資源的SQL文法如下:

-- 本樣本文法基於Hologres V4.0.7及以上版本
-- 手動refresh時指定重新整理資源
refresh dynamic table [<schema_name>.]<table_name> with(computing_resource='local' | 'serverless' |  '<warehouse_name>',]);

注意事項

  • 建立Dynamic Table時重新整理資源computing_resource指定了warehouse_name,刪除計算群組型執行個體後,refresh會報錯。

  • 建立Dynamic Table時重新整理資源computing_resource指定了warehouse_name,當warehouse被rename後,refresh仍然會正常執行,DDL中會展示新的warehouse名。

  • 當設定computing_resource為serverless,但Dynamic Table的Query定義中不滿足Serverless運行條件時,行為如下:

    • 會自動退化成local資源執行重新整理。

      • 如果是計算群組執行個體,local資源表示dynamic table 所在TG的leader Warehouse。如果是external dynamic table,則表示執行個體的default warehouse。

      • 如果是非計算群組執行個體,local資源表示本執行個體預留資源。

    • 使用hg_dump_script查看的DDL,computing_resource仍然為serverless,當Query滿足serverless條件時,會再次以serverless資源執行。每次refresh使用的資源請以慢Query 日誌為準。

重新整理資源方式

Hologres的Dynamic Table重新整理資源主要分為自動重新整理和手動重新整理兩種方式,不同版本的重新整理資源方式預設行為有所不同。

自動重新整理資源

建表時設定重新整理資源,不同版本對應的文法及預設行為如下:

V4.0.7及以上版本

SQL文法如下:

-- 建表時指定重新整理資源
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
  [ (<col_name> [, ...] ) ]
  [LOGICAL PARTITION BY LIST(<partition_key>)]
  WITH (
  -- dynamic table的屬性
  freshness = '<num> {minutes | hours}', -- 必填
  [computing_resource = {'local' | 'serverless' | '<warehouse_name>'},] -- 非必填
  )
  AS
  <query>; -- query的定義

重新整理資源預設行為如下:

表類別

重新整理模式

重新整理資源

非計算群組型執行個體

計算群組型執行個體

Dynamic Table

增量重新整理&全量重新整理

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local本執行個體。

  • 預設使用Serverless資源。

  • 支援指定warehouse_name,指定後將會使用該warehouse執行重新整理。

  • 當指定重新整理資源為Local,不顯示指定warehouse_name時,系統預設使用當前串連的warehouse執行重新整理。

External Dynamic Table

增量重新整理&全量重新整理

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local本執行個體。

  • 預設使用Serverless資源。

  • 支援指定warehouse_name,指定後將會使用該warehouse執行重新整理。

  • 當指定重新整理資源為Local,不顯示指定warehouse_name時,系統預設使用當前串連的warehouse執行重新整理。

V4.0.1-4.0.6版本

SQL文法如下:

-- 建表時指定重新整理資源
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
  [ (<col_name> [, ...] ) ]
  [LOGICAL PARTITION BY LIST(<partition_key>)]
  WITH (
  -- dynamic table的屬性
  freshness = '<num> {minutes | hours}', -- 必填
  [computing_resource = {'local' | 'serverless' },] -- 非必填
  )
  AS
  <query>; -- query的定義

重新整理資源預設行為如下:

表類別

重新整理模式

重新整理資源

非計算群組型執行個體

計算群組型執行個體

Dynamic Table

增量重新整理&全量重新整理

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local本執行個體。

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local,執行重新整理時,使用的資源為base表所在TG的Leader Warehouse和Dynamic Table所在TG的Leader Warehouse,可能存在多個warehouse。

  • 不支援指定warehouse_name。

External Dynamic Table

增量重新整理&全量重新整理

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local本執行個體。

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local,執行重新整理時,使用的資源為建立External Dynamic Table時所在DB的Default Table Group的Leader Warehouse。

  • 不支援指定warehouse_name。

V3.1-3.2版本

SQL文法如下:

-- 建表時指定重新整理資源
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
  [ (<col_name> [, ...] ) ]
  [LOGICAL PARTITION BY LIST(<partition_key>)]
  WITH (
  -- dynamic table的屬性
  freshness = '<num> {minutes | hours}', -- 必填
  [computing_resource = {'local' | 'serverless' },] -- 非必填
  )
  AS
  <query>; -- query的定義

重新整理資源預設行為如下:

表類別

重新整理模式

重新整理資源

非計算群組型執行個體

計算群組型執行個體

Dynamic Table

增量重新整理&全量重新整理

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local本執行個體。

  • 預設使用Serverless資源。

  • 支援指定重新整理資源為Local,執行重新整理時,使用的資源為base表所在TG的Leader Warehouse和Dynamic Table所在TG的Leader Warehouse,可能存在多個warehouse。

  • 不支援指定warehouse_name。

V3.0版本

SQL文法如下:

CREATE DYNAMIC TABLE [IF NOT EXISTS] <schema.tablename>(
[col_name],
[col_name]
  ) [PARTITION BY LIST (col_name)]
WITH (
      [refresh_mode='[full|incremental]',]
      [incremental_auto_refresh_schd_start_time='[immediate|<timestamptz>]',]
      [incremental_auto_refresh_interval='[<num> {minute|minutes|hour|hours]',] 
      [incremental_guc_hg_computing_resource='[ local | serverless]',]
      [full_guc_hg_computing_resource='[ local | serverless]',]
) 
AS
<query> --query的定義

重新整理資源預設行為如下:

表類別

重新整理模式

重新整理資源

非計算群組型執行個體

計算群組型執行個體

Dynamic Table

增量重新整理&全量重新整理

  • 預設使用Local資源。

  • 支援指定重新整理資源為Serverless。

  • 預設重新整理資源為Local,執行重新整理時,使用的資源為Dynamic Table所在TG的Leader Warehouse。

  • 支援指定重新整理資源為Serverless。

  • 不支援指定warehouse_name。

手動重新整理資源

手動重新整理資源,不同版本對應的文法及預設行為如下:

V4.0.7及以上版本

SQL文法如下:

--手動refresh時指定重新整理資源
refresh dynamic table [<schema_name>.]<table_name> with(computing_resource='local' | 'serverless' |  '<warehouse_name>',]);
說明
  • 執行手動refresh時,沒有顯示設定computing_resource參數,預設使用表DDL中的computing_resource參數值進行重新整理。

  • 執行手動refresh時,顯示設定computing_resource參數後,使用該參數執行操作。即使該參數與表DDL中的computing_resource參數值不同。

  • 對於計算群組型執行個體:允許設定local | serverless | warehouse_name 3個值,其中local表示當前串連所在warehouse

  • 對非計算群組型執行個體:只允許local | serverless 2個值,local表示本執行個體資源。

V4.0.1-4.0.6版本

SQL文法如下:

refresh dynamic table [<schema_name>.]<table_name> with([computing_resource='local' | 'serverless' ,]);
說明
  • 對於計算群組型執行個體:允許設定local | serverless 2個值,其中local資源表示base 表所在TG的leader warehouse和Dynamic Table 所在TG的leader warehouse,可能存在多個warehouse。

  • 對非計算群組型執行個體:只允許local | serverless 2個值,local表示本執行個體資源。

V3.1-3.2版本

SQL文法如下:

refresh dynamic table [<schema_name>.]<table_name> with([computing_resource='local' | 'serverless' ,]);
說明
  • 對於計算群組型執行個體:允許設定local | serverless 2個值,其中local資源表示base 表所在TG的leader warehouse和Dynamic Table 所在TG的leader warehouse,可能存在多個warehouse。

  • 對非計算群組型執行個體:只允許local | serverless 2個值,local表示本執行個體資源。

V3.0版本

SQL文法如下:

refresh dynamic table [<schema_name>.]<table_name> with(
       [incremental_guc_hg_computing_resource='[ local | serverless]',]
      [full_guc_hg_computing_resource='[ local | serverless]',]);
說明
  • 對於計算群組型執行個體:允許設定local | serverless 2個值,其中local資源表示Dynamic Table 所在TG的leader warehouse。

  • 對非計算群組型執行個體:只允許local | serverless 2個值,local表示本執行個體資源。

版本升級說明

下列表格詳細說明了Hologres執行個體從不同源版本升級至目標版本後,Dynamic Table(動態表)在自動重新整理和手動重新整理情境下,其預設重新整理資源(如從Local變更為Serverless)及指定規則的變化。核心差異在於新、舊文法建立的表其行為不同,您可根據此表判斷版本升級可能帶來的影響,以確保業務平穩過渡。

  • 自動重新整理資源版本升級

    源版本

    目標版本

    表類型

    重新整理模式

    重新整理資源

    非計算群組型執行個體

    計算群組型執行個體

    3.0

    • 3.1

    • 3.2

    • 4.0.1-4.0.6

    Dynamic Table

    增量&全量重新整理

    建立表(使用新文法):

    • 預設資源從Local變更為Serverless。

    • 支援指定重新整理資源為Local。

    老表(使用3.0舊文法):

    • 預設資源仍然為Local。

    • 支援修改重新整理資源為Serverless。

    建立表(使用新文法):

    • 預設資源從Local變更為Serverless。

    • 支援指定重新整理資源為Local,執行重新整理的warehouse為base表所在TG的Leader Warehouse和Dynamic Table所在TG的Leader Warehouse,可能存在多個warehouse

    老表(使用3.0舊文法):

    • 預設資源仍然為Local,預設執行重新整理的是Dynamic Table所在TG的Leader。Warehouse,不支援指定warehouse_name。

    • 支援修改重新整理資源為Serverless。

    • 當老表文法變更為新文法後,使用local時,執行重新整理的warehouse從Dynamic Table所在TG的Leader Warehouse 變更為base表所在TG的Leader Warehouse和Dynamic。Table所在TG的Leader Warehouse,可能存在多個warehouse

    3.0

    4.0.7及以上版本

    Dynamic Table

    增量&全量重新整理

    建立表(使用新文法):

    • 預設資源從Local變更為Serverless。

    • 支援指定重新整理資源為Local。

    老表(使用3.0舊文法):

    • 預設資源仍然為Local。

    • 支援修改重新整理資源為Serverless。

    建立表(使用新文法):

    • 預設資源從Local變更為Serverless。

    • 允許指定warehouse_name執行重新整理。

    • 當指定重新整理資源為Local,不顯示指定warehouse_name時,系統預設使用建立Dynamic Table時串連的warehouse執行重新整理。

    老表(使用3.0舊文法):

    • 預設資源仍然為Local,預設執行重新整理的是Dynamic Table所在TG的Leader。Warehouse,不支援指定warehouse_name

    • 支援修改重新整理資源為Serverless。

    • 當老表文法變更為新文法後,使用local資源時,執行重新整理的warehouse仍然為Dynamic Table所在TG的Leader Warehouse。

    • 3.1

    • 3.2

    • 4.0.1-4.0.6

    4.0.7及以上版本

    Dynamic Table

    增量&全量重新整理

    建立表(使用新文法):

    • 預設資源仍然為Serverless。

    • 支援指定重新整理資源為Local。

    老表(使用3.0舊文法):

    • 預設資源仍然為Local。

    • 支援修改重新整理資源為Serverless。

    建立表(使用新文法):

    • 預設資源仍然為Serverless。

    • 允許指定warehouse_name執行重新整理。

    • 當指定重新整理資源為Local,不顯示指定warehouse_name時,系統預設使用當前串連的warehouse執行重新整理。

    老表(使用3.0舊文法):

    • 預設資源仍然為Local,預設執行重新整理的是Dynamic Table所在TG的Leader Warehouse,不支援指定warehouse_name。

    • 支援修改重新整理資源為Serverless。

    • 當老表文法變更為新文法後,使用local時,執行重新整理的warehouse從base表所在TG的Leader Warehouse和Dynamic Table所在TG的Leader Warehouse變更為Dynamic Table所在TG的Leader Warehouse。

    4.0.1-4.0.6

    4.0.7及以上版本

    External Dynamic Table

    增量&全量重新整理

    建立表(使用新文法):

    • 預設資源為Serverless。

    • 支援指定重新整理資源為Local。

    建立表(使用新文法):

    • 預設資源仍然為Serverless。

    • 支援指定warehouse_name執行重新整理。

    • 當指定重新整理資源為Local,不顯示指定warehouse_name時,系統預設使用當前串連的warehouse執行重新整理。

    老表(4.0.1-4.0.6版本建立的表):

    • 預設資源仍然為Serverless。

    • 當指定重新整理資源為local時,系統預設使用的資源執行個體的Default Warehouse。

  • 手動重新整理資源版本升級

    源版本

    目標版本

    表類型

    重新整理模式

    重新整理資源

    非計算群組型執行個體

    計算群組型執行個體

    3.0

    • 3.1

    • 3.2

    • 4.0.1-4.0.6

    Dynamic Table

    增量&全量重新整理

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless或者local。

    • 優先使用顯示指定的重新整理資源。


    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless、local。

    • 如果是新文法建立的表:Local資源從Dynamic Table所在TG的Leader Warehouse變更為base表所在TG的Leader Warehouse以及Dynamic Table所在TG的Leader Warehouse,可能存在多個Warehouse。

    • 如果仍然是老文法的表(3.0版本文法):Local資源表示Dynamic Table所在TG的Leader Warehouse。

    • 優先使用顯示指定的重新整理資源。

    3.0

    4.0.7及以上版本

    Dynamic Table

    增量&全量重新整理

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless或者local。

    • 優先使用顯示指定的重新整理資源。

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless、local、warehouse_name。

    • 如果是新文法建立的表:Local資源由Dynamic Table所在TG的Leader Warehouse變更為當前串連Warehouse。

    • 如果仍然是老文法的表(3.0版本文法):Local資源表示Dynamic Table所在TG的Leader Warehouse。

    • 優先使用顯示指定的重新整理資源。

    • 3.1

    • 3.2

    • 4.0.1-4.0.6

    4.0.7及以上版本

    Dynamic Table

    增量&全量重新整理

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless或者local。

    • 優先使用顯示指定的重新整理資源。

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless、local、warehouse_name。

    • 如果是新文法建立的表:Local資源由base表所在TG的Leader Warehouse以及Dynamic Table所在TG的Leader Warehouse變更為當前串連Warehouse。

    • 如果仍然是老文法的表(3.0版本文法):Local資源表示Dynamic Table所在TG的Leader Warehouse。

    • 優先使用顯示指定的重新整理資源。

    4.0.1-4.0.6

    4.0.7及以上版本

    External Dynamic Table

    增量&全量重新整理

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 允許顯示指定重新整理資源為serverless或者local。

    • 優先使用顯示指定的重新整理資源。

    • 未指定重新整理資源時,預設使用表DDL中設定的重新整理資源。

    • 顯示指定重新整理資源為serverless、local、warehouse_name。

    • Local資源表示當前串連的Warehouse

    • 優先使用顯示指定的重新整理資源。