【问题标题】:Query Tag is not setting through task in snowflake查询标签未通过雪花中的任务设置
【发布时间】:2021-10-25 16:32:14
【问题描述】:

我们有一个存储过程,它改变会话并将 query_tag 参数设置为某个值。当通过call语句直接调用该过程时,查询标签被设置,而当通过任务调用该过程时,查询标签不被设置。请提出建议。

CREATE OR REPLACE TASK mytask
    WAREHOUSE = COMPUTE_WH
    SCHEDULE = '1 minute'
AS CALL dummy();

create or replace procedure dummy()
    RETURNS VARCHAR(50)
    LANGUAGE JAVASCRIPT
    EXECUTE AS CALLER
as $$    

snowflake.execute( {sqlText: "ALTER SESSION SET QUERY_TAG = 'execute_dummy_proc'" } );
var sql_command = "INSERT INTO mytable(ts) VALUES(CURRENT_TIMESTAMP())"; 
snowflake.execute ({sqlText: sql_command});    

$$;

【问题讨论】:

    标签: session stored-procedures parameters tags snowflake-cloud-data-platform


    【解决方案1】:

    我重用了提供的代码。只需将任务中的第二个查询更改为基本选择以使其更简单。

    CREATE OR REPLACE TASK mytask
    WAREHOUSE = COMPUTE_WH
    SCHEDULE = '1 minute'
    AS CALL dummy();
    
    create or replace procedure dummy()
        RETURNS VARCHAR(50)
        LANGUAGE JAVASCRIPT
        EXECUTE AS CALLER
    as $$    
    
    snowflake.execute( {sqlText: "ALTER SESSION SET QUERY_TAG = 'execute_dummy_proc'" } );
    var sql_command = "SELECT 1"; 
    snowflake.execute ({sqlText: sql_command});     
    $$;
    

    正如您在下面的屏幕截图中看到的,任务连续运行两次,并且每次第二个查询 (SELECT 1) 都被有效标记。

    在 Snowflake 中,每个任务都在一个新会话中执行,因此查询标记仅出现在更改会话之后。 我觉得这里没有错。以防万一您有可能在 TASK 创建中设置变量会话。

    例如

    CREATE OR REPLACE TASK mytask
    WAREHOUSE = COMPUTE_WH
    SCHEDULE = '1 minute'
    QUERY_TAG = 'mytag'
    AS CALL dummy();
    

    【讨论】:

    • 我的客户帐户似乎有问题。在我的试用帐户中,通过任务完美设置。但不是通过客户帐户。是否需要配置任何其他设置才能在客户帐户中解决此问题?
    • 只是为了检查问题是否与您的客户帐户有关,您可以使用 ALTER ACCOUNT MY_ACCOUNT SET QUERY_TAG ='' 进行测试,如果您没有帐户管理员权限,则可以设置 SESSION 或 USER level 并通过任务调用程序来检查是否设置了Query标签。
    【解决方案2】:

    某个角色运行的查询无法使用层次结构中较低的另一个角色查看历史记录。为了解决这个问题,我们为任务使用的仓库提供了以下授权:GRANT MONITOR ON WAREHOUSE CUSTOM_WH TO ROLE "DEVELOPER ROLE";

    在此之后,我们能够看到按任务运行的查询并获得查询标签集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2020-08-31
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多