【问题标题】:How long does Snowflake really maintain file load history?Snowflake 真正维护文件加载历史记录的时间有多长?
【发布时间】:2021-10-27 15:43:56
【问题描述】:

来源 #1 of 3 - https://docs.snowflake.com/en/user-guide/data-load-considerations-load.html#load-metadata 说 -

“Snowflake 维护每个表的详细元数据,其中数据 已加载...此加载元数据将在 64 天后过期...”后跟 LOAD_UNCERTAIN_FILES 复制选项的解释。这个选项 告诉雪花是否加载元数据的文件, 超过 64 天,已被清除。

#2 of 3 - https://docs.snowflake.com/en/user-guide/data-load-local-file-system-copy.html#monitoring-files-staged-internally 说 -

"Snowflake 保留执行的 COPY INTO 命令的历史数据 在过去 14 天内... 使用 LOAD_HISTORY 信息架构 查看使用 COPY 检索加载到表中的数据的历史记录 INTO 命令”

#3 of 3 - https://docs.snowflake.com/en/sql-reference/account-usage/copy_history.html#copy-history-view 说 -

"此Account Usage视图可用于查询Snowflake数据加载 过去 365 天(1 年)的历史记录。视图显示负载 COPY INTO 语句和连续数据的活动 使用雪管加载。该视图避免了 10,000 行的限制 LOAD_HISTORY 视图。”


问题 #1 #3 似乎取代了 #2,因为持续时间是 365 天,它不仅维护批量加载的元数据,还维护连续加载的元数据。此外,显然#2 有行数限制。 默认情况下,#3 中的视图仅对 ACCOUNTADMIN 角色可用。 但是,如果 Snowflake 确实有过去 365 天的信息,为什么要在 64 天后强制使用 LOAD_UNCERTAIN_FILES?

问题 #2 来源 #1 和 2 不是不一致吗?

【问题讨论】:

    标签: metadata snowflake-cloud-data-platform


    【解决方案1】:

    将文件复制到表中的最重要数字是 64 天。如果您从一个阶段运行 COPY INTO 命令而不通过列表或模式限制文件,Snowflake 将不会重新加载它在过去 64 天内加载的文件。

    您可以在复制选项https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#copy-options-copyoptions 中使用 FORCE = TRUE 覆盖它。这将使它加载文件,无论它们是否标记为已加载。

    当满足以下三个条件时,出于 COPY INTO 命令的目的,Snowflake 不知道文件是否已经加载: p>

    • 文件的 LAST_MODIFIED 日期(即文件暂存的日期)是 超过 64 天。
    • 初始数据集加载到表中超过 64 天 早一点。
    • 如果文件已成功加载到表中,则此
      事件发生时间超过 64 天。

    在这些条件下,LOAD_UNCERTAIN_FILES 选项适用。

    另外两次涉及报告,而不是 COPY INTO 命令的行为。 14 天用于返回的LISTLS 命令信息。 365 天用于通过“雪花”数据库从雪花共享回客户的数据。数据可能需要 15 分钟到 3 小时才能出现在此数据库中,具体取决于相关视图。之后它会保留 365 天。

    【讨论】:

    • 感谢@Greg Pavlik,您对 snowflake 数据库中 3 小时延迟的澄清很有帮助,并且您重申了 3 个接口背后的目的。跨度>
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 2011-01-07
    • 2013-07-25
    • 2015-08-06
    • 1970-01-01
    相关资源
    最近更新 更多