Apache Airflow 是一个用于编排和调度任务的开源平台。它适用于创建、调度和监控数据工作流。以下是使用 Airflow 的基本步骤:
1. 安装 Apache Airflow
你可以通过以下命令来安装 Airflow:
bash
pip install apache-airflow
建议使用虚拟环境来管理 Airflow 的依赖项。
2. 初始化数据库
Airflow 需要一个数据库来存储任务执行状态和其他元数据信息。初始化数据库的命令:
bash
airflow db init
3. 创建用户
你需要创建一个管理员账户以访问 Airflow 的 web 界面:
bash
airflow users create \
--username admin \
--password admin \
--firstname Firstname \
--lastname Lastname \
--role Admin \
--email admin@example.com
4. 启动 Airflow Scheduler 和 Web Server
Airflow 包含一个调度器(Scheduler
)和一个 Web 服务器(Web Server
)。你需要分别启动这两个服务:
-
启动调度器:
bashairflow scheduler
-
启动 Web Server:
bashairflow webserver
Web Server 默认在 localhost:8080
上运行,你可以通过浏览器访问它。
5. 创建 DAG(有向无环图)
在 Airflow 中,工作流是通过 DAG(Directed Acyclic Graph)来定义的。一个简单的 DAG 例子如下:
python
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime
def my_task():
print("This is a task")
default_args = {
'start_date': datetime(2023, 9, 1),
'retries': 1
}
with DAG(
'my_dag',
default_args=default_args,
schedule_interval='@daily'
) as dag:
task = PythonOperator(
task_id='my_task',
python_callable=my_task
)
- DAG 是用 Python 定义的,
default_args
包含任务的默认参数。 - PythonOperator 用于执行 Python 函数。
6. 设置任务依赖
你可以通过设置任务的依赖来定义任务的执行顺序。例如:
python
task1 >> task2 # task1 先执行,task2 后执行
7. 将 DAG 放入 DAGs 文件夹
将你定义的 DAG 文件保存到 Airflow 的 DAGs 文件夹中。这个文件夹的位置通常是 $AIRFLOW_HOME/dags/
,或者你可以在 airflow.cfg
文件中配置。
8. 监控 DAG
访问 Airflow 的 Web 界面,你可以看到所有定义的 DAG,查看它们的执行状态,手动触发执行,并监控各个任务的日志。
9. 常见 Airflow 操作
-
触发 DAG:
bashairflow dags trigger my_dag
-
列出 DAG:
bashairflow dags list
-
查看任务状态:
bashairflow tasks list my_dag
Airflow 是一个强大的调度和工作流管理工具,适合处理复杂的数据管道和任务依赖。