【问题标题】:Export Airflow Composer log to GCP Bigquery将 Airflow Composer 日志导出到 GCP Bigquery
【发布时间】:2021-10-21 17:52:45
【问题描述】:

有没有办法从 Composer 中提取所有可用的作业日志并将其导出到 Bigquery Dataset 表中?

需要一些关于设计的建议。

要求是获取作业信息,例如执行日期,如果可能的话,还需要从 Composer 将其他元数据列添加到 BQ 表中。例如,如果要将任何数据从 GCS 加载到 BQ,我想在每次作业执行后编写控制 BQ 表。

谢谢

【问题讨论】:

  • 这有什么用例吗?您不能使用来自 GCS 的日志吗?当您执行 Airflow 作业时,日志存储在 GCS 上。在Logs in Cloud Storage 中有描述
  • 我同意 PjoterS,在您描述的用例中,您实际上并不需要日志。每个 dag 运行的大部分相关元数据(包括执行日期)在 dag 运行时可用。为什么不在加载数据后添加一个将其写入 BQ 表的任务?当然,除非您想跟踪失败的任务/dag 运行等。如果您仍然想要日志,如 PjoterS 的链接中所述,您可以访问 GCS 上的日志,或者使用 Cloud Logging 并创建一个接收器到 BQ(我相信虽然它不是免费的)cloud.google.com/logging/docs/export/configure_export_v2

标签: google-bigquery airflow google-cloud-composer google-cloud-stackdriver


【解决方案1】:

正如我在评论部分提到的,Cloud Composer 将来自单个DAG's 的日志存储在存储桶内的环境文件夹中。您可以在Logs in Cloud Storage 找到此信息。

当您创建环境时,Cloud Composer 会创建一个 Cloud Storage 存储分区并将该存储分区与您的环境相关联。 Cloud Composer 将单个 DAG 任务的日志存储在存储桶的日志文件夹中。

在本文档中,您还可以找到有关 Logging structureLog TypesHow to view Logs in Cloud Storage 的信息:

$ gsutil ls -r gs://BUCKET/logs

该文档还提到了Log Retention。简而言之,日志会一直保留到您删除环境或手动删除它为止。

作为替代方法,您可以Configuring sinks 创建和管理接收器,以将日志条目从 GCS 路由到 GBQ。您也可以查看Using Cloud Storage Transfer Service to Manually Connect GCS to BigQuery指南。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-01-04
  • 2016-07-26
  • 2017-02-28
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 2020-01-18
  • 2020-11-21
相关资源
最近更新 更多