在snowflake中跟踪数据加载历史

pdtvr36n  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(514)

snowflake在其信息模式对象中存储很少的元数据集。我试图研究过程/查询是如何加载特定表的。 History 允许进行高级研究,但我希望有定制的sql代码来进行更深入的研究。

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

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

mum43rcc1#

使用result\u scan()的详细信息可以在下面的链接中找到,请注意这两个条件可能会影响您运行查询的能力:
查询的执行时间不能超过使用result\u scan()之前的24小时
只有运行原始查询的用户才能使用结果扫描()
https://docs.snowflake.com/en/sql-reference/functions/result_scan.html#usage-注意事项
至于“导航历史加载以便跟踪哪个过程将数据加载到哪个表?”:我强烈建议您在snowflake.account\u usage.query\u 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\u usage.copy\u historyhttps://docs.snowflake.com/en/sql-reference/account-usage/copy_history.html
snowflake.account\u usage.load\u historyhttps://docs.snowflake.com/en/sql-reference/account-usage/load_history.html
虽然account\u usage“share”中的视图可能有一些延迟(通常是10-20分钟,可能多达90分钟),但我发现使用它们进行分析比查询信息\u schema对象(意见)更容易。
我希望这有助于…rich

sr4lhrrt

sr4lhrrt2#

如果要查看最新的查询历史记录,可以使用以下语法:

SELECT *
FROM TABLE(information_schema.QUERY_HISTORY())
WHERE QUERY_ID = 'xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx'

要筛选数据加载查询:

SELECT *
FROM TABLE(information_schema.QUERY_HISTORY())
WHERE QUERY_TEXT LIKE '%COPY INTO%'

提示:上表函数返回最近7天的数据。如果需要更多历史记录,请使用“帐户使用情况”视图。提示:要使用AccountHistory视图,请切换到accountadmin角色。https://docs.snowflake.com/en/sql-reference/account-usage/query_history.html
rgds公司,
丹。

相关问题