我们正在运行dbt
版本 0.16.1。我们已经将数据管道设置为在 Airflow 中运行,并设置了一个库来映射每个dbt
模型在 Airflow 上它自己的 bash 运算符中运行。
执行的dbt
运行命令如下:
cd /usr/local/airflow/models/[PACKAGE_NAME] && dbt --log-format json run --models [MODEL_NAME]--no-version-check --profiles-dir=/usr/local/airflow/dags/dags-enterprise-model/enterprise_model/include --target=[TARGET] --profile=[PROFILE]
有时(可能同时运行两个模型时),Airflow 会在dbt run
命令中显示以下消息:
信息 - FileNotFoundError:[Errno 2] 没有这样的文件或目录:'logs/dbt.log' -> 'logs/dbt.log.1'
这是有问题的,因为日志文件没有得到更新,但任务的退出代码被列为 0:
命令以返回码 0 退出
这会导致 Airflow 将任务标记为成功;但是,日志没有成功打印。
我的问题:
- 有没有办法将这些错误作为实际错误提出?
- 如果做不到这一点,有没有办法指定一个唯一的日志文件?
我不确定这是否是我理解的差距,dbt
是日志记录中的错误,还是两者兼而有之?