Dag 和任务的 Airflow 结构/组织

标签 airflow apache-airflow

我的问题:

  • 为了组织您的 dags 和任务,什么是好的目录结构? (dags 示例仅显示几个任务)
  • 我目前在 dags 文件夹的根目录下有我的 dags,我的任务在不同的目录中,不确定这样做的方法吗?
  • 我们应该使用 zip 文件吗? https://github.com/apache/incubator-airflow/blob/a1f4227bee1a70531cfa90769149322513cb6f92/airflow/models.py#L280
  • 最佳答案

    我也很乐意与其他人一起对文件夹结构进行基准测试。也许这取决于您使用 Airflow 的目的,但我会分享我的案例。我正在做数据管道来构建数据仓库,所以在高层次上我基本上有两个步骤:

  • 将大量数据转储到数据湖中(只有少数人可以直接访问)
  • 将数据从数据湖加载到分析数据库中,在该数据库中数据将被建模并暴露给仪表板应用程序(许多 sql 查询来对数据建模)

  • 今天我将文件组织到三个主要文件夹中,试图反射(reflect)上述逻辑:
    ├── dags
    │   ├── dag_1.py
    │   └── dag_2.py
    ├── data-lake
    │   ├── data-source-1
    │   └── data-source-2
    └── dw
        ├── cubes
        │   ├── cube_1.sql
        │   └── cube_2.sql
        ├── dims
        │   ├── dim_1.sql
        │   └── dim_2.sql
        └── facts
            ├── fact_1.sql
            └── fact_2.sql
    

    这或多或少是我的基本文件夹结构。

    关于Dag 和任务的 Airflow 结构/组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44424473/

    相关文章:

    Airflow - 是否可以使用 backfill 命令一次(顺序)运行一天?

    python - apache Airflow 调度程序未调度作业

    airflow - 如何向 Airflow 添加新的连接类型?

    kubernetes - 使用 kubernetes executor 时无法找到 Airflow-dag_id 问题

    airflow - 为什么 ds 和 ds_nodash 宏返回昨天的日期?

    Airflow:延迟一天 DAG 运行的标准方法是什么?

    airflow - 如何在使用 Airflow 实现的工作流中等待 DAG 任务中的异步事件?

    python - 使用XCom在类之间交换数据?

    python - __init__() 恰好接受 Airflow dag 任务中给出的 2 个参数 1

    slack - Airflow 失败松弛消息