You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake中获取所有活跃与非活跃任务?已尝试task_history函数

获取Snowflake中所有活跃/非活跃任务的查询方法

方法1:直接查询任务基本状态(推荐)

使用INFORMATION_SCHEMA.TASKS视图可以直接获取所有任务的当前状态,这个视图包含了任务的核心属性,包括状态、调度规则、所属库/ schema等:

SELECT
    task_name,
    state AS task_status,
    schedule,
    database_name,
    schema_name,
    owner,
    last_completed_time
FROM
    INFORMATION_SCHEMA.TASKS
ORDER BY
    database_name, schema_name, task_name;

字段说明:

  • task_status:任务当前状态,常见值包括:
    • SCHEDULED:活跃状态,任务按计划等待执行
    • SUSPENDED:非活跃(暂停)状态,任务不会自动运行
    • FAILED:任务执行失败后可能处于此状态(通常需手动干预恢复)

方法2:结合任务执行历史,获取状态+最近运行情况

如果需要同时查看任务的当前状态和最近的执行记录,可以结合INFORMATION_SCHEMA.TASKS和TASK_HISTORY函数,更全面了解任务的运行健康度:

WITH task_core_info AS (
    SELECT
        task_name,
        database_name,
        schema_name,
        state AS current_task_status,
        schedule
    FROM
        INFORMATION_SCHEMA.TASKS
),
latest_task_runs AS (
    SELECT
        task_name,
        database_name,
        schema_name,
        MAX(start_time) AS last_run_start_time,
        MAX(end_time) AS last_run_end_time,
        MAX(state) AS last_run_status,
        MAX(error_code) AS last_error_code,
        MAX(error_message) AS last_error_details
    FROM
        TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
            SCHEDULED_TIME_RANGE_START => DATEADD(day, -7, CURRENT_TIMESTAMP()),
            RESULT_LIMIT => 1000
        ))
    GROUP BY
        task_name, database_name, schema_name
)
SELECT
    tci.database_name,
    tci.schema_name,
    tci.task_name,
    tci.current_task_status,
    tci.schedule,
    ltr.last_run_start_time,
    ltr.last_run_end_time,
    ltr.last_run_status,
    ltr.last_error_code,
    ltr.last_error_details
FROM
    task_core_info tci
LEFT JOIN
    latest_task_runs ltr
    ON tci.database_name = ltr.database_name
    AND tci.schema_name = ltr.schema_name
    AND tci.task_name = ltr.task_name
ORDER BY
    tci.database_name, tci.schema_name, tci.task_name;

说明:

  • TASK_HISTORY参数可调整:SCHEDULED_TIME_RANGE_START设置为最近7天,可按需修改时间范围;RESULT_LIMIT控制返回的历史记录条数
  • LEFT JOIN确保即使任务最近没有运行(比如新创建未执行、已暂停)也会被包含在结果中

权限注意事项

执行上述查询需要以下权限:

  • 目标数据库和schema的USAGE权限
  • INFORMATION_SCHEMA.TASKS视图的SELECT权限
  • 访问TASK_HISTORY的权限(通常需要任务的MONITOR权限或全局的MONITOR EXECUTION权限)

内容的提问来源于stack exchange,提问作者Pushpa Peddamaganti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:45:32