Refresh External Dynamic Table

本文将会介绍External Dynamic TableRefresh命令。

语法说明

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使用OVERWRITE的语法。

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

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

<partition_key>为分区键

<partition_value>为对应的分区值。

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命令。