Airflow 手动触发
Apache Airflow 是一个强大的工作流调度工具,通常用于自动化任务的调度和执行。然而,在某些情况下,您可能需要手动触发DAG(有向无环图)的运行。本文将详细介绍如何在Airflow中手动触发DAG,并探讨其使用场景和操作步骤。
什么是手动触发?
手动触发是指在Airflow中通过用户操作(而非调度器自动触发)来启动DAG的运行。这种方式适用于以下场景:
- 测试新创建的DAG。
- 在特定条件下需要立即执行任务。
- 调试或排查问题。
如何手动触发DAG
1. 通过Airflow UI手动触发
Airflow提供了一个直观的Web界面,您可以通过它轻松地手动触发DAG。
操作步骤:
- 登录Airflow Web UI。
- 在DAGs列表中找到您想要触发的DAG。
- 点击DAG名称进入详情页面。
- 点击右上角的“Trigger DAG”按钮。
- 在弹出的对话框中,您可以输入配置参数(如果需要),然后点击“Trigger”按钮。
示例:
假设您有一个名为 example_dag
的DAG,您可以通过以下步骤手动触发它:
- 打开Airflow UI。
- 在DAGs列表中找到
example_dag
。 - 点击
example_dag
进入详情页面。 - 点击“Trigger DAG”按钮。
- 在弹出的对话框中,点击“Trigger”按钮。
2. 通过Airflow CLI手动触发
除了通过UI,您还可以使用Airflow的命令行接口(CLI)来手动触发DAG。
操作步骤:
-
打开终端。
-
使用以下命令触发DAG:
bashairflow dags trigger <dag_id>
其中
<dag_id>
是您想要触发的DAG的ID。
示例:
假设您有一个名为 example_dag
的DAG,您可以通过以下命令手动触发它:
airflow dags trigger example_dag
3. 通过Airflow API手动触发
Airflow还提供了REST API,您可以通过编程方式手动触发DAG。
操作步骤:
- 获取Airflow API的访问令牌。
- 使用HTTP POST请求触发DAG。
示例:
假设您有一个名为 example_dag
的DAG,您可以通过以下Python代码手动触发它:
import requests
url = "http://localhost:8080/api/v1/dags/example_dag/dagRuns"
headers = {
"Authorization": "Bearer <your_token>",
"Content-Type": "application/json"
}
data = {
"conf": {}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
实际应用场景
场景1:测试新创建的DAG
在开发新的DAG时,您可能需要多次测试其逻辑和任务执行情况。手动触发可以帮助您快速验证DAG的正确性,而无需等待调度器自动触发。
场景2:紧急任务执行
在某些情况下,您可能需要立即执行某个任务,例如修复数据问题或处理紧急请求。手动触发可以确保任务立即执行,而不受调度器的时间限制。
场景3:调试与排查问题
当DAG运行失败或出现异常时,手动触发可以帮助您复现问题并进行调试。通过手动触发,您可以更灵活地控制任务的执行顺序和参数。
总结
手动触发是Airflow中一个非常有用的功能,适用于测试、紧急任务执行和调试等多种场景。通过Airflow UI、CLI或API,您可以轻松地手动触发DAG的运行。掌握这一技能将帮助您更高效地管理和调度工作流。
附加资源与练习
- 练习1:创建一个简单的DAG,并通过Airflow UI手动触发它。
- 练习2:使用Airflow CLI手动触发一个DAG,并观察其运行日志。
- 练习3:编写一个Python脚本,通过Airflow API手动触发DAG。
通过以上练习,您将更深入地理解Airflow手动触发的操作和应用场景。祝您学习愉快!