如何删除airflow中不再使用的dag

在这里插入图片描述

如上图,airflow中的dag关闭后仍然会在webui中占坑,实在碍眼。调研后发现airflow并未提供删除功能。

经分析实践,可以通过删除airflow的元数据库中相应数据,从而达到删除dag的目的。

接上图,要删除dag dag_not_need,需要删除元数据库中如下表的相应数据:

select count(1) from dag                where dag_id='dag_not_need';
select count(1) from dag_run            where dag_id='dag_not_need';
select count(1) from dag_stats          where dag_id='dag_not_need';
select count(1) from job                where dag_id='dag_not_need';
select count(1) from log                where dag_id='dag_not_need';
select count(1) from sla_miss           where dag_id='dag_not_need';
select count(1) from task_fail          where dag_id='dag_not_need';
select count(1) from task_instance      where dag_id='dag_not_need';
select count(1) from xcom               where dag_id='dag_not_need';               

delete from dag                where dag_id='dag_not_need';
delete from dag_run            where dag_id='dag_not_need';
delete from dag_stats          where dag_id='dag_not_need';
delete from job                where dag_id='dag_not_need';
delete from log                where dag_id='dag_not_need';
delete from sla_miss           where dag_id='dag_not_need';
delete from task_fail          where dag_id='dag_not_need';
delete from task_instance      where dag_id='dag_not_need';
delete from xcom               where dag_id='dag_not_need';

### 定义 Apache Airflow 中的 DAG 在 Apache Airflow 中,DAG(有向无环图)用于表示工作流,其中节点代表任务,边则展示了任务间的依赖关系[^1]。 #### 创建 Python 文件 为了定义一个 DAG,在指定目录下创建一个新的Python脚本文件。通常这个位置是在 `$AIRFLOW_HOME/dags` 下面。确保此路径已正确配置于 `airflow.cfg` 或者相应的环境变量中[^3]。 #### 导入必要的模块 ```python from datetime import timedelta, datetime from airflow import DAG from airflow.operators.bash_operator import BashOperator ``` 这段代码导入了所需的类和其他资源来构建和操作 DAG 及其组件。 #### 设置默认参数 ```python default_args = { 'owner': 'airflow', 'depends_on_past': False, 'email': ['admin@example.com'], 'email_on_failure': True, 'email_on_retry': False, 'retries': 1, 'retry_delay': timedelta(minutes=5), } ``` 这里设置了执行 DAG 和任务时的一些通用选项,比如失败重试次数以及延迟时间等[^4]。 #### 实例化 DAG 对象 ```python with DAG( dag_id='example_bash_operator', default_args=default_args, description='A simple tutorial DAG', schedule_interval=timedelta(days=1), start_date=datetime(2021, 1, 1), catchup=False, ) as dag: ``` 上述语句初始化了一个新的 DAG 并指定了几个重要属性,例如唯一标识符 (`dag_id`)、描述文字(`description`)、计划间隔(`schedule_interval`) 等。 #### 添加具体任务 ```python t1 = BashOperator(task_id='print_date', bash_command='date') t2 = BashOperator(task_id='sleep', bash_command='sleep 5') t1 >> t2 ``` 此处定义了两个简单的Bash命令作为任务,并建立了它们之间的顺序依赖关系——即先打印日期再休眠五秒。 通过这种方式就可以完成基本的 DAG 构建过程;当然实际应用可能会更加复杂,涉及更多种类的操作器 (Operators),传感器(Sensors), 子DAGs(Sub-DAGs)等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值