【发布时间】:2020-03-19 12:55:08
【问题描述】:
我想获取雪花中表格的最后访问时间戳
【问题讨论】:
标签: snowflake-cloud-data-platform
我想获取雪花中表格的最后访问时间戳
【问题讨论】:
标签: snowflake-cloud-data-platform
并不总是理想的,但为一次性问题找到此问题的一种快速方法是使用 QUERY_HISTORY
SELECT START_TIME, *
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY())
WHERE QUERY_TEXT LIKE '%MYSCHEMA.MYTABLE%';
更新:查询以专门获取最近的查询时间。必须自己过滤掉 QUERY_HISTORY 查询。这并不是特别快,并且确实要求运行它的角色可以访问所有相关历史记录。
SELECT MAX(START_TIME)
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY())
WHERE QUERY_TEXT ILIKE '%CONFIG.PIPELINE_LOG%'
AND NOT QUERY_TEXT ILIKE '%INFORMATION_SCHEMA.QUERY_HISTORY%';
【讨论】:
希望这种方法会有所帮助
重要提示: 这不是一个非常合适的方法,因为用户必须具有 AccountAdmin 访问权限,才能在 snowflake.account_usage 架构上运行查询,并且查询将有一点延迟,因为它是 account_usage 架构的一部分。如果数据量太大,也会产生WH成本
select * from "SNOWFLAKE"."ACCOUNT_USAGE"."QUERY_HISTORY"
where
query_text like '%STORE_SALES%' and
query_type = 'SELECT'
order by START_TIME DESC
LIMIT 1
或者,如果要求仅限于过去 14 天的历史记录,请使用历史记录选项卡,该选项卡使用简单的过滤子句无需花费任何成本。
【讨论】:
这是一个较老的问题,但我正在回答这个问题,因为 Snowflake 添加了一项新功能来跟踪跨越 1 年的上次访问。由于未从创建旧对象时跟踪此信息,因此您只会看到自跟踪开始以来的访问历史记录。
现在“SNOWFLAKE”.“ACCOUNT_USAGE”.“ACCESS_HISTORY”中有一个视图。您可以通过展平base_objects_accessed 数组来查看如何查询它:
select * from "SNOWFLAKE"."ACCOUNT_USAGE"."ACCESS_HISTORY",
LATERAL FLATTEN(base_objects_accessed) limit 100;
【讨论】: