【问题标题】:Successfully created a task in Snowflake, but it does not show up when running "show tasks"在雪花中成功创建任务,但运行“显示任务”时没有显示
【发布时间】:2020-07-02 05:10:41
【问题描述】:

我是 Snowflake 的新手,正在尝试创建我的第一个任务。

CREATE TASK task_update_table
WAREHOUSE = "TEST"
SCHEDULE = 'USING CRON 0 5 * * * America/Los_Angeles'
AS
INSERT INTO "TEST"."WEB"."SOME_TABLE" (ID,VALUE1,VALUE2,VALUE3)
WITH CTE AS
(SELECT 
ID
,VALUE1
,VALUE2
,VALUE3
FROM OTHER_TABLE
WHERE ID NOT IN (SELECT ID FROM "TEST"."WEB"."SOME_TABLE")
)
SELECT      
ID,VALUE1,VALUE2,VALUE3
FROM CTE

我收到了任务创建成功的消息

“任务task_update_table成功创建”

然后我尝试在架构SHOW TASKS IN "TEST"."WEB" 中运行显示任务,结果得到 0 行。我究竟做错了什么?为什么任务没有显示?

我在 sysadmin 下完成了所有这些工作,并且使用了相同的仓库、数据库和架构。

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-task


    【解决方案1】:

    显示命令有一些限制可能会阻止您, 特别是“SHOW 命令只返回当前用户的当前角色已被授予必要访问权限的对象”

    https://docs.snowflake.com/en/sql-reference/sql/show.html#general-usage-notes

    我怀疑任务是由不同的角色创建的(因此由不同的角色拥有),或者它可能是在不同的数据库或架构中创建的。

    要找到它,我建议使用 ACCOUNTADMIN 等角色运行以下命令。

    show tasks in account;
    SELECT *
    FROM (
        SELECT *
        FROM   TABLE(RESULT_SCAN(LAST_QUERY_ID())))
    WHERE "name" = 'TASK_UPDATE_TABLE';
    

    在 Snowflake 中进行测试和学习时,使用如下命令正确设置会话“上下文”至关重要:

    USE ROLE my_role_here;
    USE WAREHOUSE my_warehouse_here;
    USE DATABASE my_database_here;
    USE SCHEMA my_schema_here;
    

    执行这四个命令,或为您的用户设置默认值将极大地帮助您学习。

    我希望这会有所帮助...丰富

    【讨论】:

    • 非常感谢,Rich!奇怪的是,我创建了一个任务,然后在没有更改角色、数据库或架构的情况下立即运行 show 命令。我试着听从你的建议,但仍然没有,0 行。会不会是标准实例级别的任务不可用?还是我应该联系支持人员?
    • 关于标准版 - 任务和流功能应该可用于您的部署 - 请参阅 docs.snowflake.com/en/user-guide/…。您是否尝试使用具有提升权限的角色(例如 ACCOUNTADMIN)运行 show 命令?如果您有并且找不到该任务,那么我的下一个建议可能是支持请求。
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多