本文介绍如何创建、恢复、修改以及删除MaxCompute表快照(Snapshot Table)。
什么是表快照
表快照(Snapshot Table)即保留基表(Base Table)在特定时刻的表数据。
表快照可以配置独立的数据过期时间,从表快照创建开始计算,到该设定时间后,系统会自动删除表快照。
表快照为只读,支持从表快照创建(恢复)表,从而修复或恢复表数据。
使用表快照的两大优势:
更长时间的数据备份,便于数据保留与恢复。
表快照的最大保存时间超过当前本地备份功能支持的最大保存时间,可根据需要从指定的时间点保留数据。如果发现新的业务规则或数据更新导致了问题,可以根据表快照将数据恢复到之前正确的版本,避免对业务造成进一步的影响。
最大程度地减少存储费用。
仅存储快照与其基表之间不同的字节,因此表快照使用的存储空间通常小于表的完整副本。
使用限制
表快照Snapshot必须与其基表位于同一Region中并且在同一租户下。
表快照Snapshot为Read-Only只读状态,除非通过快照Snapshot创建标准表然后更新数据,否则您无法更新表快照中的数据。您只能更新表快照的元数据MetaData,例如其说明、失效日期和访问权限政策。
Snapshot Table目前只支持普通表,不支持Delta Table。
无法获取视图(View)、物化视图(Delta Live MV)、外部表(External Table)的表快照Snapshot。
创建表快照Snapshot时,无法覆盖现有表Table或表快照。
如果为设置了生命周期时间的分区表Partition Table创建快照,则生命周期时间信息不会保留在快照中。
Streaming Tunnel写入数据后立即通过Tunnel SDK调用
streamRecordPack.flush
后的数据,需要5-10分钟之后才可以被打入快照。作业上限:
单项目并发表快照作业数上限:100个。
单项目每天的表快照作业总数上限:50000个。
单表每天表快照作业数上限:50个。
单表的快照数量上限:1000个。
表快照删除后不支持恢复。
创建表快照
命令格式
创建表时可配置数据到期时间,当前若不设置,则表快照将继承该项目配置的数据生命周期(后续会改为不继承,表快照过期时间完全独立)。
CREATE [OR REPLACE] SNAPSHOT TABLE [IF NOT EXISTS] <table_snapshot_name>
CLONE <source_table_name>
[OPTIONS(<snapshot_option_list>)]
参数说明
参数 | 描述 |
table_snapshot_name | 待创建的表快照名字。 |
source_table_name | 基于哪张表创建快照。 |
snapshot_option_list |
|
使用示例
CREATE SNAPSHOT TABLE <table_snapshot_name>
CLONE <source_table_name>
OPTIONS(
expiration_timestamp=TIMESTAMP "2025-07-01 00:00:00",
description="A table snapshot that expires in xxx days"
);
从表快照恢复
可以恢复到源表或新增表。
CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ] <source_table_name>
CLONE <table_snapshot_name>
修改表快照
仅可修改OPTIONS。
ALTER SNAPSHOT TABLE [IF EXISTS] <snapshot_table_name>
SET OPTIONS(<snapshot_option_list>)
删除表快照
DROP SNAPSHOT TABLE [IF EXISTS] <table_snapshot_name>
权限管控
表快照的操作类似表,其权限管控包括创建表快照、从表快照恢复、列出表快照、获取表快照描述、更新表快照元数据、删除表快照、从表快照查询数据。
费用说明
存储费用适用于表快照,但MaxCompute仅对表快照中尚未计入任何其他表的数据收费,详细说明如下:
在创建表快照时,不会产生任何表快照存储费用。
如果在创建表快照后,向基表新增数据,不会因该新增数据而产生表快照存储费用。
如果在创建表快照后,在基表中更改或删除数据,此时不对基表中被更新和删除的数据产生存储费用;但是由于这些数据仍保存在快照表中,不会被清除,因此会产生表快照存储费用。
说明在基表中更改或删除的数据,在本地备份时间内仍然可通过本地备份恢复,并且不会产生本地备份费用。
如果有多个表快照包含已更改或已删除的数据,则您只需为最大的表快照使用的存储空间付费。