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

如何从Airflow自身数据库中查询提取所需数据

从Airflow元数据库提取数据的实现方法

Airflow的所有运行元数据(包括DAG运行状态、任务实例执行记录、调度时间、执行时长等)都存储在其绑定的元数据库中,可通过两种主流方式提取所需数据用于可视化:

方法1:直接查询元数据库

你需要先申请Airflow元数据库的只读账号权限,目前Airflow支持MySQL、PostgreSQL、SQLite三种常见的元数据存储后端,直接执行SQL语句即可提取目标数据,以下是常用查询示例:

  • 统计近7天所有DAG的运行状态分布:
-- MySQL语法,PostgreSQL/ SQLite可对应调整日期函数
SELECT 
  dag_id,
  state,
  COUNT(*) as run_count,
  DATE(start_date) as run_date
FROM dag_run
WHERE start_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY dag_id, state, run_date;
  • 查询指定DAG下所有任务的历史执行时长:
SELECT 
  task_id,
  execution_date,
  duration,
  state
FROM task_instance
WHERE dag_id = '替换为你的目标DAG ID'
ORDER BY execution_date DESC;

注意:仅使用只读账号执行查询操作,不要对元数据库执行增删改操作,避免影响Airflow本身的调度稳定性。

方法2:调用Airflow REST API提取数据

Airflow 2.0及以上版本自带官方稳定REST API,无需接触底层数据库即可获取全量元数据,调用前先在Airflow后台创建API访问Token即可发起请求,常用请求示例:

  • 获取所有DAG的基础配置信息:GET /api/v1/dags
  • 获取指定DAG的历史运行记录:GET /api/v1/dags/{dag_id}/dagRuns
    接口返回结构化JSON数据,可直接解析后导入可视化仪表盘。

可视化对接补充建议

  • 若需要定时同步数据到仪表盘,可以单独开发一个轻量同步脚本,或者新建一个专用的Airflow DAG定时拉取数据,避免频繁查询元数据库给Airflow带来额外压力。
  • 仪表盘常用的可视化指标(DAG运行成功率、平均执行时长、调度延迟、高频失败任务排行等)都可以通过上述两种方式获取到对应原始数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:24:03