Airflow中BigQuery Operator嵌套DAG默认参数配置方法咨询
这类嵌套参数配置不需要特殊语法,直接在DAG的default_args中构造相同层级的嵌套结构即可,Airflow会自动完成参数的深度合并。
具体实现方式如下:
- 首先在DAG的默认参数中定义通用的嵌套配置
default_args = { # 其他通用默认参数,例如owner、retries、retry_delay等 "configuration": { "query": { "useLegacySql": False } } } # 初始化DAG时传入default_args with DAG( dag_id="your_dag_id", default_args=default_args, # 其他DAG配置,例如schedule_interval、start_date等 ) as dag:
- 后续的
BigQueryInsertJobOperator任务定义中就可以省略useLegacySql参数
s10_test = bigquery.BigQueryInsertJobOperator( task_id="10_test", configuration={ "query": { "query": "SELECT CURRENT_DATE" } }, )
额外说明:
- 参数合并时,任务中单独传入的配置优先级高于默认参数的配置。如果某一个任务需要临时使用Legacy SQL,只需要在对应任务的
configuration.query下单独指定useLegacySql=True即可,不会覆盖全局默认配置。 - 如果出现参数合并不生效的情况,检查你使用的Airflow BigQuery provider版本是否为2.0.0及以上即可。
内容的提问来源于stack exchange,提问作者Alex Lipkin
相关产品推荐
相关产品推荐

