首页 > 解决方案 > 在 Snowflake 中跟踪数据加载历史记录

问题描述

Snowflake 在其 INFORMATION_SCHEMA 对象中存储了少量元数据集。我试图调查过程/查询如何加载特定表。

History允许进行高级调查,但我想要自定义 SQL 代码以进行更深入的研究。 在此处输入图像描述

Statement not found执行下面的代码后,即使 Query_ID 有效,我也会出错。有什么方法可以导航历史加载,以便我可以跟踪哪个程序将数据加载到哪个表?

SELECT * FROM table(RESULT_SCAN('xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx'));

标签: sqlmetadatasnowflake-cloud-data-platform

解决方案


可以在以下链接中找到使用 RESULT_SCAN( ) 的详细信息,请注意这两个条件可能会影响您运行查询的能力:

  • 在使用 RESULT_SCAN() 之前,查询不能执行超过 24 小时
  • 只有运行原始查询的用户才能使用 RESULT_SCAN( )

https://docs.snowflake.com/en/sql-reference/functions/result_scan.html#usage-notes

至于“导航历史加载,以便我可以跟踪哪个程序将数据加载到哪个表?” :我强烈建议您对 SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY 视图进行分析。一个好的起点可能是这样的:

SELECT *
FROM   snowflake.account_usage.query_history
WHERE  start_time >= DATEADD('days', -30, CURRENT_TIMESTAMP())
AND    start_time <= date_trunc(HOUR, CURRENT_TIMESTAMP())
AND    query_text iLike '%TABLE_NAME_HERE%'
AND    query_type <> 'SELECT';

https://docs.snowflake.com/en/sql-reference/account-usage/query_history.html

如果您怀疑有问题的表是从 COPY INTO table 命令加载的,那么您可以先在以下两个视图之一中查看结果:

虽然 account_usage “share”中的视图可能有一些延迟(通常为 10-20 分钟,可能长达 90 分钟),但我发现使用它们进行分析比查询 INFORMATION_SCHEMA 对象更容易(意见)。

我希望这会有所帮助...丰富


推荐阅读