本文将会介绍External Dynamic Table的Refresh命令。
语法说明
Hologres支持通过REFRESH EXTERNAL DYNAMIC TABLE命令对Dynamic Table的数据进行手动刷新或自动刷新。其中,单独执行一次Refresh操作视为手动刷新;若在执行CREATE EXTERNAL DYNAMIC TABLE命令时配置了刷新策略,则为自动刷新。
REFRESH [OVERWRITE] EXTERNAL DYNAMIC TABLE {external_db}.{external_schema}.{table_name}
[PARTITION (<partition_key> = '<partition_value>') ]
[WITH (
refresh_mode = '{full|incremental}'
)];参数说明:
参数名 | 描述 |
external_db | 外部数据库(External Database)的名称 |
external_schema | 外部模式(External Schema)的名称。 |
table_name | 非分区表或分区子表的表名。 |
OVERWRITE | 支持对Dynamic Table使用 |
PARTITION (<partition_key> = '<partition_value>') | 目标Paimon表为分区表时的配置。
|
WITH (refresh_mode = '{full|incremental}') | 支持在刷新时指定刷新模式。 |
如果是分区表,必须带上分区字段,且只能对单分区进行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
执行一次全量刷新,并且停止增量刷新。
全量刷新
使用限制
不支持直接刷新分区的父表,只支持指定分区刷新。
仅支持在非External Database下执行Refresh命令。