Snowflake CLI (Snowsql) - 查询标记

Snowflake CLI (Snowsql) - query tagging

当来自 snowsql shell 的查询 运行 时,我可以在 UI 上看到生成的查询 ID。稍后如果我必须在历史中搜索相同的内容,我想搜索我可以定义的查询 ID 或以某种方式标记查询。

当我 运行 查询时,是否可以创建我自己的查询 ID 或标签?

您不能创建自己的查询 ID,但可以使用 QUERY_TAG 参数,请参阅 here

您稍后可以在扫描 INFORMATION_SCHEMA.QUERY_HISTORY table 时使用它,请参阅 here,它有一个 QUERY_TAG 列。您还可以在 UI 的 History 选项卡中使用 Query Tag 过滤器。

您还可以使用 LAST_QUERY_ID 以编程方式获取 Snowflake 生成的 QUERY_ID。然后你用 QUERY_HISTORY table 和 UI.

中的那个过滤

你实际上并没有在 CLI 中提供这个:

如果您有 SQL 脚本 (running_test.sql):

改变会话设置 QUERY_TAG = ; /* 后跟 SQL */

然后以正常方式调用 snowsql cli:

snowsql -c "CONNECTION_NAME" -f "full_path_to_sql_file" > write_to_log_file

(连接名称是您在配置文件中设置的名称)

或 snowsql "account_details + username + password" -f "full_path_to_sql_file" > write_to_log_file

您可以为帐户、用户或会话设置查询标签。这在跨多个服务跟踪查询行为时特别有用。

请注意,设置 QUERY_TAGact as a default and will be overridden 更细化(帐户 > 用户 > 会话)。

/* 
  The following will provide a default query tag to all queries
  performed by an account (replace `MY_ACCOUNT` with your account name) 
*/
ALTER ACCOUNT MY_ACCOUNT SET
    QUERY_TAG = 'Data Warehouse'
;


/* ​
  The following will provide a default query tag to all queries
  ​performed by a user (replace `MY_USER` with your user name)
   
  NOTE: This is more granular than ACCOUNT and will override
    default QUERY_TAG
*/
ALTER USER MY_USER SET
    QUERY_TAG = 'Data Transformations'
;


/* ​
  The following will provide a query tag to all queries
  ​performed by this session.
  
  NOTE: This is more granular than USER and ACCOUNT and 
    will override  default QUERY_TAG
*/
ALTER SESSION SET
    QUERY_TAG = 'Doing this very specific task'
;