在雪花中成功创建任务,但运行“显示任务”时没有显示

Posted

技术标签:

【中文标题】在雪花中成功创建任务,但运行“显示任务”时没有显示【英文标题】: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 下完成了所有这些工作,并且使用了相同的仓库、数据库和架构。

【问题讨论】:

【参考方案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 命令?如果您有并且找不到该任务,那么我的下一个建议可能是支持请求。

以上是关于在雪花中成功创建任务,但运行“显示任务”时没有显示的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 新建窗口在任务栏不显示

hive moving data报错,unable to move source...,yarn显示任务执行成功

hive moving data报错,unable to move source...,yarn显示任务执行成功

刷新数据共享视图时运行雪花任务

在雪花存储过程中捕获成功消息

雪花 - 任务未运行