You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可以从Airflow向Google BigQuery Data Transfer传递运行参数?

实现方案

该需求可以实现,无需每次新建BigQuery传输配置,历史运行日志会完整保留在预先创建的传输服务下。

操作步骤

  • 第一步:预先创建带参数占位的BQ传输配置
    在BigQuery控制台创建传输任务(类型选择对应CSV数据源,例如GCS到BigQuery传输),在数据源路径配置处使用{自定义参数名}作为占位符,比如GCS URI填写gs://你的存储桶/输入目录/{csv_file_path}/*.csv,同时在传输配置的「自定义参数」模块声明对应的参数名、类型为字符串,保存传输配置后记录下该配置的资源ID。
  • 第二步:配置Airflow算子传递运行时参数
    要求apache-airflow-providers-google包版本≥8.1.0,BigQueryDataTransferServiceStartTransferRunsOperator提供了runtime_params参数用于传递运行时覆盖的参数,该参数支持Airflow原生模板语法,可直接传入动态路径。

示例代码:

from airflow.providers.google.cloud.operators.bigquery_dts import BigQueryDataTransferServiceStartTransferRunsOperator

start_transfer_task = BigQueryDataTransferServiceStartTransferRunsOperator(
    task_id="start_bq_transfer",
    project_id="你的GCP项目ID",
    config_id="你预先创建的传输配置ID",
    # 运行时参数,key要和BQ传输配置里定义的参数名完全一致
    runtime_params={
        # 示例1:传入Airflow模板渲染的日期文件夹路径
        "csv_file_path": "{{ ds_nodash }}",
        # 示例2:直接传入固定路径
        # "csv_file_path": "20240501/test"
    },
    gcp_conn_id="你的GCP连接ID",
    location="传输配置所在区域",
)

注意事项

  • BQ传输配置中定义的参数名需要和runtime_params中的key完全匹配,大小写敏感
  • 若需要传递文件夹路径,直接调整占位符的位置即可,无需修改传输配置的其他设置
  • 所有通过该算子触发的运行记录,都会统一归属到你预先创建的传输配置下,不会丢失历史日志

内容的提问来源于stack exchange,提问作者elaspog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:54:09