Retrieve archived data

备注

存储生命周期策略 目前在政府区域不可用。

使用 CREATE TABLE ... FROM ARCHIVE OF 命令读取存档数据。

For example, the following statement creates a new table from archived rows where the value in the event_timestamp column is between January 15 and January 20 of 2023:

CREATE TABLE my_table
  FROM ARCHIVE OF my_source_table AS st
  WHERE st.event_timestamp BETWEEN '01/15/2023' AND '01/20/2023';
Copy

有关语法详细信息和参数说明,请参阅 CREATE TABLE 文档中的 CREATE TABLE ... FROM ARCHIVE OF

备注

  • 使用此命令需要对源表的 OWNERSHIP 权限。

  • 不支持指定列定义、策略、标签或其他约束。Snowflake 会自动从源表中检索表架构、策略、标签和约束。

  • WHERE 子句为必填项。读取存档数据的成本很高,因此不应频繁执行。使用 WHERE 子句筛选结果,可确保 Snowflake 仅从归档存储中读取您需要的数据,从而帮助您尽可能降低成本。

  • 要估计 Snowflake 将从归档存储中检索的文件数,请在执行此操作之前运行 EXPLAIN 命令。该输出包含 createTableFromArchiveData 操作,并在 TableScan 操作对应的 objects 列中显示 ARCHIVE OF <table>。有关更多信息,请参阅 使用 EXPLAIN 估算检索成本

  • 要查看从归档存储中检索数据的历史记录,请使用 ARCHIVE_STORAGE_DATA_RETRIEVAL_USAGE_HISTORY 视图

  • 要从归档存储的 COLD 层中检索数据,Snowflake 必须先从外部云存储中恢复文件。此过程最多可能需要 48 小时。

    要支持此过程,请适当设置以下参数:

    COLD 存储层恢复操作每次恢复操作最多支持 100 万个文件。

  • 如果取消从归档存储中检索数据的 CREATE TABLE 操作,可能仍会产生检索成本。

使用 EXPLAIN 估算检索成本

To estimate how many files Snowflake will retrieve from archive storage, use the EXPLAIN command.

The command output includes the following data:

  • operation 列中的 createTableFromArchiveData 操作。

  • TableScan 操作对应的 objects 列中的 ARCHIVE OF <table>

  • 归档 TableScan 操作对应的 assignedPartitions 列中将检索到的分区数。此值表示 Snowflake 将从冷存储层恢复的分区数,以便从归档存储中检索数据。

例如:

EXPLAIN
CREATE TABLE my_table
  FROM ARCHIVE OF my_source_table AS st
  WHERE st.event_timestamp BETWEEN '01/15/2023' AND '01/20/2023';
Copy
语言: 中文