【问题标题】:How do I read a file in the airflow cloud composer bucket?如何读取气流云作曲家存储桶中的文件?
【发布时间】:2018-05-24 14:55:10
【问题描述】:

为了将 bigquery 查询与实际代码分开,我想将 sql 存储在一个单独的文件中,然后从 python 代码中读取它。我试图将文件添加到与 DAG 相同的存储桶中以及子文件夹中,但是当气流运行带有 sql 文件的 python 脚本时,我似乎无法读取文件。

我想要的是这个:

gs://my-bucket/dags -> store dags
gs://my-bucket/dags/sql -> store sql files

sql 文件可能是我需要首先读取的文件,以注入 jinja 模板不支持的内容。

以上可以吗?

【问题讨论】:

  • 你能澄清一下你正在尝试做的事情,但 Jinja 模板不支持吗?我是否正确理解您已经创建了一个到 GCS 的 Connection 对象,但在尝试访问所列路径中的 SQL 文件时遇到了某种错误?
  • 首先,全新的气流和作曲家。我要做的是动态设置要读取的 xcom 变量。
  • 所以我需要创建一个gcs连接?我只是假设 composer/airflow 将 gcs 存储桶与气流可以访问的磁盘同步。

标签: google-cloud-composer


【解决方案1】:

Cloud Composer 使用从 gs://my-bucket/home/airflow/gcs/ 的 FUSE 驱动程序装载 GCS 存储桶。这意味着gs://my-bucket/dags 文件夹在/home/airflow/gcs/dags 的调度程序、Web 服务器和工作程序中可用。

您的 DAG 应该能够从 /home/airflow/gcs/dags/sql 目录读取 SQL 文件。

注意:/home/airflow/gcs/data 目录在工作器上可用,但在网络服务器上不可用。

【讨论】:

  • 太棒了。明天先试试。听起来像我需要的。
  • 我猜更好的方法是使用DAGS_FOLDER env。变量。
  • 另一种方法可能是使用 settings.DAGS_FOLDER ,这样您可以引用 dag 文件夹,这样您就不必对路径进行硬编码,在本地测试中,此路径可以不同,而 settings.DAGS_FOLDER可以帮助你
猜你喜欢
  • 2021-04-25
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 2018-06-22
  • 1970-01-01
  • 2019-01-29
相关资源
最近更新 更多