airflow 任务启动传参
时间: 2024-07-02 22:00:29 浏览: 298
Apache Airflow 是一个强大的开源平台,用于创建、调度和监视数据管道。在 Airflow 中,任务(也称为 DAG 作业或Operator)可以通过多种方式接收参数。这些参数可以在配置文件中定义,通过环境变量传递,或者直接作为作业调度的一部分提供。
1. **配置文件**:在 `airflow.cfg` 或者在每个 DAG 的 `default_args` 部分中,你可以设置全局或特定 DAG 的默认参数。例如:
```yaml
default_args = {
'owner': 'your_username',
'start_date': datetime(2023, 1, 1),
'params': {'key1': 'value1', 'key2': 'value2'},
}
```
2. **环境变量**:通过在系统或 Docker 容器的环境中设置变量,如 `AIRFLOW__YOUR_DAG__PARAMS`,也可以传递参数。
3. **作业调度**:在调度作业时,可以直接将参数作为一个元组传递给 `dag.run()` 函数,如下所示:
```python
dag.run(start_date=start_date, params={'key1': 'override_value1', 'key2': 'override_value2'})
```
4. **Python表达式**:对于更复杂的参数值,你还可以使用 Python 表达式计算动态参数。
5. **XComs**:任务之间可以传递参数,通过 XComs(Cross-Task Communcation)机制,一个任务的输出可以成为另一个任务的输入。
阅读全文