sql - 在 Snowflake 中跟踪数据加载历史记录
问题描述
Snowflake 在其 INFORMATION_SCHEMA 对象中存储了少量元数据集。我试图调查过程/查询如何加载特定表。
History
允许进行高级调查,但我想要自定义 SQL 代码以进行更深入的研究。
Statement not found
执行下面的代码后,即使 Query_ID 有效,我也会出错。有什么方法可以导航历史加载,以便我可以跟踪哪个程序将数据加载到哪个表?
SELECT * FROM table(RESULT_SCAN('xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx'));
解决方案
可以在以下链接中找到使用 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 命令加载的,那么您可以先在以下两个视图之一中查看结果:
- SNOWFLAKE.ACCOUNT_USAGE.COPY_HISTORY https://docs.snowflake.com/en/sql-reference/account-usage/copy_history.html
- SNOWFLAKE.ACCOUNT_USAGE.LOAD_HISTORY https://docs.snowflake.com/en/sql-reference/account-usage/load_history.html
虽然 account_usage “share”中的视图可能有一些延迟(通常为 10-20 分钟,可能长达 90 分钟),但我发现使用它们进行分析比查询 INFORMATION_SCHEMA 对象更容易(意见)。
我希望这会有所帮助...丰富
推荐阅读
- python - 为什么 print(f.close()) 在下面的代码中返回 None ?
- python - 使用烧瓶和 Gunicorn 在生产中加载预训练手套
- jenkins - Github OAuth 与 Jenkins 用于组织
- compilation - 如何将 haxe 文件转换为 C# 库或源文件
- reactjs - 终端错误中的笑话调试 - 目录丢失
- r - 按 R 中的间隔过滤列并使用 ggplot() 绘图
- javascript - 如何在不使用的情况下创建 SVG 模态弹出窗口容纳模态文本的容器
- c# - 如何在 Azure 中每月运行一次控制台应用程序
- file-upload - 在 Blazor Server 中使用 EditForm 上传文件?
- c++11 - 如果 constexpr 函数未在编译时运行,如何调试?