RESTORE TABLE(归档文件取回)

功能概述

RESTORE TABLE
RESTORE TABLE
的归档文件取回形式用于将 Table Volume 中
ARCHIVE
ARCHIVE
类型的分区文件异步恢复为可读取的标准存储文件。它只负责取回归档文件,不会将表回滚到历史版本;历史版本回滚请使用带
TO TIMESTAMP AS OF
TO TIMESTAMP AS OF
RESTORE TABLE
RESTORE TABLE
语法。

语法

RESTORE TABLE [<namespace>.]<table_name> SUBDIRECTORY '<path>';

参数说明

参数说明
<namespace>
<namespace>
可选。表所属的 schema 名称。省略时使用当前 schema。
<table_name>
<table_name>
包含归档文件的表名称。文件位于该表的 Table Volume 中。
SUBDIRECTORY '<path>'
SUBDIRECTORY '<path>'
指定要取回的归档文件子目录,应与
ARCHIVE TABLE
ARCHIVE TABLE
使用的目录一致。

使用示例

示例 1:准备已归档的 ARCHIVE 文件

CREATE TABLE public.doc_archive_orders ( order_id BIGINT, amount DECIMAL(18,2) ) PARTITIONED BY (dt STRING); INSERT INTO public.doc_archive_orders PARTITION (dt = '2026-08-29') VALUES (3, 90.12); ARCHIVE TABLE public.doc_archive_orders PARTITION (dt = '2026-08-29') SUBDIRECTORY 'archive/20260829/' STORAGE_CLASS = 'ARCHIVE';

归档命令成功返回后,Table Volume 中会生成

archive/20260829/
archive/20260829/
子目录。

示例 2:提交取回任务

RESTORE TABLE public.doc_archive_orders SUBDIRECTORY 'archive/20260829/';

命令返回每个文件的提交结果。例如:

filestatus
archive/20260829/part00001
archive/20260829/part00001
{"message":"","success":true}
{"message":"","success":true}

success=true
success=true
表示取回任务已提交,不表示文件已经完成取回。

示例 3:查询取回结果

SHOW RESTORE STATUS public.doc_archive_orders SUBDIRECTORY 'archive/20260829/';

取回过程中,文件状态可能为:

filestate
archive/20260829/part00001
archive/20260829/part00001
{"status":"RESTORING"}
{"status":"RESTORING"}

任务完成后,状态变为:

filestate
archive/20260829/part00001
archive/20260829/part00001
{"status":"RESTORED"}
{"status":"RESTORED"}

只有状态为

RESTORED
RESTORED
时,才可以读取或导入该目录中的文件。

注意事项

  • 取回操作是异步操作;命令成功返回只表示任务已提交。
  • 必须使用 SHOW RESTORE STATUS 查询状态,确认文件为
    RESTORED
    RESTORED
    后再读取。
  • 只有
    ARCHIVE
    ARCHIVE
    类型文件支持取回,
    IA
    IA
    类型文件不支持。
  • 单次取回的分区文件数不能超过 10000 个。
  • 取回操作会产生对象存储取回费用和临时标准存储费用。
  • 执行用户需要对目标表具有
    SELECT
    SELECT
    权限。

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询