Airflow/Composer 推荐的文件夹结构

标签 airflow google-cloud-composer

你们有什么推荐的 Composer 文件夹/目录结构吗?它的结构方式应该与我们内部 Airflow 服务器现在使用的方式不同。

基于谷歌文档:https://cloud.google.com/composer/docs/concepts/cloud-storage :

  • plugins/:存放你自定义的插件、操作符、钩子(Hook)
  • dags/:存储 dags 和 web 服务器解析 dag 所需的任何数据。
  • data/:存放任务产生和使用的数据。

这是我如何组织 dags 文件夹的示例: dags-structure

我之前遇到过问题,当我将 key.json 文件放在 data/ 文件夹中时,无法使用 data/ 文件夹中的 key 解析 dags。所以现在我倾向于将所有支持文件放在dags/ 文件夹中。

如果我将支持的 dag 文件(sql、键、模式)放在 dags/ 文件夹中,调度程序的性能是否会受到影响?是否有使用 data/ 文件夹的好用例?

如果你们可以向我展示一个示例,说明如何构建 composer 文件夹以支持具有不同 dag、插件和支持文件的多个项目,这将很有帮助。

目前,整个 Airflow 文件夹只有 1 个 Github。每个项目有一个单独的 git 更好吗?

谢谢!

最佳答案

只要您放置在 dags 文件夹中的文件不是 .py 文件,对调度程序的影响应该相当小;但是,您也可以将文件放在同样通过复制同步的插件文件夹中。

我会使用顶级文件夹来分隔项目(例如 dags/projectA/dagA.py),如果项目足够大,甚至可以分隔环境。

关于Airflow/Composer 推荐的文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524038/

相关文章:

airflow - Google Composer Web UI 中的内部服务器错误 [错误代码 28]

python - Airflow XCOM KeyError : 'task_instance'

airflow - 获取 Airflow dag 通过 rest api 运行时出现 405 错误

python - 尝试使用 DataProcSparkOperator 任务加载 DAG 的 AttributeError

airflow - 如何在不复制我们的仓库的情况下在 Airflow 中运行 DBT

google-cloud-platform - 将现有的 Airflow DB 迁移到 Cloud Composer

airflow - 有没有办法查看所有 Airflow 工作人员的列表?

python - 如何从谷歌云 Composer 调用云功能?

google-cloud-platform - 在 GC Composer DAG 中使用 Cloud Functions 作为运算符