在开发气流时使用的最佳项目结构是什么?

时间:2018-04-26 13:26:37

标签: python pycharm airflow

我目前正在为Airflow开发DAG。我喜欢使用 PyCharm ,并且倾向于为我的每个项目启动虚拟环境。

Airflow取决于在安装期间设置的AIRFLOW_HOME文件夹。然后由Airflow在此文件夹中创建子目录。

我感兴趣的是其他人如何构建他们的项目以允许包含获取数据所需的包(例如facebookads)的虚拟环境 - 同时还可以轻松地将DAG丢弃到Airflow的DAGS文件夹中进行测试。

2 个答案:

答案 0 :(得分:0)

在我的项目中,我使用:

- config
  - config_1.yaml
  - config_1.env
- DAGs
  - dag_1.py
     -dag_1_etl_1.sql
     -dag_1_etl_2.sql
     -dag_1_etl_3.sql
     -dag_1_bash_1.sh
  - dag_2.py
  - dag_3.py
- operators
  - operator_1.py
  - operator_2.py
  - operator_3.py
- hooks
  - hooks_1.py

对于我们的用例: 1)我们可以将每个可重复使用的对象存储在具有相同种类对象的单独文件夹中;

2)每个DAG在SQL方面都必须是自包含的,以避免非映射依赖项

答案 1 :(得分:0)

在当前情况下,我们遵循一个简单的结构:

 - dags
  - dag001.py
  - dag001.py
  - helpers
     - dag_001_helpers
         - file01.py
         - file02.py
     - dag_002_helpers
         - file01.py
         - file02.py
   - configs 
     - dag_001_configs
         - file11.json
         - file12.sql
     - dag_002_configs
         - file21.json
         - file22.py