我在dbt上运行了一个云作曲家项目,我的所有模型和快照都运行得很成功。
一旦所有处理完成,我就很难生成文档。
dbt和composer之间的集成是通过气流-dbt完成的,我已经为DbtDocsGenerateOperator设置了一个任务。DAG实际上运行良好,我可以在日志中看到catalog.json文件被写入到对应云桶中的目标文件夹,但文件不在那里。
在对GCP日志记录进行一些调查时,我注意到有一个名为gcs-syncd的进程,即显然是删除该文件的。
想知道以前是否有人在这种集成中取得了成功,并且能够从云编写器生成dbt文档?
{
insertId: "**********"
labels: {2}
logName: "************/logs/gcs-syncd"
receiveTimestamp: "****-**-****:**:33.621914158*"
resource: {2}
severity: "INFO"
textPayload: "Removing file:///home/airflow/gcs/dags/target/catalog.json"
timestamp: "****-**-****:**:28.220171689Z"
}后面跟着这个错误消息:
{
insertId: "rdvl8sfx903ai0y8"
labels: {
compute.googleapis.com/resource_name: "***************"
k8s-pod/config_id: "************************"
k8s-pod/pod-template-hash: "*************"
k8s-pod/run: "airflow-worker"
}
logName: "************/logs/stderr"
receiveTimestamp: "****-**-****:**:28.921706522Z"
resource: {
labels: {6}
type: "k8s_container"
}
severity: "ERROR"
textPayload: "Removing file:///home/airflow/gcs/dags/target/catalog.json"
timestamp: "****-**-****:**:28.220171689Z"
}气流日志根本不显示任何错误,流程成功的消息如下:
[2021-11-14 21:08:10,601] {dbt_hook.py:130} INFO - 21:08:10 |
[2021-11-14 21:08:10,679] {dbt_hook.py:130} INFO - 21:08:10 | Done.
[2021-11-14 21:08:10,682] {dbt_hook.py:130} INFO - 21:08:10 | Building catalog
[2021-11-14 21:08:43,054] {dbt_hook.py:130} INFO - 21:08:43 | Catalog written to /home/airflow/gcs/dags/target/catalog.json
[2021-11-14 21:08:43,578] {dbt_hook.py:132} INFO - Command exited with return code 0
[2021-11-14 21:08:47,822] {taskinstance.py:1213} INFO - Marking task as SUCCESS.发布于 2022-01-03 00:50:48
这里的问题是,您正在将目录文件写入工作节点上的某个位置,该位置被挂载到gcs中的dags文件夹,该文件夹由气流和云编写器管理。根据文档,
当您在云存储桶中修改DAG或插件时,Composer将同步集群中所有节点的数据。 云编写器通过本地复制来单向同步dags/和plugins/文件夹。单向同步意味着这些文件夹中的本地更改将被覆盖。 数据/和日志/文件夹使用Cloud >Storage双向同步。
如果将该文件的位置更改为/home/airflow/gcs/data/target/catalog.json,,则应该可以双向同步。
https://stackoverflow.com/questions/69967480
复制相似问题