在雪花任务中执行多行

Posted

技术标签:

【中文标题】在雪花任务中执行多行【英文标题】:Executing Multiple Lines in a Snowflake Task 【发布时间】:2020-03-16 13:14:35 【问题描述】:

我创建了下面的任务,但无法让它执行所有行。看起来它只是从 productweekly_upload 第一次删除然后完成。有人有想法么?这是我第一次使用任务

CREATE OR REPLACE TASK WeeklySymphony_Load
  WAREHOUSE = UPLOADWAREHOUSE
  SCHEDULE = 'USING CRON 10 8 * * MON America/New_York'
as

--run every monday at 8:10 am 

delete from Productweekly_Upload;
delete from Factsweekly_Upload;
delete from Productweekly;
delete from Factsweekly;

copy into ProductWeekly_Upload
from @symphony_s3_stage/prasco_phast_it_prdct_wk_;

copy into FactsWeekly_Upload
from @symphony_s3_stage/prasco_phast_it_wk_;

insert into ProductWeekly
select * from ProductWeekly_Upload;

insert into FactsWeekly 
select * from FactsWeekly_Upload;

【问题讨论】:

【参考方案1】:

您只能在一个 TASK 中执行 1 个命令。如果要创建多个步骤,可以将它们包装到存储过程中并从 TASK 调用 SP,也可以将每个步骤创建为 TASK 并建立这些依赖关系,以便它们按顺序执行。

我建议通读本文档:

https://docs.snowflake.com/en/user-guide/tasks-intro.html

【讨论】:

Snowflake 存储过程看起来像一团糟——我可能会采取简单的方法,只用一行代码创建 6 个不同的任务。 Snowflake SP 只是 javascript。容易。

以上是关于在雪花任务中执行多行的主要内容,如果未能解决你的问题,请参考以下文章

雪花程序因任务执行而失败

雪花、任务和会话变量问题

雪花表中json数据的解析字段将多行插入到新的雪花表中

将多行转换为雪花中的一个逗号分隔值

如何在 Azure 数据工厂中为雪花连接执行下推优化

雪花存储过程:处理多行字符串和单引号