【问题标题】:Snowflake - Many tasks dependencies for a taskSnowflake - 一个任务的许多任务依赖项
【发布时间】:2022-06-15 01:57:28
【问题描述】:

我想知道是否有办法在一系列任务完成后运行任务。据我了解,雪花只支持 1 个前置任务,而不是很多。我的情况是,在所有维度完成后,我必须加载一个事实表。我'

【问题讨论】:

  • HI 一种方法是编写一个任务,该任务将调用所有一个过程,该过程将一一调用所有其他过程。

标签: snowflake-cloud-data-platform


【解决方案1】:

可以为一个任务定义多个前置任务。

Tasks: DAG Support — Preview

来源:https://docs.snowflake.com/en/_images/data-pipeline-tasks-dag-example-basic.png

根任务 (A) 按计划运行,例如“每 5 分钟”或“每天早上 5 点和下午 5 点”。当任务 A 运行完成时,任务 B 和 C 同时运行。任务 D 仅在任务 B 和 C 都完成运行时运行。

DAG 支持使用任务树不可能或难以实现的并行处理工作流,包括:

  • 在为仪表板聚合事实之前同时更新一组维度表。

  • 在之前的所有任务都运行完成后,使用外部函数通过远程消息服务提示通知。


示例场景:

CREATE DATABASE TEST;
CREATE SCHEMA TEST;

CREATE OR REPLACE TASK task SCHEDULE = '10 minute'AS SELECT system$wait(20);

CREATE OR REPLACE TASK task2 AFTER task1 AS SELECT system$wait(20);

CREATE OR REPLACE TASK task3 AFTER task1 AS SELECT system$wait(20);

CREATE OR REPLACE TASK task4 AFTER task3 AS SELECT system$wait(50);

-- adding second predecessor, with ALTER statement
ALTER TASK task4 ADD AFTER task2;

检查元数据:

SELECT t.*
FROM TABLE(INFORMATION_SCHEMA.TASK_DEPENDENTS(
           TASK_NAME => 'task1', RECURSIVE => TRUE )) t;

输出:

【讨论】:

    猜你喜欢
    • 2015-02-13
    • 1970-01-01
    • 2020-05-15
    • 2013-03-29
    • 2011-02-22
    • 2018-06-01
    • 1970-01-01
    • 2017-10-04
    • 2012-10-25
    相关资源
    最近更新 更多