首页 > 解决方案 > Apache Airflow:在操作员执行之间存储下载文件的位置?

问题描述

我开始使用 Apache Airflow 构建数据处理管道并遇到(可能)非常基本的问题:在哪里存储下载的文件operator1然后必须由 处理operator2

operator1- BashOperator 从外部资源下载 zip 文件。我这样做是curl为了能够重试或重新开始下载,因为外部资源不稳定。

operator2- airflow.contrib.operators.file_to_wasb 操作员上传到 Azure Blob

所以问题是如何operator2访问下载的文件operator1?应该operator1在某处上传文件还是可以将其委托给下一个任务?

operator1 = BashOperator(
    task_id='download_ds_archive',
    bash_command="curl --retry 10 -O -C - https://extresource/file.zip",
    xcom_push=True,
    provide_context=True,
    dag=dag,
)

operator2 = FileToWasbOperator(
    task_id='stage_xml_files_to_azure_blob',
    ...
)

operator1 >> operator2

标签: airflow

解决方案


推荐阅读