Snowflake 有一个“Task_Dependents”函数,它将返回指定的单个任务的根任务。
但是,我想快速找到 Snowflake 实例中大约 1200 个任务的根任务(以及调度)。
我想我可以使用 Task_Dependents 构造一个 for 循环过程,但肯定有更简单的方法吗? SHOW TASKS 确实列出了每个任务的直接前任任务。但我正在努力寻找一种简单的方法来生成每个任务的根任务 - 所以我知道每个任务的频率。
有什么想法吗?
应该可以使用 Snowflake 视图(snowflake.account_usage.task_versions)。请参阅此处了解更多文档
select
name as task_name,
iff(array_size(predecessors) = 0,
database_name || '.' || schema_name || '.' || name, -- if the task is root task
predecessors[0]
) root_task
from snowflake.account_usage.task_versions
where database_name = 'TEST_DB'
and schema_name = 'TEST_SCHEMA'
limit 100;