我可以在 Snowflake 界面中从 SnowSql 会话中查找查询 ID 吗?

Can I look up the query id from a SnowSql session in the Snowflake Interface?

是否可以使用 SnowSql 命令行界面 (CLI) 来做同样的事情?我想使用 CLI 查看特定查询的 SQL 代码,如其查询 ID 所指定。

使用网络控制台时,可以进入“历史记录”选项卡并按 "Query ID" 进行过滤,例如"xxx-xxxxx" 查看该特定查询的 SQL 代码和错误消息(如果有)。

您可以使用 LAST_QUERY_ID 检索会话中查询的查询 ID。

select last_query_id(); 获取最近的查询 ID

select last_query_id(1); 获取会话的第一个查询 ID

select last_query_id(-2); 从之前的两个查询中获取查询 ID。

等等

如果需要,您可以使用这样的查询来获取实际的查询文本。

SELECT QUERY_TEXT
  FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY_BY_SESSION(RESULT_LIMIT => 10))
 WHERE QUERY_ID = '018cde0c-0077-09ee-0000-001812d26346'
;

如果您需要在 Session 之外检索查询信息,我相信您可以使用 ACCOUNT_USAGE 如果这对您有用。

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY WHERE QUERY_ID = '018cde0c-0077-09ee-0000-001812d26346';

请尝试使用 QUERY_HISTORY* 表:

SELECT query_id, query_text,user_name,session_id,role_name,warehouse_name,
       execution_status,error_code,error_message,start_time,end_time
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY(DATEADD('HOURS',-1,CURRENT_TIMESTAMP()),CURRENT_TIMESTAMP()))
ORDER BY start_time;

参考:https://docs.snowflake.net/manuals/sql-reference/functions/query_history.html