我目前正在为Airflow开发DAG。我喜欢使用PyCharm并倾向于为我的每个项目启动虚拟环境。
气流取决于安装期间设置的AIRFLOW_HOME文件夹。然后由Airflow在此文件夹中创建子目录。
我感兴趣的是其他人如何构建他们的项目以允许包含获取数据所需的包(例如facebookads
)的虚拟环境 - 同时还可以轻松地将DAG丢弃到Airflow的DAGS文件夹中进行测试。
在我的项目中,我使用:
- 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方面必须是自包含的,以避免非映射依赖